java
-
빌더 패턴생성과 관련된 디자인 패턴으로, 다양한 구성의 인스턴스를 만드는 방법이다.빌더 패턴은 싱글톤 패턴, 팩토리 패턴, 추상팩토리 패턴과 같이 생성패턴에 해당한다.복잡한 객체를 생성하는 클래스와 표현하는 클래스를 분리하여, 동일한 절차에서도 서로 다른 표현을생성하는 방법을 제공한다.생성자만 사용할 때 발생할 수 있는 문제를 개선하기 위해 고안됐다. 빌더 패턴은 많은 Optional 한 멤버 변수(혹은 파라미터)나 지속성 없는 상태 값들에 대해 처리해야 하는문제들을 해결합니다.즉, 필수값과 필수값이 아닌 값들을 구분하기 위해서 사용한다. 예를들어, 팩토리 패턴이나 추상 팩토리 패턴에서는 생성해야하는 클래스에 대한 속성 값이 많을 때아래와 같은 이슈들이 있습니다.팩토리 클래스로 많은 파라미터를 넘겨줄 때..
Lombok @Builder빌더 패턴생성과 관련된 디자인 패턴으로, 다양한 구성의 인스턴스를 만드는 방법이다.빌더 패턴은 싱글톤 패턴, 팩토리 패턴, 추상팩토리 패턴과 같이 생성패턴에 해당한다.복잡한 객체를 생성하는 클래스와 표현하는 클래스를 분리하여, 동일한 절차에서도 서로 다른 표현을생성하는 방법을 제공한다.생성자만 사용할 때 발생할 수 있는 문제를 개선하기 위해 고안됐다. 빌더 패턴은 많은 Optional 한 멤버 변수(혹은 파라미터)나 지속성 없는 상태 값들에 대해 처리해야 하는문제들을 해결합니다.즉, 필수값과 필수값이 아닌 값들을 구분하기 위해서 사용한다. 예를들어, 팩토리 패턴이나 추상 팩토리 패턴에서는 생성해야하는 클래스에 대한 속성 값이 많을 때아래와 같은 이슈들이 있습니다.팩토리 클래스로 많은 파라미터를 넘겨줄 때..
2022.09.14 -
JAR(Java Archive), WAR(Web Application Archive) 모두 Java의 jar 옵션(java -jar)을 이용하여 생성된압축 파일이며, 어플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성파일 등)들을패키징 해주는 역할이다. JAR (Java Archive).jar 확장자 파일에는 Class와 같은 Java 리소스와 속성 파일, 라이브러리 및 액세서리 파일이 포함되어 있다.쉽게 말해 Java 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일이다. 사용처 : Java 라이브러리, 스탠드얼론 Java 애플리케이션, 의존성 패키지 등 보통 jar 는 JAVA 라이브러리르 제공하기 위해 많이 사용한다. .jar 파일은 원하는 구조로 구성이 가능하며 J..
JAR, WAR 차이점 및 특징JAR(Java Archive), WAR(Web Application Archive) 모두 Java의 jar 옵션(java -jar)을 이용하여 생성된압축 파일이며, 어플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성파일 등)들을패키징 해주는 역할이다. JAR (Java Archive).jar 확장자 파일에는 Class와 같은 Java 리소스와 속성 파일, 라이브러리 및 액세서리 파일이 포함되어 있다.쉽게 말해 Java 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일이다. 사용처 : Java 라이브러리, 스탠드얼론 Java 애플리케이션, 의존성 패키지 등 보통 jar 는 JAVA 라이브러리르 제공하기 위해 많이 사용한다. .jar 파일은 원하는 구조로 구성이 가능하며 J..
2022.09.13 -
final 키워드 final의 의미는 최종적이라는 뜻을 가지고 있습니다. final 키워드를 사용했을 때 초기화가 되면 최종적인 값이 되어 프로그램 도중에 수정을 할 수 없습니다. final 키워드는 변수, 메서드, 클래스에 사용될 수 있습니다. 또한 변수, 메서드, 클래스 중 어디에 사용하냐에 따라 다른 의미를 가집니다. final 필드 // final 필드 [= 초기값]; final int number = 1; final 필드 타입은 위와 같이 선언하며 final 필드의 초기값을 줄 수 있는 방법은 2가지 있습니다. 첫번째는 위 코드와 같이 선언과 동시에 초기값을 선언하는 방법과 두번째는 생성자를 통해서 초기값을 주는 방법이 있습니다. 보통 단순한 값이라면 final 필드 선언과 동시에 초기값을 주는..
final 키워드final 키워드 final의 의미는 최종적이라는 뜻을 가지고 있습니다. final 키워드를 사용했을 때 초기화가 되면 최종적인 값이 되어 프로그램 도중에 수정을 할 수 없습니다. final 키워드는 변수, 메서드, 클래스에 사용될 수 있습니다. 또한 변수, 메서드, 클래스 중 어디에 사용하냐에 따라 다른 의미를 가집니다. final 필드 // final 필드 [= 초기값]; final int number = 1; final 필드 타입은 위와 같이 선언하며 final 필드의 초기값을 줄 수 있는 방법은 2가지 있습니다. 첫번째는 위 코드와 같이 선언과 동시에 초기값을 선언하는 방법과 두번째는 생성자를 통해서 초기값을 주는 방법이 있습니다. 보통 단순한 값이라면 final 필드 선언과 동시에 초기값을 주는..
2022.05.18 -
의존성 주입(Dependency Injection, DI)의존성 주입을 해야 하는 이유는 아래와 같다.외부에서 객체를 생성하여 가져오기 때문에 객체 간의 의존성을 줄이거나 없앨 수 있다.또한 객체 간의 결합도를 낮추면서 유연한 코드를 작성할 수 있다. 자세한 내용은 아래를 참고해주세요https://okimaru.tistory.com/113 Spring Web Framework(IOC, DI)제어의 역전(IOC, Inversion Of Control) 제어의 역전이란 메소드나 객체의 호출작업을 개발자가 결정하는게 아닌 외부에서 결정되는 것을 의미한다. 쉽게 말해 객체의 제어권을 IOC 컨테이너에게 넘겨okimaru.tistory.com Spring에서는 @Autowired 를 사용하는 필드 주입이나 수정자..
생성자 주입, 필드 주입(@Autowired), 수정자 주입의존성 주입(Dependency Injection, DI)의존성 주입을 해야 하는 이유는 아래와 같다.외부에서 객체를 생성하여 가져오기 때문에 객체 간의 의존성을 줄이거나 없앨 수 있다.또한 객체 간의 결합도를 낮추면서 유연한 코드를 작성할 수 있다. 자세한 내용은 아래를 참고해주세요https://okimaru.tistory.com/113 Spring Web Framework(IOC, DI)제어의 역전(IOC, Inversion Of Control) 제어의 역전이란 메소드나 객체의 호출작업을 개발자가 결정하는게 아닌 외부에서 결정되는 것을 의미한다. 쉽게 말해 객체의 제어권을 IOC 컨테이너에게 넘겨okimaru.tistory.com Spring에서는 @Autowired 를 사용하는 필드 주입이나 수정자..
2022.05.18 -
Java Controller에서 ModelMap을 사용하여 넘긴 데이터를 Thymeleaf html 및 Javascript에서 사용하기 - Java 위 이미지와 같이 Thymeleaf의 prefix, suffix에 의해 return String으로 설정하고 view name을 일치 시키면 해당 view로 데이터가 넘어간다. 데이터를 설정하기 위해 ModelMap을 파라미터로 지정한다. ModelMap 의 메소드 중 addAttribute를 사용하여 데이터를 지정할 수 있다. @RequestMapping(value = "/main") public String main(ModelMap map, HttpServletRequest request) throws IOException { HashMap m = new..
Thymeleaf Java에서 넘어온 객체 값 Javascript로 전송Java Controller에서 ModelMap을 사용하여 넘긴 데이터를 Thymeleaf html 및 Javascript에서 사용하기 - Java 위 이미지와 같이 Thymeleaf의 prefix, suffix에 의해 return String으로 설정하고 view name을 일치 시키면 해당 view로 데이터가 넘어간다. 데이터를 설정하기 위해 ModelMap을 파라미터로 지정한다. ModelMap 의 메소드 중 addAttribute를 사용하여 데이터를 지정할 수 있다. @RequestMapping(value = "/main") public String main(ModelMap map, HttpServletRequest request) throws IOException { HashMap m = new..
2022.05.18 -
RequestContextHolder Spring 전역으로 Request 에 대한 정보를 가져올 때 사용한다. RequestContextHolder 를 이용해서 Controller, Service, Dao 등 전 구간에서 HttpServletRequest에 접근할 수 있다. RequestContextHolder 가 초기화 되는 시점은 Servlet이 생성될 때이다. 즉, 생성 시기는 Http Request가 오는 시점에 생성 및 초기화 되어지고 비즈니스 로직을 수행한 후 서블릿이 Destroy 될 때 Clean 된다. RequestContextHolder는 같은 쓰레드 범위에서 데이터를 요청할 수 있다. 새로운 쓰레드를 생성하는 순간 DispatcherServlet의 범위에서 벗어나 서로 다른 서블릿이 ..
RequestContextHolderRequestContextHolder Spring 전역으로 Request 에 대한 정보를 가져올 때 사용한다. RequestContextHolder 를 이용해서 Controller, Service, Dao 등 전 구간에서 HttpServletRequest에 접근할 수 있다. RequestContextHolder 가 초기화 되는 시점은 Servlet이 생성될 때이다. 즉, 생성 시기는 Http Request가 오는 시점에 생성 및 초기화 되어지고 비즈니스 로직을 수행한 후 서블릿이 Destroy 될 때 Clean 된다. RequestContextHolder는 같은 쓰레드 범위에서 데이터를 요청할 수 있다. 새로운 쓰레드를 생성하는 순간 DispatcherServlet의 범위에서 벗어나 서로 다른 서블릿이 ..
2022.05.11