전체 글
이것이 취업을 위한 백엔드 개발이다 with 자바
개요 - 제목: 이것이 백엔드 개발이다 - 내용: 백엔드 개발의 전반적인 기본지식을 알려주는 도서 - 출판사: 한빛미디어 - 저자: 이준형 - 별점: ★★★★☆ - 한줄평: 백엔드 개발자를 준비하는 이들에게 적극 추천! 목차 - PART 01 백엔드 개발자 취업, 무엇을 어떻게 준비할까? - PART 02 백엔드 개발을 위한 필수 기본 지식 - PART 03 과제 테스트를 위한 백엔드 애플리케이션 개발하기 - PART 04 실전 과제 테스트 문제 자료 - github: https://github.com/lleellee0/java-for-backend - youtube: https://www.youtube.com/playlist?list=PLVsNizTWUw7FBMFX9pezh5Gxg5AtNmoMv 리뷰 ..
CORS preflight와 인증 필터 오류
cors 개념은 인파님 블로그를 참고하자. 프론트와 api 연동 중 cors 에러가 발생했다. 어라라? 이전에는 잘 작동했는데.. 갑자기? A api는 되고, B api는 안되고.. 내가 알고있던 지식으로는 전혀 이해가 가지 않았다. 분명히 webConfig에서 해당 프론트 도메인에 관한 origin은 열어주었는데 말이다. 로그와 개발자 도구를 확인해보았다. 알아보니 preflight 요청이 정상적으로 응답되지 않아 발생한 문제였다. 인증이 필요한 api에서 preflight 요청이 왔는데 해당 preflight에 인증 헤더가 없어서 401에러가 발생하였고, preflight 요청이 정상적으로 돌아오지 않자 이후 실제 api요청은 보내지 않은채 cors 에러가 발생한 것이다! preflight는 opti..
데드락 이슈(외래키 s-lock)
hyper-link(통합플랫폼)의 테이블 구조는 member와 content의 다대다 관계를 막고자 중간에 member_content테이블을 두었다. 그래서 좋아요 클릭시 member_content의 컬럼이 insert되고, content테이블의 like_count컬럼 값이 증가한다. 이를 바탕으로 좋아요 API는 memberContent 저장 후, content테이블의 like_count를 증가하는 로직으로 구현하였다. 구현 후에, 동시성 테스트를 진행하는데, 데드락이 발생했다. 찾아보니 외래키가 존재하는 자식 테이블의 insert, update, delete시 부모테이블의 존재를 확인하기 위해 해당 컬럼에 s-lock을 건다고 한다. 따라서 아래와 같은 상황이 발생한 것으로 예상된다. 각 스레드가 서..