막쓰기

    좋은 설계를 위해 생각해보기

    1. dto를 어디까지 사용할 것인가? - service에 dto를 넘겨주는 것이 좋은 방법일까? - dto는 service쪽 패키지에 존재해야할까? controller쪽 패키지에 존재해야할까? 2. enum들은 어느 패키지에 속해 있어야하는걸까? - dto에서 enum을 써도 되는가? - domain에서 enum을 정의해서 사용하는건 어떤가? - domain에서 enum을 정의했을 때, 다른 패키지에서 enum을 사용하는 것은? 1. service쪽에 dto를 넘겨주는 것이 맞는 것 같음. 패키지 의존성을 그려보면 그래야만이 사이클 의존성을 제거할 수 있음 - controller에서 request로 받기만 하고, response로 넘겨주기만 한다면 controller(web)쪽에 있는 것이 좋음. 하지..

    JPA에서 발생하는 예외에 관하여(롤백)

    JPA를 사용하다 보면 NoResultException, NonUniqueResultException, EntityExistsException, OptimisticLockException, RollbackException 등 다양한 예외들이 발생할 수 있다. 이 때 우리는 어떤 자세를 취해야할까? 여러 관점 중 롤백 관점에서 알아보도록 하자. JPA 표준 예외(JPA에서 발생하는)는 모두 언체크드 예외이며, javax.persistence.PersistenceException의 자식 클래스이다. JPA 표준 예외는 '트랜잭션 롤백을 표시하는 예외'와 '트랜잭션 롤백을 표시하지 않는 예외'로 나눌 수 있다. (롤백을 표시한다는 것은 트랜잭션 상태에 롤백을 해야하는지 안해도 되는지 기록을 해놓는 것이다. 커..

    Enum

    enum을 써야하는 이유가 뭐가 있을까? - 클래스의 변수 타입을 enum으로 만들면, 해당 값으로 어떤 값들이 와야하는지 한정할 수 있다. - 컴파일 타임에 오류가 있는지 도움을 받을 수 있다.