Jackson 라이브러리
- Jackson은 JSON 형식의 데이터를 Java 객체로 변환하거나, Java 객체를 JSON으로 변환하는 데 도움을 주는 라이브러리
- Spring Boot는 spring-boot-starter-web을 통해 Jackson을 내장하여 자동으로 데이터를 직렬화 및 역직렬화할 수 있게 한다.
기본형 | 참조형 |
실제값을 저장하는 타입 | 실제 데이터가 저장된 위치를 참조하는 타입 |
byte, short, int, long, float.. | 배열, 클래스, 인터페이스, Boolean, Long |
@ToString 사용
객체 정보를 String으로 변환하여 전달하는 것이 공통적인 방법
Lombok
@Getter / @Setter
@ToString -> 객체의 모든 필드를 포함한 toString()을 자동 생성
@Data -> @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor를 포함
@Data
@ToString
@AllArgsConstructor
public static class Person {
private String name;
private int age;
}
@AllArgsConstructor
@Getter
@Setter
@Builder
@ToString
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
public static class Post {
@ToString.Exclude
@JsonIgnore
@EqualsAndHashCode.Include
private Long id;
private LocalDateTime createDate;
private LocalDateTime updateDate;
@Builder.Default
private String subject = "제목";
private String body;
}
@ToString.Exclude
- @ToString을 사용할 때, 특정 필드를 toString() 출력에서 제외하고 싶다면 필드 위에 @ToString.Exclude를 붙인다.
@JsonIgnore
- JSON으로 객체를 변환할 때 특정 필드를 제외하고 싶다면 @JsonIgnore를 붙인다. 화면에 표시되는 데이터에서 제외할 때 유용하다.
@EqualsAndHashCode.Include
@EqualsAndHashCode(onlyExplicitlyIncluded = true)와 함께 사용되고, 포함하고 싶은 필드에 붙여서 특정 필드만 비교에 사용하도록 설정
@Builder -> 객체 생성 시 builder 패턴을 사용 가능하게 한다.
위에 @Builder.Default으로 설정안하고, 기본값을 설정한 후 메서드에서 실행했을 때, null 값
@Builder.Default를 사용하면 기본값 설정이 가능
@SneakyThrows
Thread.sleep(2000) 구문에서 발생할 수 있는 InterruptedException을 자동으로 처리
Thread.sleep(2000)-> 2초 동안 지연
@RequiredArgsConstructor -> final 필드를 가진 생성자를 자동으로 생성
private final ComponentB componentB -> 짧아서 선호 / 알아서 객체가 연결
- URL Encoding은 URL에 공백이나 특수 문자를 포함할 때 사용된다.
- @PathVariable은 URL 경로에서 변수를 추출하여 코드 내에서 사용할 수 있게 한다.
Docker
Docker는 애플리케이션과 해당 애플리케이션을 실행하는 데 필요한 모든 것을 하나의 이미지에 담아 배포할 수 있도록 하는 컨테이너화 도구
- Dockerfile : 이미지 생성을 위한 레시피 역할을 하는 스크립트
- Docker 이미지: 애플리케이션과 의존성, 설정 파일 등을 포함하는 패키지로 일종의 밀키트와 같다. / Dockerfile을 통해 만들어진 패키지
- Docker 컨테이너: 이미지를 실행한 실제 인스턴스로 일종의 요리로 비유
도커 파일 하나로 도커 이미지 여러개를 만들 수 있고, 도커 이미지 하나로 도커 컨테이너 여러개를 만들 수 있다.
- Docker Daemon: Docker의 핵심 컴포넌트로, 컨테이너 실행과 관리를 담당 / 컴퓨터에 도커를 설치할 때 설치되는 주체, 핵심
- Docker Hub: 전 세계 개발자들이 Docker 이미지를 공유하는 레지스트리
- 한 번 생성한 Docker 이미지는 다양한 서버 환경에 복사해도 동일하게 실행
- 과거에는 소프트웨어 설치를 위해 서버 설정이 필요했으나, Docker 이미지로 인해 미리 패키징된 환경을 전달
'Spring Boot 프로젝트' 카테고리의 다른 글
Spring Boot 프로젝트 (11.11) - 프록시 (0) | 2024.11.11 |
---|---|
Spring Boot 프로젝트 (11.06) - Fly.io설치, 배포 (1) | 2024.11.08 |
Spring Boot 프로젝트 (11.06) - 도커 파일 생성, 도커 이미지 생성, 도커 컨테이너 생성 (4) | 2024.11.07 |
Spring Boot 프로젝트 (11.04) - surl_project (3) | 2024.11.05 |
Spring Boot 프로젝트 (11.04) - CRUD, 람다식 (1) | 2024.11.05 |