본문 바로가기

전체글61

소셜 로그인 접속 토큰 발급 500, 401, 400status 해결법: 카카오편? DDD 프로젝트에 참여하며 로그인 api 구현 중, 접속토큰 발급 로직에서 예외가 지속해서 발생했었습니다. 게시글에서는 그 문제를 어떻게 해결했는가를 설명합니다. 소셜로그인 흐름 프로젝트에서 소셜로그인 과정은 3가지로 이루어져 있습니다. 소셜로그인 서버(카카오, 네이버, 구글 등)로 인가코드 요청을 보내어 인가코드를 받아오는 과정 -> 프론트엔드에서 수행 받아온 인가코드를 백엔드와 협의한 api로 전달 ( ex) /login ) 백엔드 서버 내부에서 발급한 jwt 토큰 반환 ( 이때 회원가입이 되어있지 않은 요청일 경우, 회원가입 로직을 진행한 후에 로그인 시도, 아니라면 로그인 진행) 예외 발생 지점 외부에서는 500에러, 서버 내부에서는 400, 401 status는 상단의 과정 중에 3번에서 발생하.. 2024. 2. 19.
환경변수 @ConfigurationProperties로 간단히 관리하기 (with Kotlin) 환경 변수를 효율적으로 관리하는 것은 모든 스프링 부트 애플리케이션에서 중요한 부분입니다. 저는 이부분에서 @Value 어노테이션을 사용해서 환경변수를 매핑해서 변수로 사용하곤 했었는데요. 하지만 지금은 @ConfigurationProperties를 써서 환경변수 추가/수정/제거 등 관리하고 있습니다. 이 글에서는 @ConfigurationProperties가 @Value보다 왜 더 효율적인지를 알아보겠습니다. @Value @Value 어노테이션은 환경 변수를 주입하기에 아주 간단한 방법입니다. 하지만 매번 하드코딩으로 환경 변수의 주소를 작성해야하고, 해당 변수를 사용하는 여러 곳에 중복 코드가 발생하게 됩니다. 또, 이러한 프로퍼티가 많아질수록 관리가 어려워집니다. // jwtProvider @Com.. 2024. 1. 30.
스프링에서 gpt api 사용해보기 프로젝트에서 ai 활용을 하는 기능을 개발하게 되었습니다. 따라서 gpt api를 활용하기 전 먼저 api가 어떻게 되어있는지 테스트를 진행해보았습니다. 스프링에서 지원하는 spring ai api가 있긴했지만 사용하기가 어려워서 직접 http를 전송하는 것으로 시도해보았습니다. 사용법은 비교적 간단했습니다. openai 서버 endpoint에 개인별 api-key를 헤더에 추가하여 인증을 하고, 모델을 정해서 메세지를 보내기만 하면 됩니다. Gpt 모델에 메세지는 다음 2가지의 형식으로 보내게 됩니다. # 단순 메세지만 전송 curl https://api.openai.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authoriz.. 2024. 1. 16.
스프링에서 실시간 에러 로그를 Discord로 받는 방법 https://suho0303.tistory.com/58 스프링부트에서 실시간 에러 로그를 Slack으로 받는 방법 플랫폼을 운영하면서 실시간으로 발생하는 에러를 빠르게 캐치하고 대응하려면 개발자에게 빠르게 그 사실을 알려야합니다. 그래서 일반적으로 슬랙이나 디스코드와 같은 플랫폼으로 알림을 suho0303.tistory.com 지난 게시물에 이어 Discord로 예외를 감지하는 방법도 한번 공부해보았습니다. Slack과 달리 Discord는 API가 없어서 직접 원하는 채널로 http 요청을 날려야 알림을 받을 수 있습니다. Discord 웹훅봇 생성 먼저 Discord 채널에 웹훅봇을 추가해야합니다. 그다음 웹훅봇이 활동할 채널을 선택하고 http 요청을 보낼 웹후크URL 을 가져옵니다. Discor.. 2023. 12. 10.
반응형