Intro 두 번째로 FE 개발자분들과 협업할 수 있는 주였다. 확실히 첫 번째 주에 협업을 하고 난 이후여서 조금 더 FE 분들께 말하는 방법(조금 더 백엔드 부분의 설명을 단순화해서 말씀드리는 것?)이나, 조심해야 하는 부분들을 알아서 그런지, 조금 더 수월 했다. 그리고 저번 주차에 고생했던 CorsConfigurationSource을 사용한 cors 설정 부분과, depreciate 된 WebSecurityConfigurer을 사용하지 않고, 권장 방식인 SecurityFilterChain을 빈으로 등록해서 설정하여 http.build()하여 반환하는 방식을 공부하면서, 로그인 부분을 구현하시는 분께 의견을 제시했고, 이번 프로젝트에 적용하게 되었다. 1. 백엔드로서 고민했던 점 [마켓 컬리 데이..

@RequestBody에서 Setter가 필요 없는 이유 @Request Body에서는 Setter가 필요없다? 회사에서 근무하던중 새로오신 신입 개발자분이 저에게 하나의 질문을 했습니다. POST 요청시에 Setter 가 필요없는것 같다고. 여태 제가 알던것과는 달라서 어떻게 된 일인지 궁금했습니다. 정말 jojoldu.tistory.com 1. 요약 1) POST로 요청을 받을 경우 Jackson2HttpMessageConverter 내부에서 ObjectMapper를 이용해 역직렬화 하여, 객체 형태로 만들어 데이터 바인딩을 해주기 때문에 setter가 필요 없다. ※ 직렬화: 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있는 바이트 형태로 데이터를 변환하는 ..
Intro Spring을 이용하는 이유는 단순히 다형성과 객체지향 5대 원칙인 SOLID를 지키는 것뿐만 아닌 싱글톤 패턴의 장점을 극대화하며 단점을 보완하는 방법에 대해 공부를 하며 정리해 보았습니다. 1. 순수 자바 코드를 통한 의존성 주입의 문제점 자바는 객체를 생성하여 주로 기능을 구현해 간다. 여기서 클라이언트가 요청할 때 마다 객체를 생성하게 됨으로 비효율이 발생하게 된다. 이 문제를 해결하려면 어떻게 해야 할까? 2. Singleton Pattern 클래스의 인스턴스가 1개만 생성되는 것을 보장하는 Singleton Pattern으로 설계를 하는 방법은 많지만 공부한 대로 미리 객체를 static 키워드를 이용해 해당 인스턴스를 공유하여 설계하는 방법을 사용해 보았다. [코드] public ..

1. 의존 객체의 직접 생성 방식과 외부 생성 방식의 차이 (1) 객체 직접 생성 방식 특징: 클래스 내부에 직접 생성 단점: 요구사항의 변화로 의존하는 객체의 내용이 변경되었을 때 의존 객체를 사용하는 객체의 내용을 모두 수정해 줘야 함 (2) 외부 생성 방식 특징: 외부에서 객체를 생성해 전달받는 방식 장점: 객체의 유효성 여부를 확인할 수 있다, 인자로 받는 객체의 Interface를 통해 오버라이드 하여 가짜 객체를 생성하여 단위 테스트가 가능해진다. 2. 외부 생성 의존 객체 전달 방식 (1) 생성자 방식 생성자를 통해서 의존하는 객체를 전달받는 방식 장점: 객체를 생성하는 시점에 의존하는 객체를 모두 전달받을 수 있다, 전달받은 파라미터가 정상인지 확인하는 코드를 생성자에 추가하..

Spring 주요 모듈 (1) Spring Framework 스프링을 이용해서 애플리케이션을 개발을 할 때 기반이 되는 프레임워크, 핵심 기능인 AOP, DI 기능 제공, 웹 애플리케이션을 개발할 때 필요한 스프링 MVC, Spring ORM 등의 기능 포함 (2) Spring Data 데이터 연동을 위한 단일 API를 제공, 해당 API를 기반으로 JPA, MongoDB 등 RDBMS, NoSQL 과의 연동을 지원 (3) Spring Security 인증과 허가에 대한 기반 프레임워크 및 관련 모듈을 제공, 웹 애플리케이션을 위한 보안을 간단한 설정과 약간의 코드 구현으로 처리하도록 지원 (4) Spring Batch 배치처리를 위한 기반 프레임워크를 제공 데이터 처리, 흐름 제어, 실패..

Spring Framework 란 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크, 기업을 대상으로 하는 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션 Spring 핵심 특징 1. Bean Spring IoC Container에 등록되어, 관리(인스턴스화, 관리, 생성)되는 자바 객체 기본적으로 싱글톤으로 존재 Spring 에서는 POJO(Plain Old Java Object) 를 Beans 라고 부른다. XML 설정 파일, @Configuraion 또는 @Component 를 통해 Spring 컨테이너에 빈을 등록 @Configuration을 사용한 예시 코드 @Configuration public class ExConfiguration { @Bean ..