본문 바로가기

학습/Java15

[java] Annotation Processor란? (추가공부 필요) Annotation Processing? 출처 정의 Stackoverflow - Annotation Processing is a hook into the compile process of the java compiler, to analyse the source code for user defined annotations and handle then by producing compiler errors, compiler warning, emitting source code, byte code. - 어노테이션 프로세싱은 자바 컴파일러의 컴파일 단계에서, 유저가 정의한 어노테이션의 소스코드를 분석하고 처리하기 위해 사용되는 훅이다. 컴파일 에러나 컴파일 경고를 만들어내거나, 소스코드(.java)와 바이트코드(... 2020. 3. 21.
[java] Optional 클래스 Opitonal 1. Integer나 Double 클래스처럼 'T' 타입의 객체를 포장하는 Wrapper Class 2. 따라서 Optional 인스턴스는 모든 타입의 참조 변수를 저장 가능 3. NullPointerException 예외를 예방하기 위한 좋은 방법 (손쉬운 null값 처리) 4. 시작(객체생성)-중간(연산 후, Optional객체반환)-종단(체이닝종료)의 3단계를 구현할 수 있다. 5. 함수형 프로그래밍, 메소드 체이닝을 가능하게 한다. 객체생성 1. of( ) - null이 아닌 명시된 값을 저장한 Optional 객체를 반환 - null이 저장될 경우, NullPointerException 예외를 발생시킴 2. ofNullable( ) - null이 아닌 명시된 값을 저장한 Opti.. 2020. 2. 29.
[java] Enum의 개념과 사용법 출처 - https://woowabros.github.io/tools/2017/07/10/java-enum-uses.html - 이동욱(jojoldu)님의 코드를 참고하였으며, 제가 이해한 바를 바탕으로 정리했습니다. Enum이란? 1. 상수를 사용하기 위한 열거형 (Enum Type) 2. enum은 사실 클래스이므로 생성자를 가질 수 있으나, private만 허용된다. -> 직접 생성 불가 -> enum type의 상수를 선언할 때마다 동시에 생성자를 호출한다. 3. 다양한 상수를 같은 의미로 묶을 수 있다. -> "Y", "1", true를 한 묶음으로 -> 반복적인 if문을 줄일 수 있다 4. 상수에 특정 행위(메소드)를 지정할 수 있다. -> DB에서 뽑아온 특정 값은 특정 메소드를 통해서만 처.. 2020. 2. 23.
[java] Mustache 사용하기 머스태시(Mustache) 1. Ruby, JS, Python, Java 등 대부분의 언어를 지원하는 심플한 템플릿 엔진 2. Java에서 사용될 땐 서버 템플릿 엔진, JS에서 사용될 땐 클라이언트 템플릿 엔진 3. 제일 큰 장점 = Thymeleaf나 JSP와 달리 커뮤니티 버전에서도 플러그인 사용 가능! Spring Boot에서의 적용 1. src/main/resourcest/templates 위치에 머스태시 파일을 두면 스프링부트에서 자동을 로딩 2. View Resolver가 앞의 경로, 뒤의 확장자를 지정해주므로 적절한 문자열만 반환하면 된다. cf) View Resolver = URL 요청의 결과를 전달할 타입과 값을 지정하는 관리자 @Controller public class IndexCo.. 2020. 2. 15.
[java] 템플릿 엔진 / SSR & CSR / JSP와 Mustache / 정적파일 템플릿 엔진 = 지정된 템플릿 양식과 데이터가 합쳐져 HTML문서를 출력하는 소프트웨어 ex) JSP in Java / View in React 서버사이드 렌더링(SSR) vs 클라이언트 사이드 렌더링(CSR) 1. JSP는 서버 템플릿 엔진으로, 서버에서 구동된다. -> 서버에서 템플릿 양식에 Java코드로 문자열을 만든다. (서버 사이드 렌더링) -> 이 문자열을 HTML로 변환하여 브라우저에 전달한다. -> 브라우저는 문자열을 받아서 화면에 표시할 뿐이다. 2. React의 View는 클라이언트 템플릿 엔진으로, 브라우저 위에서 작동한다. -> 서버는 JSON 또는 xml 형식으로 데이터만 전달한다. -> 브라우저는 템플릿 양식에 데이터를 조립하여 HTML을 만든다. (클라이언트 사이드 렌더링) -.. 2020. 2. 10.