Programming/Spring

ObjectMapper 자바 객체와 JSON간의 변환을 쉽게 처리할 수 있도록 도와주는 도구 ObjectMapper의 주요 개념과 특징 ObjectMapper란? Jackson 라이브러리에서 제공되는 중요한 클래스 중 하나로, Java 객체를 JSON 데이터로 변환하거나 JSON 데이터를 Java 객체로 역직렬화하는 데 사용된다. 자바 객체와 JSON 간의 변환을 쉽게 처리할 수 있도록 도와주는 도구 import com.fasterxml.jackson.annotation.JsonIgnore; public class Person { private String name; private int age; // 생성자, getter, setter 생략 } // age 필드를 무시하는 어노테이션 abstract c..
@Component와 @bean 어노테이션 이전 포스팅에서 @Configuration과 @Bean 어노테이션에 대해 알아보았다. [Spring] @Configuration, @Bean의 동작 방식(싱글톤) @Configuration, @Bean Spring에서 Bean을 수동으로 등록하기 위해서 설정 클래스 위에 @Configuration 어노테이션을 추가하고, @Bean을 사용해 수동으로 빈을 등록, 관리할 수 있게 된다. 이때 내부적으로 어떤 devmoony.tistory.com 오늘은 @ComponentScan과 @Component 와 @Bean 어노테이션의 서로 다른 용도?에 대해 작성하는 글이다. @ComponentScan @ComponentScan이란 @Component, @Controller..
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor 위 3개의 어노테이션은 Lombok 라이브러리에서 제공하는 생성자를 자동으로 생성해주는 어노테이션이다. @NoArgsConstructor @NoArgsConstructor 어노테이션은 파라미터가 없는 기본 생성자를 생성한다. 필드에 final 지정 변수가 있을 경우 컴파일 에러가 발생한다. @NoArgsConstructor public class MemberDTO { private final String memberId; private String name; private..
@Configuration, @Bean Spring에서 Bean을 수동으로 등록하기 위해서 설정 클래스 위에 @Configuration 어노테이션을 추가하고, @Bean을 사용해 수동으로 빈을 등록, 관리할 수 있게 된다. 이때 내부적으로 어떤식으로 동작하는지 확인하면서 @Configuration과 @Bean을 파헤쳐보는 것을 목적으로 한다. 해당 글은 김영한님의 온라인강의 [스프링 핵심 원리 - 기본편]의 내용을 기반으로 작성하였습니다. @Configuration / @Bean 수동으로 스프링 컨테이너에 Bean을 등록하기 위한 어노테이션이다. 1개 이상의 @Bean을 제공하는 클래스의 경우 반드시 @Configuration을 명시해 주어야 싱글톤이 보장된다. 유지보수성을 높이기 위해 애플리케이션 전범..
Spring - IoC컨테이너에서 관리되고 있는 Bean 목록 조회하기 Spring에는 IoC 컨테이너에서 DI (Dependenct Injection)을 관리하는데 이때 관리되고 있는 Bean 객체를 조회하는 방법을 설명한다. 실제로 프로젝트를 할때 ApplicationContext에서 직접 Bean을 조회할 일은 흔하지 않지만 스프링 내부적으로 동작하는 부분의 이해를 목적으로 한다. 1. 스프링 컨테이너에 등록된 모든 Bean 조회 스프링 내부적으로 관리되고 있는 Bean 및 직접등록한 애플리케이션 Bean을 모두 조회하는 방법이다. public class ApplicationContextInfoTest { AnnotationConfigApplicationContext ac = new Annotati..
JPA란 무엇인가? 약 2년전에 JPA 강의를 결제해놓고 제대로 못보다가 최근들어 JPA에 대해 다시 공부를 시작하였다. 더 깊게 공부하기 앞서 JPA의 개념에 대해 정리해보려 한다. 해당 글은 온라인강의 [김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편] 및 타 블로그 글을 참고하였습니다. JPA(Java Persistence API)란 자바의 ORM을 위한 표준 기술로 Hibernate, Spring JPA, EclipseLink등과 같은 구현체가 있다. 이것의 표준 인터페이스가 JPA이다. JPA에 앞서 ORM(Object Relational Mapping)에 대해 알아보자 ORM이란? ORM(Object Relational Mapping)은 자바의 객체와 관계형데이터베이스를 매핑해주는 도..
DTO vs VO vs Entity 우리가 Spring Framework를 사용하면서 비슷한 개념이라고 생각했던 DTO, VO, Entity의 개념 및 차이점을 정리한다. 1. DTO (Data Transfer Object) DTO(Data Transfer Object)는 데이터 전송(이동) 객체(Java Beans)라는 의미를 갖는다. DTO는 계층(Layer)간 데이터를 주고 받을 때(주로 비동기) 사용하며, 주로 View와 Controller 사이에서 데이터를 주고 받을 때 활용하고 로직을 갖지 않는 순수한 데이터 객체이며, getter/setter 메소드만을 갖는다. 아래코드는 setter 를 가지는 경우로 가변 객체로 활용한 경우이다. public class StudentDTO { private..
Spring - WebFlux란? WebFlux는 Spring 5에서 새롭게 추가된 Reactive-Stack의 웹 프레임워크이며, 클라이언트/서버에서 리액티브(reactive) 애플리케이션 개발을 위한 논블로킹 리액티브 스트림을 지원한다. 2017년 8월에 릴리즈되어 Spring5에 새롭개 추가된 WebFlux가 생긴 이유는, 적은 양의 스레드와 최소한의 하드웨어 자원으로 동시성을 핸들링 하기 위해 만들어졌다. 함수형 프로그래밍 때문이다. Java5에서 RestController나 unit test가 만들어지고, Java8에서 함수형 API를 위한 람다식이 추가됐는데 이는 논블로킹(non-blocking)어플리케이션 API의 토대가 됐다. WebFlux의 등장 WebFlux는 논블로킹으로 동작하는 웹 ..
코딩무니
'Programming/Spring' 카테고리의 글 목록