항해99에 승선한 5월부터 8월까지. 총 99일 +a간의 여정이 막을 내렸다. 미니 프로젝트부터 알고리즘, 주특기, 실전프로젝트까지 다사다난했던 지난 날들을 회고하며 항해의 끝과 앞으로의 개발자로서의 여정의 첫 문장을 이렇게 시작하고 싶다. 전직 호텔리어가 개발자로 전직하게 된 썰 푼다 호텔리어가 개발자를 한다고? 국내 5성급 호텔에 취업해서 일을 하다가 갑자기 개발자가 되기로 마음을 먹었을 때, 사실 주위의 반대는 없었다. 어렸을 때부터 기계를 다루길 좋아했고, 취미가 여행경비 엑셀에 정리하기였기 때문이다. 코딩을 접하게 된 계기는 사소했다. 떠오르는 IT 시대에 발맞춰 학교에서 코딩 교양을 열어줬고, 흥미가 생겨 수업을 듣게 되었다. 교양에서 사용한 프로그램은 스크래치였는데, 블럭 몇 개 가지고 고양..
항해99
“사회적 교통약자도 편하게 식사하세요” 배슐랭은 사회적 교통 약자가 보다 쉽게 이용할 수 있는 배리어 프리 식당이나 카페 등 가게 정보를 알려주고 사용자 위치 맞춤 추천 서비스를 제공합니다. 사회적 교통 약자분들 위한 음식점 정보와 유저들의 생생한 방문 경험이 담긴 리뷰들로 편하게 방문해보세요! 배슐랭이 사회적 교통약자분들이 편하게 살아갈 수 있도록 한 걸음 나아가겠습니다. 👩🦼 배슐랭 바로가기 Background 배리어 프리 (Barrier-free)는 사회적 약자가 생활하기에 불편함을 주는 물리전, 제도적 장벽을 제거하자는 운동입니다. 생활공간에서 장애인과 비장애인 간의 장벽을 없애자는 움직임이 증가하고 있지만 아직도 사회적 교통약자는 행복을 추구할 기본적인 권리를 보장받지 못하고 있습니다. 배슐랭..
들어가며 프로젝트에 음식점 검색 기능을 구현해야했다. 초반에는 Elasticsearch를 이용해서 구현을 해보려고 목표를 잡아두었었는데, Elasticsearch의 러닝커브가 높고 리소스도 많이 드는 기술이기 때문에 다른 방법을 찾다가 FullText Search에 대해 알게 되었다. 오늘의 TIL은 Elasticsearch에 대해 간단하게 알아보고, MySQL에서 제공하는 FullText Search에 대해 정리하고자 한다. 검색 기능을 구현하기 위한 몇가지 방안 1. 검색 엔진 Elasticsearch Elasticsearch란? Elasticsearch는 루씬(Lucene)을 기반으로 텍스트, 숫자, 위치 기반 정보, 정형 및 비정형 데이터 등 모든 유형의 데이터를 위한 무료 검색 및 분석 엔진이다..
들어가며 지난 번 삽질로그에서 배포 후 cookie를 넘겨주는 문제를 해결했었다. 그런데 이번에는 그렇게 넘겨준 cookie가 삭제되지 않는 문제가 발생했다. 소셜 로그인 시 redirect_uri 등등 잠시 사용할 목적의 쿠키를 저장해두었다가 로그인 완료 후 token 발급 시에 해당 쿠키를 삭제하는 방식으로 구현이 되어있어 최종적으로 refresh_token만 쿠키 안에 담겨있어야하는데 필요없는 쿠키들이 삭제되고있지 않았다. 오늘의 TIL은 이 문제에 대한 트러블 슈팅을 해보고자 한다. 배포 후, cookie가 삭제되지 않는 문제 기존의 cookie 삭제 로직은 다음과 같다 public static void deleteCookie(HttpServletRequest request, HttpServlet..
들어가며 JWT를 구현하고 있는데, 이번에는 에러 처리가 문제이다! 자꾸 토큰이 유효하지 않은데도 권한 에러인 401이 아니라 500 NullPointerException을 던져준다. 원인은 JWT의 플로우를 제대로 이해하지 못하고 있어서였다. 따라서 오늘의 TIL은 이 문제에 대한 트러블슈팅을 하고자 한다. JWT 401에러 보내기 우선 예외가 발생하는 클래스를 디버깅으로 찾아보았다. 원인은 AuthToken 클래스에서 Claim을 가져오는 메소드가 문제였다. 지금까지는 AuthToken 클래스에서 Claim을 가져올 때 예외가 발생하면 try-catch 문으로 예외처리를 해주고 있었다. AuthToken.java public Claims getTokenClaims() { try { return Jwt..
들어가며 Postman은 ui도 깔끔하고, 잘 사용할 줄만 안다면 최강의 시너지를 발휘하는 프로그램이다. 잘 사용하지 못하면 이번처럼 삽질도 하겠지만... 오늘의 TIL은 postman을 사용하면서 새롭게 알게된 postman에서 cookie를 사용하는 방법을 정리한 글을 첨부하는 걸로 간단하게 끝내고자 한다. Postman cookie 설정 [Postman] postman에서 cookie 설정 [Postman] postman에서 cookie 설정 들어가며 소셜로그인을 구현하면서 postman으로는 소셜 로그인창으로는 redirect가 되지 않아 브라우저에서 로그인을 진행하고, refresh token을 쿠키로 받아왔다. 그리고나서 refresh token을 cookie에서 뽑 annajin.tistor..
들어가며 spring security + jwt + OAuth2.0 조합은 정말 쉽지가 않다. 특히 security랑 jwt가 가장 어렵다..!! 오늘의 TIL은 소셜 로그인을 구현하면서 겪었던 트러블 슈팅을 작성해보고자 한다! 트러블 슈팅 문제 - 카카오 로그인에서 이메일이 넘어오지 않는 문제 카카오로 로그인을 시도했을 때, 이메일이 넘어오지 않아 DB에 default 값인 NO_EMAIL이 들어오고 있었다. 디버깅을 돌려보니 kakaoOAuth2UserInfo클래스에서 getEmail() 메소드로 이메일을 불러올 때 이메일을 받아오고 있지 못해서 생기는 문제였는데, 해당 메소드의 코드를 보면 key값이 kakao가 제공하는 response의 key값과 다르다. 문제의 코드 @Override publi..
들어가며 실전프로젝트 4주차도 막을 내렸다. 일주일동안 끝나지 않는 소셜로그인, JWT와의 싸움을 하기도 했고 에러 코드를 만들거나 예외처리, 응답값 통일 등등 여러가지 코드를 작성했다. 프로젝트가 점점 모습을 갖춰 갈 수록 욕심이 생기기도 하고 아쉬운 부분들이 눈에 보이기도 해서 남은 한 주동안 목표한 부분을 빨리 만들고 완성도를 높이는 작업을 하고 싶어진다. 오늘의 WIL은 지난 일주일 동안 작성한 삽질로그와 정리한 내용을 간단하게 되짚어보고, 한 주간의 회고록을 작성하고자 한다. OAuth2.0 [개발지식] OAuth2.0 [개발지식] OAuth2.0 들어가며 소셜 로그인을 구현하면서 OAuth2.0에 대해 공부를 하게 되었다. 사실 각 소셜로그인이 제공하는 API를 호출하기만 하면 간단하게 해결되..
들어가며 실전 프로젝트의 MVP 중간발표까지 끝이 났다. 이제 정말로 최종 발표까지 완성을 향해 달릴 시간이다! 이번 주 WIL은 소소하지만 MVP를 개발하는 3주 동안 무슨 기술을 다뤘는 지 정리해보고자 한다. OAuth2.0를 이용한 소셜 로그인 [개발지식] OAuth2.0 [개발지식] OAuth2.0 들어가며 소셜 로그인을 구현하면서 OAuth2.0에 대해 공부를 하게 되었다. 사실 각 소셜로그인이 제공하는 API를 호출하기만 하면 간단하게 해결되지만 언제나 기초 지식은 중요하기 때문에 따로 annajin.tistory.com 카카오 로그인 DOCS Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 AP..
보호되어 있는 글입니다.
반응형