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..
Programming
[Linux] ssh와 rlogin의 차이 ssh(Secure Shell)와 rlogin은 모두 원격 접속을 제공하는 프로토콜이지만 ssh는 보안 강화 및 다양한 안전 기능을 제공하는 반면, rlogin은 비안전하며 오래된 원격 로그인 프로토콜이다. 두가지 프로토콜의 특징을 좀 더 확인해보도록 하자. 1. SSH (Secure Shell) $ ssh [계정]@[호스트IP] 개념 및 특징 SSH는 네트워크 상에서 안전한 통신을 제공하는 프로토콜 및 해당 프로토콜을 구현한 프로그램 암호화된 통신을 제공하여 데이터의 기밀성을 유지하고 중간에서의 도청을 방지함 사용자 인증 및 호스트 인증을 통해 안전한 접속 보장 터널링 기능을 제공하여 다양한 프로토콜을 안전하게 전송 가능 차이점 보안 : ssh는 데이터를 암호..
Record 란? 불변한 데이터를 표현하기 위한 간결하게 객체를 생성할 수 있도록 하는 유형의 클래스 JDK14에서 preview로 등장해 JDK16에서 정식 스펙으로 포함 public record Point(int x, int y) { } 주요 특징 불변성(Immutable) 레코드는 한 번 생성되면 수정할 수 없다. (데이터의 무결성 유지) 필드 암시적 정의 레코드는 명시적인 필드 정의 없이도 컴파일러가 자동으로 필드를 생성한다. 위 예제에서는 'x' 와 'y' 필드가 생성된다. 'equals()', 'hashCode()', 'toString()' 자동 생성 레코드는 기본적으로 위와 같은 메서드를 자동으로 생성한다. 복사 생성자(Copy Constructor) 자동 생성 레코드는 'with' 키워드를..
@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..
문제 네이버 뉴스 검색 API 응답 파라미터 중 "Tue, 13 Jun 2023 22:12:00 +0900" 형태의 문자열을 "yyyyMMddHHmmss" 형태로 변환하기 위해 String(EEE, dd MMM yyy HH:mm:ss Z) -> Date -> String(yyyyMMddHHmmss) 으로 반환해주는 유틸 함수를 만드는 중 Date로 parse하는 도중 java.text.ParseException: Unparseable date 이 발생하여 문제 해결 내용을 기록한다. 오류 발생 소스 public static String dateFormat(String inDate) { String formatDate = ""; SimpleDateFormat format1 = new SimpleDateFo..
@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..