본문 바로가기

Study in Bootcamp88

[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.
[Main Project] Day 5 + 주말 : 회원 관련 CRUD 구현, Rest Docs 시도... 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. ✅ 주말동안 한 일 📌 연관 관계 매핑 이번에는 많은 테이블이 연관이 되어있다. 그래서 해당 클래스들 중 현제 구현된 엔티티끼리 연관 관계 작업을 해주었다. 일대다, 일대일 매핑과 연관관계 편의 메서드를 사용하여 작업. 생각보다 저번 프리 때에 예시로 적어둔 글이 유용했다. 📌 회원 가입 구현 (Member Create) 입력 되는 권한에 따라 소비자와 판매자를 나눠 역할을 부여하였다. 나중에 시큐리티로 권한을 확인할 역할(roles) 외에 DB에 저장하는 역할도 role로 설정해주었다. 📌 판매자와 소비자의 정보 조회 구현 (Member Read) 판매자의 마이페이지와 소비자의 마이페이지를 조회하는 .. 2022. 11. 14.
[Main Project] Day 4 : API 명세서 작성 ,ERD 수정 최종(?), Entity 작업 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. ✅ API 명세서 작성 어제 만든 테이블과 프론트엔드의 피그마를 바탕으로 명세서를 다시 작성하기 시작했다. 엔드 포인트를 제대로 정해야 나중에 작업할 때 힘들지 않고, 응답 바디도 미리 알아야 제대로 줄 수 있기 때문이다. 하면서 하나 하나 짚어가면서 빠진 것과 논의할 부분들을 얘기하면서 하다보니 조금 시간이 오래 걸렸다. 혹시 우리가 너무 깊게 생각하는 건가.. 그래도 하다보니 마무리가 되었다..! (드디어!) 너무 디테일하게는 못하고 어느 정도의 선까지 작업을 하였다. 그리고 그 이후 변화가 필요하다면 상의를 통해 작업하기로 했다. ✅ ERD 수정 ... 다시 한 번 더 수정하였다. 연관 관계는 진.. 2022. 11. 11.
[Main Project] Day 3 : ERD 수정 및 멘토링 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. ✅ 다시 한 번 더 마이너스 API 명세서를 적다보니 수정해야할 부분이 많이 생겼다. 각 팀별로 상의도 하고 모여서 현실적으로 빼야 할 부분들을 정리했다. 장바구니, 체험 게시판은 우선 빼기로 결정하였다. 또한 소비자와 판매자 구분에 대한 이슈를 좀 더 상의해서 회원 가입 페이지는 하나지만 그 안에서 구분할 수 있도록 설계를 해볼 예정이다. ✅ ERD 수정 ERD 수정을 시작했는데, 갑자기 다시 작업하려나 사고회로가 그냥 정지되었다. 일차적으로 마이너스 작업을 바탕으로 수정하고, 멘토 님께 조언을 구한 후 최종 수정을 하였다. 하지만 작업 하면서 계속 변하지 않을까 한다. 우선 가장 큰 변화는 회원의 .. 2022. 11. 11.
[Main Project] Day 2 : 사용자 요구사항 정의서 및 ERD 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. ✅ 사용자 요구사항 정의서 프론트 엔드와 백 엔드 같이 사용자 요구사항 정의서를 작성하였다. 크게 필요한 클래스에서 세부적인걸 조금 나눠서 썼다. 거기서 하나씩 쓰면서 가능한 것과 CRUD는 기본적으로 상으로 배치하였다. 그리고 하면서 구현에 도전해 보겠으나 어려운 것들을 중이나 하로 배치하여 작업순위를 정하였다. 사용자 요구사항 정의서는 각자 프리 때 했던 것을 바탕으로 정리하였다. ✅ ERD 작성 사용자 요구사항 정의서를 바탕으로 ERD를 작성하였다. 이번에는 dbdiagram이 아닌 ERDCloud라는 프로그램을 이용하였다. dbdiagram보다 필드 내용을 더 정리된 형태로 볼 수 있었다. 또한.. 2022. 11. 10.