Java/Spring
-
빌더 패턴생성과 관련된 디자인 패턴으로, 다양한 구성의 인스턴스를 만드는 방법이다.빌더 패턴은 싱글톤 패턴, 팩토리 패턴, 추상팩토리 패턴과 같이 생성패턴에 해당한다.복잡한 객체를 생성하는 클래스와 표현하는 클래스를 분리하여, 동일한 절차에서도 서로 다른 표현을생성하는 방법을 제공한다.생성자만 사용할 때 발생할 수 있는 문제를 개선하기 위해 고안됐다. 빌더 패턴은 많은 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 -
OS 마다 파일 경로를 구분하는 구분자가 다르다. Windows 에서는 " \ " (역슬래시) 를 구분자로 사용하고 Linux 에서는 " / " 를 사용한다. Windows : " C:\Users\ " Linux : " /var/log/ " 이러한 구분자를 2개 이상의 OS 에서 사용하는 프로그램에서는 문제가 발생한다. 매번 경로를 OS에 맞게 구분자를 설정해줘야 한다. 이때 필요한게 File.separator 이다. 프로그램이 실행되는 OS에 맞게 separator 를 불러와 사용할 수 있다. File file = new File("/var" + File.separator + "text.txt"); System.out.println("file path : "+file.toPath()); //결과 fil..
File.separatorOS 마다 파일 경로를 구분하는 구분자가 다르다. Windows 에서는 " \ " (역슬래시) 를 구분자로 사용하고 Linux 에서는 " / " 를 사용한다. Windows : " C:\Users\ " Linux : " /var/log/ " 이러한 구분자를 2개 이상의 OS 에서 사용하는 프로그램에서는 문제가 발생한다. 매번 경로를 OS에 맞게 구분자를 설정해줘야 한다. 이때 필요한게 File.separator 이다. 프로그램이 실행되는 OS에 맞게 separator 를 불러와 사용할 수 있다. File file = new File("/var" + File.separator + "text.txt"); System.out.println("file path : "+file.toPath()); //결과 fil..
2022.08.24 -
Spring 에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller 와 @RestController 가 있습니다.일반적인 Spring MVC의 컨트롤러인 @Controller 와 Restful 방식의 컨트롤러인 @RestController 의주요한 차이점은 HTTP Response Body가 생성되는 방식이다. @Controller 와 @RestController 는 용도의 차이라고 생각하면 된다.옛날에는 jsp 나 html 과 같이 view에 데이터를 담아 전달했기 때문에 @Controller를 사용했다.하지만 최근에는 백엔드와 프론트엔드를 분리하면서 백엔드쪽에선 Rest API를 통해 Json 데이터만 전달하고프론트엔드는 백엔드에서 넘어온 Json 데이터를 화면에 보여주는 방식이기 때문에 ..
@Controller, @RestControllerSpring 에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller 와 @RestController 가 있습니다.일반적인 Spring MVC의 컨트롤러인 @Controller 와 Restful 방식의 컨트롤러인 @RestController 의주요한 차이점은 HTTP Response Body가 생성되는 방식이다. @Controller 와 @RestController 는 용도의 차이라고 생각하면 된다.옛날에는 jsp 나 html 과 같이 view에 데이터를 담아 전달했기 때문에 @Controller를 사용했다.하지만 최근에는 백엔드와 프론트엔드를 분리하면서 백엔드쪽에선 Rest API를 통해 Json 데이터만 전달하고프론트엔드는 백엔드에서 넘어온 Json 데이터를 화면에 보여주는 방식이기 때문에 ..
2022.08.09 -
Spring Security 를 사용하여 Config 설정을 하는데 간단한 설정만으로도 로그인/로그아웃 등의 처리가 가능하다. URL에 대한 접근 권한 설정, 인증 전체 흐름에 필요한 로그인/로그아웃 페이지 설정, csrf 등 모든 설정을 간단한 방법으로 가능하다. @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter{ @Override public void configure(HttpSecurity http) throws Exception { http // 페이지 권한 설정 .authorizeRequests() .antMatchers( "/", "/error", "/static/**..
Spring Security Config 설정Spring Security 를 사용하여 Config 설정을 하는데 간단한 설정만으로도 로그인/로그아웃 등의 처리가 가능하다. URL에 대한 접근 권한 설정, 인증 전체 흐름에 필요한 로그인/로그아웃 페이지 설정, csrf 등 모든 설정을 간단한 방법으로 가능하다. @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter{ @Override public void configure(HttpSecurity http) throws Exception { http // 페이지 권한 설정 .authorizeRequests() .antMatchers( "/", "/error", "/static/**..
2022.08.09 -
1. /WEB-INF/spring/root-context.xml 파일 설정 Dynamic Web Project 만들기 2 에서 설정한 root-context.xml 파일에 내용을 추가한다. /WEB-INF/spring/root-context.xml 파일에 추가 * context:component-scan => 특정 패키지 안의 클래스들을 스캔하여 Annotation을 확인 후 Spring Bean 으로 등록한다. => @Component, @Controller, @Service, @Repository 등 component 어노테이션들을 Bean 등록 한다. 2. /WEB-INF/spring/appServlet/dispatcher-servlet.xml 파일에 내용 추가 * handlerMapping => ..
Dynamic Web Project 만들기 4 - 프로젝트 기본 설정(component-scan, handlerMapping, ViewResolver)1. /WEB-INF/spring/root-context.xml 파일 설정 Dynamic Web Project 만들기 2 에서 설정한 root-context.xml 파일에 내용을 추가한다. /WEB-INF/spring/root-context.xml 파일에 추가 * context:component-scan => 특정 패키지 안의 클래스들을 스캔하여 Annotation을 확인 후 Spring Bean 으로 등록한다. => @Component, @Controller, @Service, @Repository 등 component 어노테이션들을 Bean 등록 한다. 2. /WEB-INF/spring/appServlet/dispatcher-servlet.xml 파일에 내용 추가 * handlerMapping => ..
2022.07.14