본문 바로가기

분류 전체보기58

자바 Optional Optional Optional 이란? 자바 개발을 하다보면 항상 격는 문제중 하나는 nullPotinterException이다. 이 예외는 참조변수가 사용될때 참조하고 있는 것이 없이 null인 상태를 의미한다. public class Main { public static void main(String[] args) { Person person = new Person("jjang gu"); person=null; person.print(); } } 위 코드는 인위적으로 nullPointerException을 일으킨 것이다. 예제가 단순하지만 우리는 개발을 하다 보면 null값을 제대로 처리하지 않아서 에러를 일으키는 경우를 많이 보았을 것이다. 자바에서는 이런 null을 다루기 위해 Optional이라.. 2021. 5. 3.
Spring Lifecycle Callback 스프링 빈의 생성 라이프사이클 콜백 메소드의 종류와 만드는 방법을 알아보자. 1. 생성 콜백 우선 생성 콜백이 있다. 생성 콜백은 스프링 빈이 생성 될때 호출되는 메소드이다. 생성 콜백을 만드는 방법 3가지가 있다. 1.InitializingBean interface 상속 2.XML 혹은 @Configuration 에서 Bean 속성 설정 3.@PostConstruct 어노테이션 사용 2021. 3. 20.
CORS CORS (cross origin resource sharing)란? cors는 웹환경에서 서로 다룬 출처에서 온 자원을 어떻게 처리할지에 대한 것이다. cors가 나온 이유는 sop(same origin policy)정책 때문이다. 웹 환경을 오픈된 환경이기 때문에 외부의 공격에 쉽게 노출이 된다. 그렇기 때문에 같은 출처에서 온 자원만을 허용하는 것이다. 참고로 cors가 올바른지는 서버, 클라이언트가 하는 것이 아니라 브라우져에서 확인을 한다. 여기서 출처란 프로토콜 + 호스트 + 포트 이다. 위처럼 프로토콜,호스트,.포트번호가 같다면 같은 출처인 것이다. 뒤에 쿼리부붙은 달라도 상관없다. 우리가 어떤 요청을 하면 요청 메시지는 위처럼 생기는데(리액트에서 axios를 이용해 post 요청을 한 것이.. 2021. 3. 14.
String,StringBuilder,StringBuffer 자바에서 문자열 처리는 주로 String과 StringBuilder를 이용한다. 이번에는 2가지를 각각 알아보고, 비교를 해본다. String 우선 String이다. String은 자바에서 문자열을 다룰때 가장 기본적인 형태이다. String의 생성방식에는 literal,new 2가지 방식이 있다. String str="string!!"; String str2=new String("string !!"); 2방식 모두 heap에 저장이된다. 그렇지만 차이점이 있는데 literal같은 경우 string constant pool이라는 공간에 들어간다. string constant pool에 해당 literal을 넣고 String 변수가 가르키고 있는 형태인것이다. 이렇게 string constant poll에.. 2021. 3. 10.
SQL 실습환경 준비하기 - Mysql 우리는 sql 학습을 위해 예제 데이터가 필요하다. 그런데 이 예제 데이터가 제대로 만들어 진것이 아니라면 학습의 효율이 떨어진다. 또한 sql에서 쿼리문을 통해 원하는 데이터를 조회하는것도 중요하지만, 대용량의 데이터를 효율적인 쿼리문으로 다루는 것 또한 매우 중요하다. 그런데 이런 양질의 데이터를 개인이 수작업으로 만드는것은 힘든일이다. 그래서 이번글에서는 이런 mysql에서 제공하는 양질의 데이터(6개의 테이블과 촐 4백만 레코드라고 한다.)를 받아서 사용하는 방법을 알아볼 것이다. 참고로 이글은 mysql workbench를 사용할 것이다. 혹시나 mysql을 받지 않았다면 아래의 블로그를 참고하자 http://blog.naver.com/PostView.nhn?blogId=tipsware&logN.. 2021. 3. 1.
Spring 단위테스트 -2 Data 이번에는 단위테스트에서 Database에 접근하는 클래스를 테스트하는 방법을 보자. 우선 테스트를 알아보기전에 테스트할 코드를 만들어보자. org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 우선 내장 데이터베이스를 이용하기 위해 h2와 데이터베이스 프로그래밍을 위해 jpa를 가져오자. CREATE TABLE user ( id VARCHAR(45) NOT NULL, password VARCHAR(45) NULL, name VARCHAR(45) NULL, PRIMARY KEY (id)); 그다음은 간단하게 테이블을 하나 추가한다. import javax.persistence.Entity; import javax.persistenc.. 2021. 2. 28.