Spring 22

Spring ) 스프링 빈(Bean)이란 무엇인가?

빈(Bean) 빈(Bean)은 스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트이다. 즉, 스프링 컨테이너가 관리하는 자바 객체를 뜻하며, 하나 이상의 빈(Bean)을 관리한다. 빈은 인스턴스화된 객체를 의미하며, 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다. @Bean 어노테이션을 통해 메서드로부터 반환된 객체를 스프링 컨테이너에 등록한다. 빈은 클래스의 등록 정보, Getter/Setter 메서드를 포함하며, 컨테이너에 사용되는 설정 메타데이터로 생성된다. 설정 메타데이터 : XML 또는 자바 어노테이션, 자바 코드로 표현하며, 컨테이너의 명령과 인스턴스화, 설정, 조립할 객체 등을 정의한다. 빈(Bean) 접근 방법 먼저, ApplicationContext(스프링 컨테이너)..

Spring 2023.07.12

Spring ) Intro to the Jackson ObjectMapper / ObjectMapper 정리

개요 Java 개발자라면 Jackson에서 제공하는 ObjectMapper와 자주 마주치게 됩니다. Java 클래스 내용을 확인하거나 내용물의 Parsing 과정에 필요한 커스터마이징이 존재하기 때문입니다. 물론 중요한 기능은 (1) "Java Object" =Serialize=> "JSON", (2) "JSON" =Deserialize=> "Java Object" 입니다. 개발 중에 매 번 찾아보기 지쳐서 이제는 한 곳에 정리가 필요하지 않을까 생각되어서 이 글을 쓰게 되었습니다. 목차 Add Dependency for "Jackson ObjectMapper" Basic Features Convert "Java Object" to "JSON" Convert "JSON" to "Java Object" C..

Spring 2023.07.12

Spring ) @JsonInclude(JsonInclude.Include.NON_NULL)

{ "name": "John", "address": "123 Main St" } @JsonInclude(JsonInclude.Include.NON_NULL)은 Jackson 라이브러리를 사용하여 JSON 직렬화 시 필드 중 null 값인 경우 해당 필드를 제외하도록 지정하는 애노테이션입니다. JSON 직렬화란 Java 객체를 JSON 형식으로 변환하는 과정을 말합니다. 기본적으로 Jackson은 Java 객체의 모든 필드를 JSON으로 변환합니다. 그러나 때로는 일부 필드가 null일 경우 JSON에 포함시키지 않는 것이 유용할 수 있습니다. 예를 들어, 클라이언트와 서버 간의 데이터 통신에서 불필요한 데이터를 줄이고자 할 때 이 애노테이션을 사용할 수 있습니다. @JsonInclude(JsonInclu..

Spring 2023.07.05

Spring ) Java Annotation GeneratedValue 에 대해서 알아보자

@GeneratedValue은 Java Spring 프레임워크에서 엔티티 클래스의 기본 키(primary key) 값을 자동으로 생성하기 위해 사용되는 애노테이션입니다. 주로 데이터베이스와 관련된 작업에서 사용되며, 기본 키 값을 자동으로 생성하고 할당하는 데에 유용합니다. @GeneratedValue 애노테이션은 주로 JPA(Java Persistence API)와 함께 사용되며, JPA에서 엔티티 클래스의 기본 키 값을 자동으로 생성하는 방법을 제공합니다. JPA는 객체를 데이터베이스에 영속화(persistence)하는 데 사용되는 자바 ORM(Object-Relational Mapping) 기술입니다. @GeneratedValue 애노테이션은 주로 기본 키 값의 생성 전략을 지정하기 위해 사용됩니다..

Spring 2023.07.04

Spring Data JPA ) 매핑 테이블과 연관관계 매핑하기

테이블 연관관계는 RDB에 있어 중요한 개념 중 하나라고 생각한다. 이런 테이블 연관관계를 알기 위해서는 외래 키에 대한 개념과 매핑 테이블에 대한 개념을 이해해야 한다. 외래 키와 매핑 테이블 외래 키란? 관계형 데이터베이스에서 외래 키는 한 테이블의 필드 중 다른 테이블의 행을 식별할 수 있는 키를 말한다. 이런 외래 키를 사용하는 곳은 주로 다음과 같은 곳일 것이다. 쇼핑몰에서 사용자와 주문 목록을 예로 들어보자. 만약 사용자 J가 이 칫솔을 구매했다고 가정해보자. 그럼 테이블이 어떻게 될까? 정규화를 잘 했다면 이런 식으로 구성할 일은 없겠지만 우선 이렇게 했다고 가정해보자. 그럼 사용자 A가 어떤 물품을 샀는지를 확인하는 쿼리는 아마 다음과 같을 것이다. SELECT order_item FROM..

Spring 2023.06.22

Spring ) Dynamic 동적 페이지 Controller 에서 활용하기

HTML 삽입 미리보기할 수 없는 소스 @Controller public class HtmlController { private static long visitCount = 0; @GetMapping("/html/dynamic") public String htmlDynamic(Model model) { visitCount++; model.addAttribute("visits", visitCount); return "hello-visit"; } } visitCount 가 증감연산자에 의해 증가되고, model 에 담긴다. 이름은 visits 그리고 반환할 때는 hello-visit, 반환할 View-name 정보를 전달함. 그럼 이를 Dispatcher Servlet 에서 hello-visit 파일을 확인..

Spring 2023.06.14