본문 바로가기
728x90
반응형

자바13

[Java] 빌더 패턴(Builder pattern)을 써야하는 이유, @Builder 빌더 패턴(Builder pattern)이란? 객체를 정의하고 그 객체를 생성할 때 보통 생성자를 통해 생성하는 것을 생각한다. Bag bag = new Bag("name", 1000, "memo"); 하지만 생성자를 통해 객체를 생성하는데 몇 가지 단점이 있어 객체를 생성하는 별도 builder를 두는 방법이 있다. 이를 빌더 패턴이라고 한다. Bag bag = Bag.builder() .name("name") .money(1000) .memo("memo") .build(); 객체를 생성할 수 있는 빌더를 builder() 함수를 통해 얻고 거기에 셋팅하고자 하는 값을 셋팅하고 마지막에 build()를 통해 빌더를 작동 시켜 객체를 생성한다. 빌더를 써야하는 이유 객체를 생성하는 방법이 생성자말고 빌더.. 2023. 3. 23.
[Spring] 멀티 모듈 프로젝트 만들기 ❗️ 멀티 모듈 프로젝트가 필요한 이유 예를 들어서 회원 프로그램을 개발한다고 했을 때 여러 개의 서버가 필요하다. ① batch 서버 ② API 서버 등등 하지만 해당 서버들을 단일 프로젝트로 만들게 되면 다음과 같은 문제가 생긴다. 첫번째, 공통적으로 처리해야하는 코드의 처리 : 아예 분리되어 있는 프로젝트이다 보니 공통되는 코드들은 각 프로젝트에 복붙해서 사용할 수 밖에 없고, 한 파일의 코드가 수정되는 경우 다른 프로젝트의 코드도 수정해줘야 한다. 두번째, 접근성 문제 : 프로젝트 수에 따라 IDE 를 실행시켜야 하고 ,, 프로젝트 수가 많아지면 많아 질 수록 개발하는데 어려움이 동반 될 수 밖에 없다. 이런 문제를 해결하기 위해선 멀티 모듈 프로젝트를 사용하면 된다. ❓ 멀티 모듈 프로젝트의 구.. 2023. 3. 10.
@RequestBody로 String 타입을 받는 경우 Troubleshooting 발생한 문제 @PostMapping("{id}") public boolean checkPassword(@RequestBody String password, @PathVariable long id) { System.out.println("password = " + password); return blogService.checkPassword(id, password); } 요청 결과 위 json 데이터를 요청 보내면 코드 상으로 password 값에 pw가 String 타입으로 있을 거라고 기대했지만 josn 형태로 그대로 들어가있다. 해결 과정 보통 아래의 코드처럼 User 객체를 json 형태로 보냈을 때 user.getName() 의 반환값으로 "wisdom" 이 Strin.. 2023. 2. 16.
[Spring] 빈 등록을 위한 어노테이션 @Bean, @Configuration, @Component 차이 및 비교 1. Spring Bean이란? [ Spring Bean 이란? ] Spring에서는 Spring의 DI Container에 의해 관리되는 POJO(Plain Old Java Object)를 Bean이라고 부르며, 이러한 Bean들은 Spring을 구성하는 핵심 요소이다. Spring의 Bean을 정리하면 아래와 같다. POJO(Plain Old Java Object)로써 Spring 애플리케이션을 구성하는 핵심 객체이다. Spring IoC 컨테이너(또는 DI 컨테이너)에 의해 생성 및 관리된다. class, id, scope, constructor-arg 등을 주요 속성으로 지닌다. [ Spring Bean 구성 요소 ] class: Bean으로 등록할 Java 클래스 id: Bean의 고유 식별자 .. 2023. 2. 8.
728x90
반응형