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..