본문 바로가기

해피 코딩65

[TIL 20] Redis를 사용하여 로그아웃 블랙리스트 처리하기 Today I Learned로그아웃 구현을 시작하기 전에는 단순히 Redis Cache에 있는 사용자의 정보를 삭제하고, 로그인 시 다시 캐싱해 주면 되겠지? 라고 생각했었지만 막상 구현을 시작하니 내 생각과는 많이 달랐다. 왜냐하면 로그아웃 시 정보를 삭제하는 것이 아닌 블랙리스트 처리를 해줘야 한다는 것을 처음 알게 되었기 때문이다.🤔 그렇다면 왜 로그아웃 시 토큰을 블랙리스트로 처리하는 걸까?💁 사용자가 로그아웃했음에도 불구하고 JWT는 여전히 유효하기 때문에 블랙리스트 저장소를 만들어서 관리해야 한다.목표🔥 로그아웃 시 Cache Blacklist 처리하기build.gradle//Redisimplementation 'org.springframework.boot:spring-boot-start.. 2024. 9. 3.
[TIL 19] Ai가 대세! Gemini API 사용하기 Today I Learned요즘은  Ai가 대세라고 한다. 현재 진행 중인 팀 프로젝트에 Google Gemini API를 사용하여 제품의 설명을 추천받고 RestTemplate을 사용하여 요청에 대한 응답을 DB에 저장하도록 하자!!목표🔥Gemini를 사용하여 제품의 설명글 추천받기, 응답내용 DB에 저장하기[ Gemini 설정 ]API 키를 발급https://aistudio.google.com/ 에 들아가서 API 키를 발급 받습니다.application.yml RequestDto@NoArgsConstructor@Setter@Getterpublic class GeminiRequest { private List contents; @Getter @NoArgsConstructor @AllArgsC.. 2024. 9. 1.
[TIL 18] 프로젝트에 Swagger 적용하기 Today I LearnedTIL 17을 보면 개발 후 API 명세서를 직접 작성해서 수정해 줬는데, 아침 스크럼 시간에 팀원들과 소통을 하던 중 팀원 분께서 내가 직접 작성한 API 명세서를 보더니.. API 명세서를 자동으로 생성해 주는 Swagger에 대해서 알려주었다. 이런 꿀팁을 알았더라면 처음부터 적용할걸..ㅠ 그래서 오늘은 Swagger에 대해서 알아보도록 하겠다!!목표🔥 팀 프로젝트에 Swagger를 적용하여 API 명세서 작성을 자동화 해보자!! Swag ~ 😎build.gradle//swaggerimplementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'application.ymlspringdoc: api-doc.. 2024. 9. 1.
[TIL 17] 프로젝트 중간 회고 Today I Learned개발 전 API 명세서개발 후 API 명세서회고이번 프로젝트에서는 유저 도메인을 맡게 되었다. 현재 개발을 시작한 지는 3일 정도 지났고, 이번 주 월요일에는 Jwt를 사용하여 로그인을 하기 위해 만든 Spring Security Filter에서 문제가 발생하여 팀원분의 도움을 받아 Security 부분을 문제없이 동작하도록 완성하였고, 본격적인 유저 도메인 개발은 화요일부터 수요일까지 이틀 동안 개발을 하여 오늘(수요일) 완성하였다.아쉬운 점은 아직 Redis를 사용하여 회원 기능을 빠르게 체크하는 기능인 "로그아웃" , "회원 아이디 삭제  ", "권한 변경 승인 및 거절"을 구현하지 못하였지만, 이 기능들은 Redis를 사용하기 때문에 필수 과제가 아닌 추가 도전과제로 분.. 2024. 8. 29.
[TIL 16] 스파르타 첫 번째 팀 프로젝트 시작 Today I Learned 회고스파르타에서의 첫 번째 팀 프로젝트가 시작되었다. 스파르타는 chapter 1 ~ chapter 5 까지 존재하는데 각각의 chapter 마다 팀이 바뀌게 된다. 이론을 공부하는 chapter 1 에 이어서, 첫 번째 팀 프로젝트인 chapter 3 에서도 한 번 더 팀장을 맡게 되었다.chapter 1 에서도 팀장을 맡아봤지만, 그럼에도 팀장이라는 무게에 어깨가 조금 무겁게 느껴지기도 하는 것 같다. 아마도 팀장이라는 책임감 때문이겠지.. 하지만!! 내 스스로가 성장하기 위해서는 꼭 필요한 과정이라고 생각한다. 그러니 스스로를 믿고 chapter3의 프로젝트가 끝났을 때 후회가 남지 않을 만큼 최선을 다하고 싶다. 2주라는 시간 동안 집중하고 몰입해서 스스로를 성장시킬 .. 2024. 8. 23.
[TIL 15] DB Lock의 종류와 문제 사례 Today I Learned🔥 DB Lock 이란 무엇인지, Lock의 종류, Lock의 종류에 따른 상황과 예시를 알아보자!![ DB Lock ]데이터베이스에서 여러 트랜잭션이 동시에 같은 데이터에 접근할 때, 데이터의 무결성(일관성)을 보장하기 위해 사용되는 메커니즘입니다.ex) 한 트랜잭션이 특정 데이터에 대해 작업을 하고 있을 때, 다른 트랜잭션이 그 데이터에 접근하지 못하도록 잠그는 것입니다.데이터의 일관성을 유지하고, 동시에 발생할 수 있는 충돌을 방지할 수 있습니다.[ DB Lock의 필요성과 문제 사례 ]데이터베이스는 여러 사용자나 시스템이 동시에 데이터를 읽고 쓰는 환경에서 운영됩니다. 이런 환경에서 문제가 발생할 수 있는 대표적인 사례는 다음과 같습니다Dirty Read한 트랜잭션이 .. 2024. 8. 22.