Backend/Spring
[Spring] 좋아요 기능에 대한 동시성 문제
[Spring] 좋아요 기능에 대한 동시성 문제
2025.08.03현재 진행하는 프로젝트에서 뉴스피드의 좋아요 기능에 대한 동시성 문제 해결 과정을 공유하고자 한다. 현재 프로젝트의 좋아요 기능현재 프로젝트의 좋아요 기능은 여타의 서비스들의 좋아요 기능(유튜브, 인스타그램 등)과 유사하다. 여기서 유사하다는 의미는, 좋아요 버튼을 토글 방식(한 버튼을 통해 좋아요와 좋아요 취소를 하는 것)으로 구현한 점이 비슷하다는 것을 의미한다.즉, 좋아요를 안한 상태에서는 좋아요 버튼으로 활성화되고 좋아요를 한 상태에서는 좋아요 취소 버튼으로 활성화되는 것이다. 이렇게 구현하다보니 작은 이슈들이 생겼는데, 이제부터 그 내용을 얘기하고자 한다.(물론 이 방식이 아니라 다른 방식으로 구현해도 생길 수 있는 이슈들이다) 좋아요 중복 클릭 문제(feat. 좋아요 레코드 중복 삽입)흔히 따..
[Spring] Spring REST Docs 도입기
[Spring] Spring REST Docs 도입기
2023.05.10Spring REST Docs 도입프로젝트를 수행하던 중, 개발 중에 기획이 여러 번 바뀌고 이에 따라 오고 가는 자원의 형태도 달라져 API 문서를 수정하는 일이 자주 생겼다. 하지만 잘못하여 실수로 적는 일도 생기고, 매번 API가 변경될 때마다 문서까지 수정하여 전달하기엔 시간 소모가 많았다. 때문에 Spring REST Docs를 통해 컨트롤러 테스트와 동시에 문서 작성을 자동화시켜 바로 전달할 수 있는 환경을 갖출 수 있어 도입하게 되었다. 현재 Spring REST Docs는 Java 17이상, Spring Framework 6 이상의 환경을 요구한다. build 구성Spring REST Docs를 사용하기 위해 다음과 같이 빌드를 작성한다. (Gradle 환경)plugins { id "or..