본문 바로가기

Study in Bootcamp88

[Main Project] Day 1 : Start❗️ 본 글은 프로젝트를 기록하기 위해 적은 글 입니다. 수정이 될 수 있으며, 정확하지 않을 수 있습니다. ✅ 팀 빌딩 팀원 구성 및 팀원 역할을 정하였다. 서기로 노션 페이지 관리하기로 결정. 해당 직업군에 맞추어 아이디어를 제시했다. 그리고 그 해당 아이디어에 맞추어 세부적인 의견들을 제시하여 정리하였다. 그리고 아이디어를 선택하였다. 🔥 내일 할 일 요구사항 정의서 작성 팀 별 회의 2022. 11. 9.
프리 프로젝트 회고 ✔️Date : 2022.10.20 ~ 2022.11.07 What did you do? ✅ Spring Security와 JWT를 이용하여 로그인 구현 : Spring Security와 JWT를 이용하여 로그인을 구현하였다. DB에 저장된 유저가 자신의 아이디와 비밀번호로 로그인을 하면, 헤더로 Access Token(Authorization)과 Refresh Token을 발급해주도록 설정하였다. 사실 토큰을 발급받고 흘러가는 흐름을 명확하고 정확하게 100프로 이해했다고 얘기하지는 못한다. 하지만 그래도 전보다는 그래도 어떻게 흘러가는 지는 느껴졌다. Security FilterChain을 이용하여 조금 쉽게 로그인 로직을 구현할 수 있었다. 중간 중간 커스텀이 필요한 부분은 직접 커스텀을 하면서 진.. 2022. 11. 8.
[Pre-Project] Day 13 : 헤더로 토큰 전달, 배포(실패😭) 프로젝트를 하는 과정에 있어서 기록하는 것이다. 본 글은 오늘이 마지막이다. ✅ 헤더 토큰 전달 JWT로 로그인을 구현한 후, 헤더로 Authorization과 Refresh Token을 전달하려고 했다. 그런데 헤더로 전달이 안되는 것... 그래서 찾아봤더니 해당 키는 따로 또 설정을 해줘야 한다고!! CORS 필터에 아래 두 코드를 추가해주었다. 아래 링크를 보고 알게 되었다. 참조 : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers configuration.addExposedHeader("Authorization"); configuration.addExposedHeader("Refresh").. 2022. 11. 8.
[Pre-Project] Day 12 + 주말 : CORS 해결 및 유저 정보 판별 프로젝트를 하는 과정에 있어서 기록하는 것이다. 잘못된 부분이나 수정이 필요한 부분은 꾸준히 수정할 예정이다. ✅ CORS 해결 금요일부터 주말 내내 CORS 오류를 해결하려 했으나 해결하지 못했다. 거기에 플러스로 회원가입도 되지 않았다. @CrossOrigin 어노테이션도 붙여보고, 어트리뷰트도 다 넣어줘보았다. @CrossOrigin(origins = "*", allowedHeaders = "*", allowCredentials = "true", maxAge = 5000L) WebMvcConfig를 만들어 addMapping도 했으나 이 오류는 해결되지 않았다. 그리고 황당하게 찾은 이유.. OPTIONAL 메서드가 허용되어 있지 않았다. 해당을 추가해주고, 어노테이션을 주석처리하니 해결이 되었다... 2022. 11. 7.
[Pre-Project] Day 11 : SQL 데이터 넣기 프로젝트를 하는 과정에 있어서 기록하는 것이다. 잘못된 부분이나 수정이 필요한 부분은 꾸준히 수정할 예정이다. ✅ SQL 데이터 넣기 schema와 data 값을 미리 넣어두려고 하였다. 아무래도 이렇게 작업을 해두면 프론트 분들이 일일히 데이터를 넣지 않아도 된다고 생각했기 때문이다. JDBC에서는 별 문제 없었는데 JPA는 의외로 계속 어려웠다. (아직 실패중) 계속해서 오류가 나고 구글링을 따라해도 안되어서 새로 스프링 프로젝트를 만들어 보았다. 그랬더니 오류가 없이 계속 잘 됨... 이렇게 올리고 나서 데이터만 넣어보는건 되었다..! 근데 스키마는 그냥 create나 create-drop으로 해야할 거 같다. 내일까지 우선 도전 조금 더 찾아보고 내일까지 도전 해볼 것! 이게 안된다면 RDS에 저.. 2022. 11. 4.
[Pre-Project] Day 10 : OAuth2 구현해보기 및 MySql Update 프로젝트를 하는 과정에 있어서 기록하는 것이다. 잘못된 부분이나 수정이 필요한 부분은 꾸준히 수정할 예정이다. ✅ 데이터 입출력 확인 및 MySQL Update로 작업 확인 이제 어느 정도 백엔드 작업이 틀이 많이 갖춰지게 되었다. 그래서 DB에 잘 들어가는지, 입출력이 잘 되는지 합쳐서 확인해보았다. 우선 지금 상태로는 잘 들어가고, 이제 여기서 권한과 유저 아이디를 받아와서 확인하는 작업을 거칠 것 같다. MySQL도 Update로 바꿔서 확인해보았다. 아래의 코드처럼 application.yml 파일을 수정해주었다. (그 전에는 ddl-auto를 create로 해주었다.) MySQL 워크 벤처로 조금 쉽게 접근해서 확인하였다. spring: datasource: driver-class-name: c.. 2022. 11. 3.
[Pre-Project] Day 9 : Spring Security 프로젝트를 하는 과정에 있어서 기록하는 것이다. 잘못된 부분이나 수정이 필요한 부분은 꾸준히 수정할 예정이다. ✅ 주말 동안 구현한 것 JWT를 이용한 로그인 구현 현재 JWT를 이용하여 Access Token을 받아오고 그것을 헤더로 요청하면 권한을 가질 수 있다. ✅ 시도한 것 OAuth2와 자체 로그인을 동시에 사용 Security FilterChain에 그냥 등록하면 작동 안됨 공통 클래스를 빼고 설계를 바꿔야 함. 로그인 실패시 에러 메세지 변환 시킴. 😵‍💫 과정에서 발생했던 문제 우선 Config에서 필터를 수정하고, oauth2와 로그인을 동시에 해봤는데 순환 참조가 됨...! 🔥 해야할 것 : 끝나면 취소선으로 표시 1️⃣ OAuth2 로그인 구현 자체 로그인이랑 같이 사용이 가능한지 공.. 2022. 11. 2.
[Pre-Project] Day 8 : JWT 이용한 로그인 및 권한 부여 프로젝트를 하는 과정에 있어서 기록하는 것이다. 잘못된 부분이나 수정이 필요한 부분은 꾸준히 수정할 예정이다. ✅ JWT (JSON Web Token) JWT를 이용하여 로그인 구현하려고 함 JWT Tokenizer 클래스를 만들어 Access Token과 Refresh Token 생성 권한을 부여하기 위해 User Role 생성 Login DTO 생성 Security Filter Chain을 이용해 JWT를 이용한 로그인 구현 antMatcher()을 이용하여, HttpMethod Role 제한 😵‍💫 과정에서 발생했던 문제 EndPoint를 '/users/{user_id}' 이런식으로 정했는데, antPatter에 '/*/users/**' 이렇게 설정해 준 것. 그래서 권한이 없음에도 계속해서 Get.. 2022. 10. 31.
20221028 데일리 회고 ✔️Date : 2022.10.28 FRI What did you do? ✅ Check Style Build Error : 흐헝.... 진짜 이거 때문에 아침 내내 .. 지우고 받고 지우고 받고 했다.. 괜히 하자고 했나 싶기도 하고... 진짜 많은 생각이 들었다. 왜 안되는지 찾다가 왜 리포트에 폴더가 안생기지 라는 의문에서 시작되어버린... 찾게되는 과정! 진짜 눈물날 뻔했다. 거짓말 안하고 진심으로 소리질렀다.. 요즘 미라클 모닝 하기로 해서 여덟시에 시작했는데,,,,,,!!!!!! 약 네시간 반을... 투자했기 때문이다. 근데 진짜 모든 단서는 에러메세지에 있었다. 알고보니 파일을 찾는 위치가 잘못...된것! 아니 그냥 빌드가 알아서 잘못 찾아간것! 그래서 그 위치로 내가 컨벤션 파일들을 옮겨주니.. 2022. 10. 28.
[Pre-Project] Day 7 : CheckStyle Convention Build 프로젝트를 하는 과정에 있어서 기록하는 것이다. 잘못된 부분이나 수정이 필요한 부분은 꾸준히 수정할 예정이다. ❗️만약 " A failure occurred while executing org.gradle.api.plugins.quality.internal.CheckstyleAction" , "Unable to create Root Module" 키워드로 검색해서 지금 포스팅에 들어왔다면 3️⃣ 확인 혹은 링크 클릭 ❗️ Intelli J 네이버 코딩 컨벤션 적용 및 Check Style Build 지난 프리 프로젝트를 하면서 프로젝트에 코딩 컨벤션을 적용하고, 빌드에 포함시키면서 작업을 하였다. 힘들기도 했지만, 깔끔하고 가독성이 좋게 코드가 정리가 되었던 경험이 좋았다. 해당 bhinney.tisto.. 2022. 10. 28.
20221027 데일리 회고 ✔️Date : 2022.10.27 THU What did you do? ✅ 연관관계 매핑 : 연관관계 매핑 과정에서 나도 이해가 많이 덜 되었었다. 그래서 같이하는 팀원 분께 설명을 하는 게 많이 모자랐다. 그래서 그만큼 정리하고 생각해보았다. 그러면서 나도 블로깅을 어떻게 해야할 지도 고민해 보았다. 그래서 정리가 많이 되어 주말 안에 블로깅을 하는 것이 목표이다. 나는 매핑을 할 때 주인관계를 생각하기 보다는 어떤 id를 FK로 만들어야하는지 혹은 어떤 id를 기준으로 참조가 되는 지를 생각하게 되는 것 같다. 그래서 주인관계에 대해 설명하라고 하면 그 부분은 많이 모자라다. 그 파트를 좀더 찾아서 공부하고 정리할 필요가 있다! 그리고 중요했던 부분은 유저와 추천한 게시물 사이의 관계였다. 만일 내.. 2022. 10. 28.
[Pre-Project] Day 6 : 연관관계 매핑 프로젝트를 하는 과정에 있어서 기록하는 것이다. 잘못된 부분이나 수정이 필요한 부분은 꾸준히 수정할 예정이다. 오늘은 사실 매핑에 조금 헷갈리고 어려워서 설명하고, 이해하고 하는데 시간을 많이 쏟았다. ✅ 연관관계 패핑 각 엔티티 테이블 간의 참조를 위해 매핑을 하였다. 테이블과 테이블 사이의 관계성을 생각하는게 어려웠다. User : Question = 1 : N User : Answer = 1 : N User : QuestionVote = 1 : N User : AnswerVote = 1 : N Question : Answer = 1 : N Question : QuestionVote = 1 : 1 1 : N 으로 보고 재 매핑하기로 했다. 하나의 질문의 여러 추천이 되는데 참조가 필요한 부분이 있기 .. 2022. 10. 28.