본문 바로가기

java3

[Java / SpringBoot] Exception Class 설계 및 Exception Handler 적용해보기 0. 들어가며 이번 포스팅에서는 최근 경험했던 Spring Boot 에서의 Exception Class 설계와 Exception handling 에 대해 다뤄보고자 합니다. 처음에 Exception Class 를 만들어야 한다는 요구사항을 받았을 때 단순히 개발이 어렵기보다는 어떤 식으로 설계해야 좋은 어플리케이션이 될 수 있을지 고민을 많이 했었는데요, 그 문제해결의 과정을 공유드리도록 하겠습니다. 1. Exception Class 를 사용하는 이유 1-1. 표준 예외를 사용하라 Exception Class 를 정의해야 한다는 이야기를 듣고 가장 먼저 찾아본 자료는 Effective Java 였습니다. 사전에 정의되어 있는 예외를 사용하는 것이 아니라, 직접 예외 클래스를 정의해야하는 상황에서는 무엇을.. 2022. 12. 11.
[JPA / Hibernate] 복합키(Composite Key)를 갖는 객체(Entity) 간의 연관관계 매핑 보통의 JPA 예제에서는 단일 컬럼을 PK로 갖는 엔티티 간의 연관관계 매핑을 주로 다룹니다. 그러나 실제로 Legacy System을 JPA 기반의 어플리케이션으로 개발하다보면 기존의 데이터 모델이 복합키를 갖고, 식별관계로 매핑된 경우를 경우를 쉽게 볼 수 있습니다. 이번 글을 통해 이런 경우 어떻게 JPA를 활용할 수 있는지 다뤄보고자 합니다. 목차 기본적인 1:N 연관관계 매핑 @IdClass를 통한 복합키(Composite Key) 설정 DB에서 식별관계를 갖는 객체의 연관관계 매핑 요약 기본적인 1:N 연관관계 매핑 아래의 이미지는 이번 포스팅에서 예시를 들기 위해 설계한 1:N 관계의 엔티티 입니다. 회원을 의미하는 Member 와 회원별 주문내역을 다루는 MemberOrderHistory .. 2022. 12. 7.
[JAVA] Atomic 변수와 동시성 제어 (AtomicInteger, AtomicLong, AtomicBoolean, AtomicReference) 얼마 전 코드에서 AtomicInteger 타입으로 선언된 변수를 발견했고, 관련 내용들을 찾아보게 되었다. 이번 글에서는 synchronized에 비해 적은 비용으로 동시성을 제어할 수 있는 Atomic 변수의 특성에 대해 알아보고자 한다. 목차 Atomic 변수란? Java에서 동시성을 제어하기 위한 세 가지 방법 Atomic 변수의 장점 : Compare-and-swap(CAS) Atomic 변수의 주요 메서드와 사용예시 Atomic 변수란? Atomic 변수는 멀티쓰레드 환경에서 동시성을 보장해준다. 흔하게 사용되는 Atomic 변수 클래스로는 AtomicInteger, AtomicLong, AtomicBoolean, AtomicReference 등이 있고, 이들은 atomic하게(동시성을 보장받.. 2022. 9. 19.
반응형