반응형

Back/Spring Java 28

제네릭(Generic) 문법

제네릭(Generic)은 코드블럭 내부에서 쓸 자료형을 외부에서 지정하는 기법. 여러가지 자료형을 허용하고 싶을 때 Object로 선언해버리면 깔끔하지만, 그렇게하면 원하지 않는 자료형이 입력되었을 때의 오류를 컴파일 시점에 잡아낼 수 없음. * 장점 1. 컴파일 시 강한 타입 체크 가능. - 실행시 타입 에러가 나는 것보다 컴파일 시에 미리 타입을 강하게 체크해서 에러를 사전에 방지 2. 타입 변환(castring)을 제거. - 비제네릭 코드는 불필요하게 타입 변환을 하기 때문에 프로그램 성능에 악영향을 미친다. List list = new ArrayList(); list.add("hello"); String str = (String) list.get(0); // 타입 변환이 필요 List list2 ..

Back/Spring Java 2019.11.25

Java8 null체크 시 Optional

Optional이란? Optional는 “존재할 수도 있지만 안 할 수도 있는 객체”, 즉, “null이 될 수도 있는 객체”을 감싸고 있는 일종의 래퍼 클래스입니다. 원소가 없거나 최대 하나 밖에 없는 Collection이나 Stream으로 생각하셔도 좋습니다. 직접 다루기에 위험하고 까다로운 null을 담을 수 있는 특수한 그릇으로 생각하시면 이해가 쉬우실 것 같습니다. Optional의 효과 Optional로 객체를 감싸서 사용하시게 되면 NPE를 유발할 수 있는 null을 직접 다루지 않아도 됩니다. 수고롭게 null 체크를 직접 하지 않아도 됩니다. 명시적으로 해당 변수가 null일 수도 있다는 가능성을 표현할 수 있습니다. (따라서 불필요한 방어 로직을 줄일 수 있습니다.) Optional 객..

Back/Spring Java 2019.11.24

lombok 라이브러리 세팅(intelliJ)

* lombok이란? Lombok은 Java에서 @Getter, @Setter 같은 annotation 기반으로 관련 기존 DTO, VO, Domain Class 작성할 때, 멤버 변수에 대한 Getter/Setter Method, Equals(), hashCode(), ToString()과 멤버 변수에 값을 설정하는 생성자 등을 자동로 생성해 주는 라이브러리입니다. * lombok 설정 (intelliJ기준) 1. build.gradle lombok추가 2. plugins lombok install 3. Enable annotation processing -> check

Back/Spring Java 2019.11.15

큰따옴표, 작은따옴표 차이

* 큰따옴표, 작은따옴표 차이 더보기 - 테스트 코드 System.out.println("H" + "a"); System.out.println('H' + 'a'); System.out.println('H'+0); System.out.println('a'+0); 더보기 - 실행결과 Ha 169 72 97 - 큰따옴표의 경우 문자열로 인식하여 두 문자가 합쳐져서 결과가 표시. - 작은 따옴표의 경우는 + 연살자를 사용하면 H와 a는 Integer형으로 형변환이 되어 169 출력. - 문자열을 합칠 경우 큰따옴표를 사용. *큰따옴표 안에 큰따옴표를 표시 하려면 -> 앞에 \ 을 붙히면 큰 따옴표가 문자열로 인식. (예제) System.out.println(""큰 따옴표 인식 예제""); (Error) Syst..

Back/Spring Java 2019.09.09

Enum클래스 활용법

들어가며 개발을 진행할때 Enum을 통해 얻는 기본적인 장점들은 아래와 같습니다. 문자열과 비교해, IDE의 적극적인 지원을 받을 수 있습니다. 자동완성, 오타검증, 텍스트 리팩토링 등등 허용 가능한 값들을 제한할 수 있습니다. 리팩토링시 변경 범위가 최소화 됩니다. 내용의 추가가 필요하더라도, Enum 코드외에 수정할 필요가 없습니다. 이 장점들은 모든 언어들의 Enum에서 얻을 수 있는 공통된 장점입니다. 하지만 Java의 Enum은 이보다 더 많은 장점을 갖고 있습니다. C/C++의 경우 Enum이 결국 int값이지만, Java의 Enum은 완전한 기능을 갖춘 클래스이기 때문입니다. (이 글의 제목이 Enum 활용기가 아닌, Java Enum 활용기인것도 이 때문입니다.) 예제로 그 장점들을 하나씩..

Back/Spring Java 2019.08.13

String, StringBuffer, StringBuilder의 장단점 및 차이점

String, StringBuffer, StringBuilder의 장단점 및 차이점 자바에서 String과 StringBuffer, StringBuilder의 차이점을 알아본다. 이들의 공통점은 모두다 String(문자열)을 저장하고 관리하는 클래스들이다. 어떤 차이점이 있을까? String과 (StringBuffer, StringBuilder)의 차이점은 String은 immutable(불변)하고 StringBuffer, StringBuilder는 mutable(가변)하다는 점이다. 쉽게 말해서 String은 new 연산을 통해 생성되면 그 인스턴스의 메모리 공간은 절대 변하지 않는다. 그래서 + 연산이나 concat을 이용해서 문자열에 변화를 줘도 메모리 공간이 변하는 것이 아니라 새로운 String..

Back/Spring Java 2019.08.12
반응형