java

    [java] Optional

    Optional 클래스는 Java8부터 지원한다. 1. Optional이란?? [NPE(NullPointException)] 개발을 하다보면 무수히 많은 널포인트익셉션 오류를 마주하게 된다. 해당 오류를 피하기 위해선 null값 체크를 통한 개발을 해야 하는데, null체크를 하기 위해 변수가 많은경우에는 코드가 더러워지게 된다. if(name != null && StringUtil.isNotEmpty(name)){ name.sort(); }[Optional] Java8에서는 Optional 클래스를 사용해 NPE를 방지할 수 있다. null이 올 수 있는 데이터를 Wrapper클래스로 감싸 NPE가 발생하지 않도록 해준다. Optional클래스는 아래와같이 value값을 저장하기 때문에 값이 null이..

    [library] devtools 라이브러리

    devtools 라이브러리는 애플리케이션 개발에 있어 유용한 기능들을 제공한다. 개발생산성 향상에 도움을 줄 수 있는 devtools의 기능을 소개한다. Spring-boot Devtools 기능 Automatic restart : 소스가 변경될때마다 애플리케이션을 자동으로 재시작해준다. 개발자가 소스 수정 후 서버를 재실행하는 과정을 줄일 수 있다. Live Reload : 정적자원(html, css, js) 수정 시 새로고침 없이 바로 적용 가능. 의존성 추가 의존성을 추가하기 위한 방법은 다음과 같다. build.gradle에 의존성 추가 dependencis { compileOnly 'org.springframework.boot:spring-boot-devtools' }인텔리제이 환..

    [java] JSON 라이브러리

    자바에는 org.json 라이브러리를 이용하여 JSON 데이터를 다룰 수 있다. org.json 라이브러리에서 제공하는 JSONObject, JSONArray 클래스는 JSON데이터를 가지고 있고 JSON형식의 문자열로 출력이 가능하다. JSON JSON은 JavaScript Object Notation 의 약자로 자바스크립트에서 데이터를 전달하기 위해 만들어졌다. JSON 파일의 특징으로는 다음과 같이 key-value 형태로 데이터를 가진다. { "name" : "james", "info" : { "age" : 28, "from" : "USA", "job" : "student" } } JSONObject JSONObject 는 JSON에서 key-value 데이터를 쌍으로 표현하는 객체다. JSONO..

    [spring] Bean, VO, DTO

    자바 스프링 프로젝트를 진행하면서 무수히 많이 봤을 녀석들이다. Bean, VO, DTO 너무 자연스럽고 당연시하게 사용은 했지만 문득 저 세 녀석들의 차이점이 무엇일까? 라는 생각이 들었다. 용어 정의에 대한 중요성을 다시 한 번 느끼면서 Bean, VO, DTO 를 정의해보도록 하자. Bean Bean 객체는 Spring의 IoC Container를 통해 관리되어지는데, DI(Dependency Injection : 의존성 주입)는 XML의 설정정보를 읽어와 객체를 생성하여 등록작업 후에 클래스가 사용될 때 외부에서 객체를 주입하는 기능이다. Spring이 시작되면서 패키지에서 Bean으로 생성할 어노테이션을 가지고 있는 클래스를 서치한 후에 생성된다. (@Controller, Service 등) V..