티켓 예매 테스트 코드를 작성하던 중 save() 메서드에서 StaleObjectStateException 에러가 발생했다. Row was updated or deleted by another transaction ( or unsaved-value mapping was incorret )다른 트랜잭션에 의해서 레코드(Row)가 변경됐다고? 난 분명 다른 트랜잭션을 Test 코드에 넣지 않았는데..?그럼 unsaved-value mapping? 이건 무슨 말일까 hibernate 공식 문서를 참고해봤다. 공식 문서https://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/mapping.html 정리하면 detached 상태와 구분하기 위해 unsav..
채팅 기능 생성 API 요청 중 문제가 발생했다.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation] 분명 DB에는 잘 들어갔는데 뭐가 문제일까? DB 저장까진 문제가 없다는 말은 response를 반환하는 과정에서 문제가 발생했다고 생각했다. No acceptable representation 표현을 받아들일 수 없다는 말인데 response에 해당하는 것은 DTO이기에DTO에서 문제가 발생한 것이라 생각했다. 그리고, ResponseDTO에 @Getter를 뺴놓은 것을 확인했다. 이를 추가하여 문제를 해결했다. ..
핵심 용어타겟 오브젝트(Target Object)- 실제 비즈니스 로직을 수행하는 객체 ex 스프링에서의 UserService, BoardService와 같은 객체 어드바이스(Advice)- 타겟 오브젝트의 특정 메서드가 실행될 때 그 앞이나 뒤 혹은 실행 중간에 추가로 수행될 동작을 담은 객체 포인트컷(PointCut)- 어드바이스가 적용될 지점을 정의하는 표현식으로 메서드 선정 알고리즘을 담은 객체 공통 관심 사항(Cross-cutting-concerns)- 특정 모듈에 국한되지 않은, 여러 모듈이나 계층에 걸쳐 시스템 전반에 공통적으로 나타나는 기능이나 로직ex 로깅(Logging), 보안(Security), 트랜잭션 관리(Transaction Management), 예외 처리(Exception ..