본문 바로가기
728x90
728x90

Spring22

Spring Boot에서 VO, DTO, Entity 완벽 정리 - 헷갈리지 말자! "이거 DTO로 만들까요, VO로 만들까요?" - 신입 개발자 시절 누구나 한 번쯤 해본 질문Spring Boot로 개발하다 보면 VO, DTO, Entity라는 용어를 자주 마주칩니다. 비슷해 보이지만 각각의 목적과 사용처가 명확히 다릅니다. 이번 글에서는 개념부터 실전 활용까지, 더 이상 헷갈리지 않도록 정리해보겠습니다.1. 한눈에 보는 핵심 차이구분VODTOEntity한 줄 요약값 그 자체데이터 택배 상자DB 테이블의 Java 버전목적값 표현계층 간 데이터 전달DB 테이블 매핑동등성값으로 비교보통 비교 안 함ID로 비교불변성불변가변가변비즈니스 로직가질 수 있음없음가질 수 있음비유로 이해하기VO: 만원짜리 지폐 (어떤 만원이든 가치는 같음)DTO: 택배 상자 (물건을 A에서 B로 옮기는 역할)Enti.. 2025. 12. 22.
Deprecated: 코드의 정중한 은퇴 통보 Deprecated: 코드의 정중한 은퇴 통보Deprecated란?소프트웨어 개발을 하다 보면 @Deprecated 어노테이션이나 관련 경고를 자주 마주치게 됩니다. Deprecated는 "더 이상 권장되지 않음"을 의미하는 표시로, 특정 기능이나 메서드가 곧 사라질 예정임을 개발자들에게 알려주는 신호입니다.왜 바로 삭제하지 않을까?"사용하지 말라면서 왜 남겨두지?"라는 의문이 들 수 있습니다. 그 이유는 하위 호환성(Backward Compatibility) 때문입니다.기존 코드를 사용하는 수많은 프로젝트들이 있는데, 어느 날 갑자기 해당 기능을 삭제하면 모든 프로젝트가 동시에 오류를 일으키게 됩니다. Deprecated는 이러한 충격을 완화하기 위한 유예 기간입니다.실제 사용 예시Java/** * @.. 2025. 11. 12.
JPA @MappedSuperclass 애노테이션 완벽 이해하기 JPA @MappedSuperclass 애노테이션 완벽 이해하기JPA를 사용하다 보면 여러 엔티티에서 공통으로 사용하는 필드들을 발견하게 됩니다. 예를 들어 id, createdAt, updatedAt 같은 필드들은 거의 모든 테이블에 들어가죠. 이런 중복을 효율적으로 해결해주는 것이 바로 @MappedSuperclass 애노테이션입니다.@MappedSuperclass란?@MappedSuperclass는 JPA에서 매핑된 슈퍼클래스를 정의할 때 사용하는 애노테이션입니다. 핵심 특징여러 엔티티에서 공통으로 사용할 필드와 매핑 정보를 정의하는 부모 클래스에 붙입니다자체적으로는 테이블과 매핑되지 않습니다상속받는 자식 엔티티들의 테이블에만 필드가 포함됩니다실제 사용 예시1. 공통 필드를 가진 기본 엔티티 작성@.. 2025. 7. 24.
[@Transactional은 만능이 아니다!] Checked Exception과 @Transactional: 초보 스프링 개발자를 위한 가이드 Checked Exception과 @Transactional: 초보 스프링 개발자를 위한 가이드스프링(Spring) 프레임워크는 개발 생산성을 높이고, 복잡한 트랜잭션 관리 및 예외 처리를 간소화하는 데 강력한 도구를 제공합니다. 하지만 초보 개발자들은 Checked Exception과 트랜잭션 처리에 대해 자주 혼란스러워합니다. Checked Exception은 발생 시 반드시 처리해야 하는 특징을 가지며, 이는 코드의 안정성을 보장하지만 스프링의 기본 트랜잭션 관리 규칙과 충돌할 수 있습니다.이 글에서는 Checked Exception과 @Transactional 어노테이션의 기본 개념을 설명하고, 트랜잭션 관리에서 Checked Exception의 중요성을 실제 애플리케이션 사례를 통해 다룹니다. .. 2025. 1. 23.
MSA(마이크로서비스 아키텍처) vs 모놀리식 아키텍처 비교 MSA vs 모놀리식 아키텍처 비교: 장단점과 적용 사례 소프트웨어 설계에 있어 모놀리식과 마이크로서비스(MSA)의 차이점을 이해하고 적합한 아키텍처를 선택하세요. MSA와 모놀리식 아키텍처란? 아키텍처 설계는 소프트웨어의 성능, 유지보수성, 확장성에 큰 영향을 미칩니다. 모놀리식 아키텍처는 단일 애플리케이션 구조를 의미하며, MSA(마이크로서비스 아키텍처)는 작은 서비스 단위로 나뉘어진 분산 시스템을 말합니다. 위 이미지는 픽사베이에서 제공받았습니다. 픽사베이 1. 아키텍처 구조 모놀리식 아키텍처: 모든 기능이 하나의 코드베이스에서 동작하는 단일 구조. MSA: 각 서비스가 독립적으로 동작하며, REST API 또는 메시지 큐로 통.. 2025. 1. 9.
[Spring; 스프링] 직렬화와 역직렬화: Jackson ObjectMapper와 스프링부트에서의 활용 직렬화와 역직렬화는 데이터 저장 및 전송 시 자주 사용되는 개념입니다. 특히 Java와 같은 언어에서 객체를 효율적으로 다루기 위해 필수적인 기술입니다. 이 글에서는 직렬화와 역직렬화의 기본 개념을 소개하고, ObjectMapper를 활용한 JSON 데이터 변환 예제를 통해 어떻게 활용할 수 있는지 알아보겠습니다. 더 나아가, 스프링부트(Spring Boot) 환경에서 이를 어떻게 활용할 수 있는지 살펴보겠습니다.1. 직렬화(Serialization)와 역직렬화(Deserialization)란?1.1 직렬화(Serialization)직렬화는 객체의 상태를 저장하거나 네트워크로 전송할 수 있는 형식(예: JSON, XML, 바이너리 데이터)으로 변환하는 과정입니다. 이를 통해 메모리에 존재하는 객체를 파일.. 2024. 9. 23.
728x90
728x90