record란?간단히 설명하자면 "데이터 클래스"이며 순수하게 (불변)데이터를 보유하기 위한 특수한 종류의 클래스다. 이를 사용하면 데이터를 객체 간에 전달하는 작업을 간단하게 만들어준다.JDK14에서 preview로 등장하여 JDK16에서 정식 기능으로 포함예시String 값으로 name, Integer 값으로 age라는 변수를 갖고 있는 User라는 클래스 구현한다고 가정하자.일반 클래스로 구현한 User 클래스public class User { private final String name; private final Integer age; public User(String name, Integer age) { this.name = name; this.age = age; ..
JVM(Java Virtual Machine)이란?운영체제의 메모리 영역에 접근하여 메모리를 관리하는 프로그램메모리 관리, Garbage Collector 등을 수행하게 된다.Garbage Collector란?동적으로 할당한 메모리 영역 중 사용하지 않는 영역을 탐지하여 해제하는 기능을 맡고 있다.C, C++의 경우 사용자가 직접 메모리를 할당 받고, 해제해야 한다.(malloc(), free()와 같은 함수를 사용)하지만 Java에서는 GC의 기능이 Heap 메모리에서 unreachable한 객체를 자동으로 삭제 해 준다.(참고) Heap과 Stack은 또 뭐지?Stack정적*으로 할당한 메모리 영역원시 타입의 데이터가 값과 함께 할당, Heap 영역에 생성된 Object 타입의 데이터의 참조 값을 할..
DTO란?DTO(Data Transfer Object)란 계층간 데이터 교환을 하기 위해 사용되는 객체로 Getter/Setter만 가진 클래스주로 View와 Controller 사이에서 활용데이터 전달만을 위한 객체이므로 java-record로 구현하면 좋음도메인 대신 DTO를 사용하면 좋은 이유DTO 대신 도메인 모델을 계층간 전달에 사용하면 도메인 모델을 캡슐화 하여 보호할 수 있다.view마다 필요한 정보가 다른데, 도메인 모델의 경우 필요하지 않은 정보까지 갖고 있기 때문이다.해당 사진은 MVC 패턴(출처-위키백과)을 간략하게 나타낸 사진이다.MVC 패턴에서 Controller는 Model과 View 사이에서 데이터를 주고 받는다.이 과정에서 Model을 바로 Controller에게 넘겨준다면 ..
일급 컬렉션이 뭔데?컬렉션과 관련된 로직을 캡슐화하는 디자인 패턴Collection을 Wrapping 하면서 그 외의 다른 멤버 변수가 없는 상태그렇기 때문에 일급 컬렉션은 다음과 같은 요소들로 구성 된다.컬렉션 자료형의 인스턴스 변수컬렉션 자료형의 인스턴스 변수에 잘못된 값이 할당되지 않게 막고, 정상적으로 조작하는 메서드예를 들면 다음과 같다.List member = new ArrayList();member.add(new User("길동","주소1"));member.add(new User("예슬","주소2"));member.add(new User("지수","주소3"));해당 코드를 wrapping 하여 일급 컬렉션을 만들어 보자.private List member;public Member(List u..