최근 게시물
-
Project
[트러블 슈팅] 인증/인가 캐싱처리로 DB접근 줄이기
안녕하세요 왕라니입니다! 오늘은 어린이날이라 월요일인데 즐거운 휴무입니다! 몸 컨디션도 좋지않고 날도 흐린 휴일인데 집에서 개발하면서 스트레스를 풀기 좋은날인것 같습니다..🤣 토요일부터 집에서 유튜브보면서 개발만 하고있는데 생업과 취미가 같은건 좋은일인것 같습니다. 아무튼 각설하고 오늘 해보려고 하는건 Spring Security 를 사용하여 인증/인가를 진행하고 있는 프로젝트의 UserDetails 의 정보를 캐싱처리하여 DB에 접근하는 횟수를 줄이는것을 목표로 하는 것입니다.(일단 배포하는 서버가 아니기에 Hibernate 통계를 보는 내용도 추가하여 개선이 되는지도 확인을 해보았습니다!) 문제인식지난 포스팅에서 API 요청을 보내는데 한번에 세개의 쿼리를 보내는 재밌는(?) 현상이 발견되었습니다..
-
Project
Join Fetch 를 사용하여 N+1 문제 해결하기
안녕하세요. 낮에 포스팅을 하나 했는데 프로젝트 둘러보다가 운이 좋게도(?) N+1 문제를 발견하여 해결하는 간단한 과정을 보여드리고자 작성을 시작합니다. N+1 문제에 대한 자세한 내용은 따로 포스팅으로 작성해놓았으니 읽어주시면 감사하겠습니다. 사실 제가 프로젝트 시작부터 코드를 제대로 작성하지 않아서 발생한 게 큰 부분이지만, "읽어주시는 분들에게 정보제공을 위해 일부러 이상하게 작성했다"라고 믿어주시고 봐주셨으면 좋겠습니다! 😅 현재 상황필터를 통해 로그인 된 유저가 요청을 보내면 위 사진과 같이 게시글이 리스트로 반환되고 있습니다. ...그런데 서버 측에서 로그를 보니 다음 사진과 같이 쿼리가 나가고 있더라고요..😂 Hibernate가 세개...? 보여드리기 부끄럽긴 한데 그래도 어쩔 ..
-
Project
현재 프로젝트에 CI 파이프라인 적용하기!
안녕하세요 왕란입니다. 오늘도 개발하기 좋은 흐린 주말이군요!! 이번엔 프로젝트에 간단한 CI 파이프라인을 적용하는 방법에 대한 포스팅을 하려고 합니다.(사실 혼자 개발하는 작은 프로젝트에 필요할까 싶기도 하지만, 테스트코드도 많이 작성하면서 좀 완벽한 프로젝트를 지향하고 있어서 하는 거예요!) 보통 빌드, 테스트 및 배포 자동화 파이프라인을 구축하기 위해 CI/CD를 함께하는 경우가 많습니다. 하지만 저는 지금은 배포까지의 과정은 필요하지 않기 때문에 CI 파이프라인만 구축할 예정입니다. CI 란 뭘까?CI(Continuous Integration, 지속적 통합)란 개발자들이 작업한 코드를 자주, 그리고 반복적으로 중앙 저장소(main)에 통합(merge) 하고, 그 과정에서 자동으로 빌드(build)..
-
Utils
Postman 헤더에 Authorization 설정
안녕하세요. 개발자 왕란입니다!! 오늘은 프로젝트 작성 중 발생한 자잘한 이슈와 그 해결방법에 대해 포스팅하려고 합니다. 주제는 Postman 툴에서 API 요청을 보낼 때, Request Header의 Authorization 부분에서 토큰을 설정하고 가져오는 것입니다. 1. 현재 요구사항현재 개발 중인 프로젝트의 요구사항에서, 로그인 시 Response Header의 `Authorization` key에 Bearer 토큰 Value를 넣도록 설정했습니다. 이 토큰을 활용하여 로그인 후 사용하는 회원정보 조회, 회원정보 수정, 회원 탈퇴 등의 API의 동작전 필터에서 "유효한 JWT 토큰을 가지고 있는가? " 를 검증하고 있습니다. 현재 상태를 보겠습니다! 로그인 요청을 보내면 Headers 탭에 ..