[JPA] ExecutorService를 통한 엔티티가 변경되지 않는 않는 오류
·
스프링 부트/오류
가천대학교 가을 축제 웨이팅 서비스 라인업지를 개발하면서, 우리 서비스는 노쇼 방지를 위해 자동 취소 로직을 구현해야 할 필요가 있었다. 다만 단순한 '자동 취소'를 구현하는 것이 아닌,자동 취소 시 주점의 대기 팀 숫자가 감소해야 함자동 취소는 호출 이후 특정 시점 이후에 동작해야 함자동 취소 시, 사용자한테 알림톡으로 취소되었다고 알려주어야 함이런 정책들을 고려하면서 로직을 구현해야 했고, 이를 위해 ScheduledExecutorService를 도입하였다. ScheduledExcutorServiceScheduledExecutorService는 원하는 작업(메서드)를 특정 시간 이후에 동작하도록 설정할 수 있는 ExecutorService의 일종이다.ScheduledExecutorService는 총 ..
[gradle] 멀티 모듈에서 특정 모듈을 삭제했을 때 빌드가 실패하는 오류
·
스프링 부트/오류
오류 발생최근에 멀티모듈로 이루어진 프로젝트를 혼자서 연습하면서 특정 모듈을 추가했다가 삭제하였다.근데 계속 build.gradle 파일을 수정해도 Gradle 빌드가 실패하는 것이다..🥺그래서 Gradle 빌드를 새로고침 하려고 하면..이렇게 삭제한 모듈에 대한 빌드가 실패하는 모습을 볼 수 있다. Could not set process working directory to '프로젝트 위치': could not setcwd() (errno 2: No such file or directory) 원인 및 해결방법삭제된 모듈에 대한 캐싱 값들이 아직 프로젝트 구성 경로에 남아 있기 때문에 발생하는 것으로 추측된다. 따라서 .gradle, .idea 두 개의 폴더를 지워준 다음, IDE를 재시작하면 해결된다..
스프링 이벤트와 비동기 처리를 통한 알림톡 발송 성능 개선하기
·
스프링 부트/Java
최근에 학교 축제의 주점 입장에 활용되는 원격 웨이팅 서비스를 개발하던 중, 사용자 입장에서 무척 아쉬운 문제를 발견했다. 바로 웨이팅을 신청하는 데 걸리는 시간이 평균적으로 2~3초 정도 걸린다는 것이 그 원인이었다.이를 스프링 이벤트와 비동기 처리를 통해 관심사를 분리시킴으로써 평균적으로 10~30ms 정도 소요되도록 개선하였다. 대략적으로 소요 시간을 약 100배 정도 개선한 것이다! 어떤 부분에서 해당 문제가 대두되었고, 이를 어떻게 해결하였는지 적어보려고 한다. 기존 로직의 문제점기존 로직은 웨이팅 신청, 그리고 알림톡 전송 로직이 강하게(분산 락을 통해) 결합되어 있는 상황이었다. 강하게 결합된 로직들은 단 하나의 로직이 실패하면 트랜잭션 자체가 롤백되어 정합성을 보장한다는 특징을 지닌다. 하..
커스텀 예외 처리를 @RestControllerAdvice를 통해 프런트에게 잘 전달하는 법
·
스프링 부트/Java
서버 로직을 개발하다 보면, 분명히 예외 처리를 해야 하는 순간이 다가오고는 한다.이때 우리는 대부분 커스텀 예외처리를 사용하고는 하는데, 필자가 작성한 코드를 참고하자면 다음과 같다.ServiceException.javaExtendedServiceException.java 근데 왜 굳이 이렇게 귀찮게 별도로 커스텀 예외처리를 우리가 따로 명시해주어야 하는 걸까? 커스텀 예외 처리를 사용하는 이유당연하게도, 스프링 부트는 기본적으로 예외가 발생하는 모든 부분에 대해 기본적인 예외 처리를 지원해 준다.그리고 이런 예외가 발생하면 대부분의 백엔드 개발자들은 디버깅과 구글링을 통해 문제의 원인을 파악하고, 예외 발생 지점을 특정 짔고, 고친다. 우리가 백엔드 개발을 희망하여 혼자 프로젝트를 공부하는 거라면, ..
[일상] 2024년 중간 회고 - 새학기부터 휴학까지
·
회고
매번 블로그 글을 써야지! 생각만 하고 실천으로 옮기지는 못했다..그 사이에 나랑 같이 학교 다니는 친구들은 조금씩이나마 실천하고 있었고, 나는 바쁘다는 핑계로 단 하나의 글도 작성하지 않았다.이제는 더 이상 늦출 수는 없다..라는 생각이 들 무렵,Alumni로 활동하고 있는 GDG on Campus에서 "주삼끄 챌린지"를 할 인원을 마침 모집하고 있었다.주 3회 글쓰기라는 다소 어려워보이는(?) 조건이 마음에 걸렸지만,강제로라도 하지 않으면 절대 블로그 시작조차 못할 거라 생각해 바로 지원하게 되었다 ㅎㅎ..취지는 정말 좋은 것 같다.초~중학생 시절 뭣도 모를 때 막 글을 써본 기억은 어렴풋이 나는데,막상 기술 블로그를 시작하려니 하나부터 열까지 어떤 식으로 작성해야 할지 매 순간이 고민이었다.몇 번의..