목록2024/02 (16)
Skipalong's tistory
이번 프로젝트 마무리 단계에서 마지막으로 자주 사용되는 데이터를 불러오는 작업을 효율적으로 하기 위해 Cache를 사용하기로 했다. 캐시를 적용한 내용을 정리하기 전에 우선 캐싱 전략에 대해 정리해보겠다. 우선 캐싱 전략에는 크게 로컬캐싱과 글로벌 캐싱이 있다. - 로컬 캐싱은 서버 내부 저장소에 캐시 데이터를 저장하는 것이다. 따라서, 속도는 빠르지만 서버 간의 데이터 공유가 안된다는 단점이 있다. 예를 들어, 사용자가 같은 리소스에 대한 요청을 반복해서 보내더라도 A 서버에서는 이전 데이터를, B 서버에서는 최신 데이터를 반환하여 각 캐시가 서로 다른 상태를 가질 수도 있다. 즉, 일관성 문제가 발생할 수 있다는 것이다. - 글로벌 캐싱은 서버 내부 저장소가 아닌 별도의 캐시 서버를 두어 각 서버에서..
오늘은 기술면접 대비로 간단하게 정리해본 Token들을 적어보겠다. JWT는 JsonWebToken으로 데이터를 안전하게 전송하고 인증을 확인하는 데 사용되며, JWT는 토큰 자체에 정보를 포함하므로, 별도의 서버 저장소에 상태를 저장할 필요가 없다. Access Token은 API에 접근하는 데 필요한 토큰이며, 주로 OAuth 2.0 및 OpenID Connect와 같은 인증 및 권한 부여 프로토콜에서 사용된다. 보안상의 이유로 짧은 만료시간을 가지고 있다. Refresh Token은 Access Token을 갱신하기 위한 특별한 토큰이다.주로 OAuth 2.0 인증 서버와 함께 사용되며, Access Token이 만료되었을 때 Refresh Token을 사용하여 새로운 Access Token을 얻을..
우리 팀에서 성능,부하테스트와 동시성 문제를 해결하기 위해 테스트 툴을 도입하기로 결정했는데 대표적인 JMeter와 nGrinder를 비교하여 기술적 의사결정을 하기로 했다. JMeter 도입 배경 : 동시성문제가 의심되는 좋아요 기능에대한 테스트를 위해 테스트 툴 필요성 느낌, 추후에 성능테스트를 위해서도 도입하면 좋을것같다는 의견 후보 : JMeter 와 nGrinder 중 하나를 선택하기로 결정 JMeter 다양한 플러그인을 지원해 테스트결과를 원하는 형식으로 확인 가능 활발한 커뮤니티 지원을 받고 있음, 문제 해결이나 새로운 기능에 대한 정보를 얻기 쉽다. nGrinder 네이버에서 만든 툴로 한글지원이 된다. 대시보드를 통해 사용자는 테스트 중인 애플리케이션의 성능을 실시간으로 모니터링하고, 테..
오늘은 본격적으로 테스트코드를 작성했다. 컨트롤러에서 api 에 대한 테스트코드를 작성한 후 이렇게 마지막에 .andDo(document("식별자", preprocessRequest(prettyPring()), preprocessResponse(prettyPrint()))); 이렇게 적어주면 이렇게 프로젝트내에 index.adoc 파일이 생기고 이 파일을 편집하면 오른쪽과같이 문서형식으로 api테스트사항을 문서화해준다. 그리고 html파일을 만들어서 이렇게 브라우저를 통해 볼 수도 있다. 테스트코드를 작성 하는과정이 지루하고 하드코딩적인부분이 있지만 이렇게 문서가 하나하나 추가되는 것을 보니 조금은 성취감이 생겨 동기부여가 되는 것 같다. 테스트코드를 내일까지 작성한 후 금요일부터 유저테스트에서 온 피드..