개요Spring Boot 애플리케이션에서 DTO(Data Transfer Object)와 Entity 간의 변환은 시스템 설계와 아키텍처에서 중요한 결정 사항 중 하나입니다. DTO는 주로 클라이언트와의 데이터 교환을 목적으로 하고, Entity는 데이터베이스와 상호작용하는 도메인 객체로 사용됩니다. 이 두 가지 객체의 변환은 애플리케이션의 데이터 흐름에서 필수적인 과정이지만, 변환을 어디에서 수행할지에 따라 코드의 가독성, 유지보수성, 그리고 성능에 큰 영향을 미칩니다. 이 블로그 포스트에서는 DTO와 Entity 간 변환을 어느 Layer에서 수행하는 것이 가장 적절한지 살펴보겠습니다. DTO를 사용하는 이유는❓Entity는 종종 민감한 정보나 불필요한 정보를 포함하고 있습니다. DTO를 사용하..
문제설명입력 & 출력나의 풀이문제 접근 방법"프로그래머스 - 1차 캐시" 문제는 캐시 크기를 측정하는 프로그램을 작성하는 것 입니다. 문제에서 나와 있듯이 LRU(Least Recently Used) 알고리즘을 사용하여 풀이하면 됩니다. 문제의 핵심은 LRU 알고리즘의 특성인 캐시가 가득 찼을 때 가장 오랫동안 사용되지 않은 항목을 제거하는 방식을 생각하면 어렵지 않게 풀 수 있습니다. 물론 순서를 유지하는 LinkedHashMap 같은 자료구조를 사용하면 O(1)로 처리할 수 있으므로 성능이 더 좋아질 수 있지만, ArrayList 자료구조를 사용해서도 충분히 구현할 수 있습니다. [JAVA] ArrayList 알아보기 (동적 배열)Java에서는 기본적으로 여러 데이터를 다룰 때 배열을 사용합니다. ..
개요 IntelliJ IDE를 사용하여 개발을 하던 중 위와 같은 경고문이 떴습니다. 본 글에서는 이 경고문에서 나오는 "Code insignht"에 대해서 정리하고자 합니다. 코드 인사이트(Code insight)란❓코드 인사이트(Code Insight)는 IntelliJ IDEA와 같은 IDE(통합 개발 환경)에서 제공하는 기능으로, 코드 작성 및 유지보수를 더 쉽게 만들어주는 다양한 자동화 도구를 의미합니다.코드 인사이트의 기능1. 자동 완성메서드, 변수, 클래스 이름 등을 자동으로 제안.2. 코드 분석 코드의 문법적 오류나 경고를 실시간으로 감지.3. 리팩토링 지원변수명 변경, 메서드 추출 등을 간단하게 수행.4. 코드 탐색클래스, 메서드, 변수 등을 빠르게 검색하고 이동.5. 구문 강조코드의 가..
계층 구조로 변경하기IntelliJ IDE를 사용하여 개발을 하다보면, 디렉토리 안에 디렉토리를 생성했음에도 불구하고, 계층 구조로 되는 것이 아니라 점(.)으로 구분되는 경우가 있습니다. 이때 간단한 방법으로 이를 해결할 수 있습니다. 위와 같이 점(.)으로 구분되는 경우 프로젝트 우측 상단에 점 세개를 클릭 ➡️ Options ➡️ Tree Appearance ➡️ Compact Middle Packages 해제 Compact Middle Packages 해제를 하게 되면 위와 같이 정상적으로 계층구조로 변경할 수 있습니다.