본문 바로가기

전체 글220

[Main Project] Day 19 + 주말 : 발표 준비 및 배포 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. ✅ Day 19 📎 이모지 삭제 : RDS 설정을 바꾸어보았으나 여전히 이모지 부분이 소셜에서는 저장이 되지 않았다. 그래서 소셜 로그인 시 이모티콘이 들어오면 삭제하는 패턴을 추가해 주었다. 그리고 이름이 없으면 default로 "이름을 입력하세요."라는 이름으로 저장되도록 하였다. 이렇게 되면 카카오 로그인도 잘 들어가지는 것을 확인했다! String name = profile.getKakao_account().getProfile().getNickname(); Pattern emoji = Pattern.compile("[\\uD83C-\\uDBFF\\uDC00-\\uDFFF]+"); Matcher .. 2022. 12. 5.
[Main Project] Day 18 : 카카오 로그인 성공 및 토큰에 레디스 적용해보기 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. 💝 Refresh Token에 Redis 적용해보기 : Redis를 본격적으로 적용시켜보았다. Redis를 적용시키는 데에는 두 가지 방식이 있는데 그 중에서 Redis Template 방식을 이용하여 구현해보았다. 이것은 나중에 깃헙에 정리하면서 다시 할 생각이다. 해당 로그인을 해보았는데 이렇게 아래처럼 잘 저장이 된 걸 볼 수 있었다. 아래처럼 조회를 하면 잘 들어가지는 걸 보았다. 사실 흐름은 MySQL 처음 배울 때처럼 아직 명확하게 이해되지는 않고 그냥 따라한 정도였다. 그래도 생각보다 어렵지 않게 따라해볼 수 있었다. 그래서 조금 더 공부해보려고 한다. 💝 카카오 로그인 성공 : 결국 카카.. 2022. 12. 2.
[Main Project] Day 17 : 카카오 로그인 여전히 안됨, 배포 시도 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. 🥕 카카오 로그인 여전히 안됨 : 어제부터 발생한 카카오 로그인 서버 문제는 여전히 해결이 되지 않았다. 카카오 데브톡에 문의를 넣었더니 server 주소로 redirect_uri를 요청하고 설정했는데, ip 주소로 간다는 것이었다. 그래서 로그로 하나씩 찍어보니, 서버에서 하면 yml 파일에서 불러온 후 ip 주소로 변환되어 찍히는 것이다. 해당 이유는 사실 알아내지 못했다. 그래서 yml 파일에서 받지 않고, 직접적으로 주입하였다. 이게 해결이 되니 다음은 sql 문제가 생성되었다. genericjdbcexception: could not execute statement 에러가 계속해서 발생되었다... 2022. 12. 1.
[Main Project] Day 16 : 카카오 로그인 서버 문제 및 회원 가입 이메일 발송 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. 📌 회원 가입 시 환영 메일 발송 : 회원 가입에 성공하면, 환영 메일을 발송하는 로직을 추가로 구현하였다. google smtp를 이용하여 구현하였다. 또한 이 메일 발송을 위해 동기 비동기에 대해 알아보았다. 사실 정확히 모두 다 이해하지는 못해서 이것도 추가로 계속 공부하는 게 좋을 것 같다. 이메일 발송이 동기로 설정되면 회원가입후 자동로그인까지 약 3~5초정도의 시간이 걸렸다. 비동기로 하면 확실히 시간이 단축되는 것을 눈으로 충분히 확인할 수 있었다. 회원가입이 성공적으로 이루어진다면 아래처럼 메일이 발송된다. yml 파일에 들어가는 정보들을 다 이해하지 못해서 이 부분을 추가로 공부해야할 .. 2022. 11. 29.
[Main Project] Day 15 + 주말 : 배포 시도 및 권한 부여 확인, 코드 리팩터링 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. ✅ 주말 📌 프론트 엔드와 통신 테스트 : 본격적으로 통신 테스트를 시작했다. 하지만... 시작부터 안되었다.. 회원 수정이 되지 않았다... 약 몇시간 동안 계속 해당 문제를 해결해보려고 시도해보았다. 아래의 코드로 컨트롤러 메서드의 매핑을 수정해보았으나 해당 문제도 해결이 되지 않았다. @RequestMapping(method = {RequestMethod.OPTIONS, RequsetMethod.PATCH}, value = "/{seller_id}") 계속해서 문제가 해결 안되니 내 코드의 문제인가 싶어 혼자서 굉장히 심각했다. 포스트맨으로는 잘 작동이 되는데, 프런트의 화면에서만 수정이 안된 것.. 2022. 11. 28.
[Main Project] Day 13 & 14 : 로그인 필터 구현 및 코드 리팩터링 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. ✅ Day 13 📌 로그인 필터로 구현하기 : 현재 메인 프로젝트에 구현되어있는 로그인은 필터가 아닌 MVC이다. 직접 내가 컨트롤러에서 서비스로 보내어 프로바이더에서 토큰을 생성한 후 응답해주는 방식이다. 내가 이렇게 구현한 것은 필터로 소셜로그인을 하지 못했기 때문이다. 그래서 일일이 컨트롤러와 서비스를 써서 작업을 하였다. 하지만 저번 멘토링 시간에 멘토님이 필터를 쓰는게 더 좋은 코드일 것이라고 조언을 해주셔서 필터를 놓치 않으려고 했다. 그래서 하나의 파일을 새로 생성하여 필터를 따로 작업해보고 있다. 우선 지금은 저번에 했던 기본적인 JWT 필터 구현까지는 완료한 상태이다. 이렇게 다시 구현.. 2022. 11. 26.
[Main Project] Day 12 : 카카오 API를 이용하여 결제 구현 및 토큰 재발급 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. 👩🏻‍🌾 어제의 에러 해결 💡어제 안되었던 부분의 원인(참조 : https://bhinney.tistory.com/142) : 어제 계속해서 Body가 생성되지 않는 다는 에러를 만났다. 해당 부분의 에러를 확인하던 도중 이유를 알게 되었다. 아래의 사진을 보면 Authorization에서 어드민 키 앞에 "KakaoAK "가 붙는 것을 알 수 있다. 이게 내가 문제가 발생했던 이유였다. 나는 헤더에 그냥 어드민 키를 입력하였기 때문에 바디가 생성되지 않았던 것이다. 어드민 키 앞에 "KakaoAK "를 붙여주니 바디가 아주 잘 생성되었다..🥲 👩🏻‍🌾 카카오 API를 이용하여 결제 구현 : 카카오 A.. 2022. 11. 24.
[Main Project] Day 11 : 소셜 로그인 구현 및 결제 시도와 API 정하기 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. 📌 소셜 로그인 구현 🚨 문제의 발생 : Spring Security의 FilterChain으로 구현한 oauthLogin에서 아래 주석처리한 부분인 .userInfoEndpoint()가 계속 빨간 에러가 떴다. 해당 부분을 주석처리하고 작업을 진행했다. 하지만 계속해서 controller로 접근이 안되고, 리다이렉트로 넘어가 로그인을 성공해도 DB에는 저장이 되지 않았다. 그래서 필터가 아닌 Controller에서 일일이 써서 작업을 시도해보았다. @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { htt.. 2022. 11. 23.
[Main Project] Day 10 + 주말 : 자체로그인 배포 및 로그인 수정 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. ✅ 주말동안 한 작업 📌 자체 로그인 및 회원가입 배포 시도 로그인과 회원가입을 배포를 시도하였다. 프론트 로컬 - 백엔드 서버 연결을 시도하였다. 처음에 계속 bad request 가 났는데 이유는 "Authorization"에 "Bearer "가 두번 들어간 것. 백에서 프론트로 줄 때, "Bearer "를 빼고 주는 것으로 수정하였다. 다행히 로컬 - 서버는 큰 Cors 없이 성공하였다. ✅ 오늘 한 작업 📌 로그인 응답 바디 수정 문제 : 회원이 판매자와 소비자로 나뉘어져 있다. 때문에 판매자 아이디와 소비자 아이디가 응답바디에 필요하다. 수정 : response dto를 seller와 clie.. 2022. 11. 22.
[Main Project] Day 9 : 로그인 수정하기 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. 📌 Login 시 Authority 적용 https://bhinney.tistory.com/138 위의 블로그를 보면 hasRole()이 되지 않았던 문제가 있던 걸 알 수 있다. 코드를 하나씩 뜯어가면서 다시 보았더니 권한은 주었으나 GrantedAuthority로 권한을 주지 않았던 것이다. 그래서 Provider의 내용을 아래 코드처럼 수정해주었고, Claim으로 받았던 부분들을 모두 Map으로 수정해주었다. 그랬더니 작동이 되었다...!!!!!!! Config 파일도 아래처럼 코드를 수정해서 확인해보았더니 아래 사진처럼 잘 되었다.! /* Security Config.java */ @Bean p.. 2022. 11. 19.
[Main Project] Day 8 : 소셜 로그인 구현 및 자체 로그인 공통 클래스 정리 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. 📌 소셜 로그인 구현 카카오 소셜 로그인 구현에 성공하였다. 해당 사진을 캡쳐하지 못해서 내일 다시 캡쳐해보려고 한다. 카카오 API : https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api 위의 API를 이용하였으며, redirect를 보았다. 📌 공통 클래스 정리 이제 본격적으로 소셜과 자체 로그인을 합치려고 한다. 따라서 공통으로 쓸 수 있는 클래스들을 정리하여 하나의 클래스로 합치는 작업을 하였다. TokenProvider와 Controller, Service 세 가지는 합치는 것에 성공했다. 이제 해당 클래스들을 적절히 수정해야겠지!.. 2022. 11. 17.
[Main Project] Day 6 & 7 : JWT Provider를 이용한 로그인 구현 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. 전날 분량이 너무 적어 같이 쓰게 되었습니다. ✅ Day 6 📌 JWT Provider를 이용한 로그인 구현 프리 때 구현하였던 JWT Tokenizer 가 아닌 Provider로 구현을 하였다. 한 깃헙을 참조하여, Controller 부터 Service까지 직접 만들어서 구현해보았다. 이번 메인 프로젝트가 끝나면 해당 정보들을 정리해서 깃헙과 블로그에 올릴 생각이다. 프리 때 해당 토큰이 잘 오가지 않았던 적이 있어서 바디로도 헤더로도 둘 다 출력 할 수 있게 우선 설계하였다. 참고한 깃헙 주소 : https://github.com/ParkJiwoon/practice-codes/tree/master.. 2022. 11. 16.