본문 바로가기
반응형

Study/고민3

[비교] DTO Class vs Record Intro 기존에 Java 11만 쓰다가 이번 프로젝트에서 Java 17을 처음 써보는데, 클래스 생성 중 Record라는 메뉴가 생겨서 찾아보니 DTO로 쓰기 딱이라는 생각이 들었다. Record는 Java 16에서 정식 출시된 새 유형의 클래스로, 불변 객체를 생성할 때 사용한다. java.lang.Record를 상속받는다고 한다. 기존에 사용하던 Class 방식에 Record으로 변경했을 때의 장단점을 비교해보자. Record 특징 1. 보일러 플레이트 코드 제거 다양한 함수를 기본적으로 제공해주기 때문에 보일러 플레이트 코드가 많이 빠진다. 예를 들어 Class를 썼을 때 아래와 같이 선언된 코드가, public class TestClassDto { private final Long id; pri.. 2022. 11. 30.
[비교] Tree 구조 API 디자인 Intro 토이프로젝트 진행 중 트리 구조의 데이터를 서버에 저장해야 할 일이 생겼다. 저장 API를 구현하는 방식으로 아래의 2가지 방법이 떠올랐는데, 이 방법들의 장단점을 비교해보자. 트리 구조 그대로 요청 트리의 각 노드를 쪼개 배열 형태로 요청 트리 구조 그대로 요청 { "name": "test", "root": { "content": "node1", "child": [ { "content": "node1-1", "child": [ { "content": "node1-1-1", "child": [] } ] }, { "content": "node1-2", "child": [ { "content": "node1-2-1", "child": [] } ] } ] } } Tree 구조 그대로 요청하기 때문에.. 2022. 10. 29.
[비교] Session vs JWT Intro 토이프로젝트 설계 중 사용자 인증을 세션으로 할지, JWT로 할지 선택해야 했다. 둘의 장단점이 명확해서 어느것을 고르기가 힘들었고, 결정의 기준이 된 두 기술의 특징, 장점, 단점을 정리해봤다. Session 특징: 인증 정보를 서버에서 관리한다. 장점 서버에서 사용자 인증 상태를 관리하기 쉽다. 로그아웃 시 세션을 만료시키기만 하면 끝난다. 단점 세션 ID 및 인증 정보를 서버에 저장해야 한다. Client가 Request를 보낼 때마다 세션 정보를 메모리 또는 DB에서 가져와야 한다. 서버 컨테이너가 여럿일 경우 이들간의 동기화를 위해 세션 클러스터링이나 스티키 세션 기법을 사용해야 한다. 동기화하지 않는다면 외부 DB에 세션 정보를 저장해야 한다. 주로 Redis와 같이 속도가 빠른 I.. 2022. 10. 28.
반응형