전체 글
2023.11.28 TIL - OAuth란?
오늘 심화주차가 시작되면서 강의를 새로 받았다. 첫 강의는 소셜로그인부터 시작했다. 소셜로그인은 OAuth 표준 인증 방식을 통해 구현되었습니다. OAuth란? Open Authorization의 약자입니다. 애플리케이션이 특정 시스템의 보호된 리소스에 접근하기 위해, 사용자 인증(Authentication)을 통해 사용자의 리소스 접근 권한(Authorization)을 위임받는 것을 의미합니다. Authentication과 Authorization의 차이는 간단하게 다음과 같습니다. OAuth 동작 흐름 OAuth를 활용한 카카오 로그인을 보면 다음과 같습니다. 1. 리소스 소유자(이하 유저)가 클라이언트 서비스를 이용하고자 이용 요청을 보냅니다. 2. 클라이언트는 검증 서버(카카오 인증서버) 에 액세..
팀 프로젝트 ( 블로그 뉴스피드) - KPT 회고
내배캠 Spring_3기 A팀 3조 팀명: 봄봄봄 일시: 2023.11.21 ~ 2023.11.27 팀원 : 정성호, 정유진, 김민중 회고 Keep 소통 중심의 프로젝트를 진행해서 좋았다. 프로젝트 진행 시 모르는 부분에 대해서 바로바로 피드백을 해결하는 과정이 매우 순조로웠다. 글로벌 exception 을 통해 예외 처리 하는 부분이 좋았다. 각자 Domain 을 하나씩 맡아서 진행하니 구조적으로 진행이 빨라져서 좋았다. 설계 ~ 배포까지 프로젝트의 모든 단계를 협업을 통해 성공적으로 완료해서 좋았다. 적절한 쉬는 시간 Problem 시도때도 없이 commit 날려 헤더가 어디있는지 모르는 상황. 정리하고 올리기 사고하지 않기, 유연한 남탓 - 구현은 가볍게, 테스트는 무겁게 오늘 할 일을 내일로 미루..
2023.11.23 TIL - JPA 복합키 사용하기 (Feat. 팔로우 API)
오늘 한 것 팀 프로젝트 팀 프로젝트 팀프로젝트 필수 요구사항들을 끝내고 추가 요구사항중 팔로우 기능을 구현하기로 했다. 기능을 구현하기전 엔티티 설계와 ERD 를 작성했다. 팔로우 엔티티 설계 팔로우는 팔로우를 받는 팔로워_id와 팔로우를하는 팔로잉_id를 갖고있다. entity면 2개의 회원 엔티티이다. 처음에는 이를 회원과 각각 ManyToOne 관계를 맺었는데, 다음과 같은 이유로 복합키를 가진 엔티티로 변경했다. 1. 팔로우 관계가 팔로우 테이블과 회원 테이블 의 연관이 되어있는게 맞는가? 예를들어 게시판과 게시판 타입의 관계를 생각해보면 게시판의 타입을 수정할 때마다 게시판 타입이 변경될 수 있다. 게시판의 상태에 따라 게시판 타입도 변경되는 것이다. 그러므로 둘은 서로 관계를 가지고있다. ..
2023.11.22 TIL - 엔티티를 저장할 때, 연관관계 엔티티 저장 방법에 대해서 (feat. referenceBy)
오늘 한 것 팀 프로젝트 오늘 내가 맡은 역할 ( 예외 응답 공통 포맷, 회원 API, 인증 인가 처리 (Jwt)를 구현하였다.. 구현하면서 팀원들의 질문도 해소하는 시간을 가지다, 게시글 API 를 맡던 팀원의 질문에 답을하면서 생기던 고민이 있어 글에 정리하고자 합니다. 고민 고민이 되었던 부분은 다음과 같습니다. 게시글(Post)를 저장할 때, Post가 참조하는 Member(회원) 엔티티를 넣어주어야합니다. ex Post post = new Post(postRequest, member) postRepository.save(post) 여기서 Member 엔티티가 문제입니다. 현재 구조상 인증객체가 가지고있는 회원 정보는 Dto로 구성하야 만들었는데, 이 DTO로 임시 Entity를 만들어야 하는지..
2023.11.21 TIL
오늘 한 것 팀 프로젝트 팀 프로젝트 오늘부터 팀프로젝트 발제가 시작됐다. 이번 팀프로젝트는 주어진 시간이 얼마 없어서 오늘 하루종일 기획, 설계하는 시간을 가졌다.. 이렇게 이쁘게 팀 소개, 팀원 소개도적고 ERD, API 명세, 와이어프레임 등 기초 설계 산출물들을 작성했다. 후.. 기초 설계는 끝냈고 오늘 자기전까지 프로젝트 환경 구성만 해놔야겠다..
[프로그래머스] 달리기 경주 - Java(자바) 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등..
2023.11.17 TIL
오늘 한 것 알고리즘 스터디 개인 프로젝트 과제 알고리즘 스터디 오늘도 알고리즘 스터디를 진행했다. 프로그래머스 - 달리기 경주 문제이다. 계속 문제를 풀다보니 이제 점점 풀 수 있게 되서 다행이다. 풀이는 아래에 포스팅 해놓았다. 개인 프로젝트 과제 이어서 프로젝트 과제를 진행중이다. 오늘은 밀린 강의를 듣느라 많이 진행은 못하고 회원 API와 할 일 생성 API를 구현했다. 구현하면서 dto의 역할과 RESTFul한 url 에 대해 고민을 많이했다. 다음 주 월요일까지 3일 정도남았는데.. 주말에 열심히 해야겠다.
[Spring] ObjectMapper 직렬화 시 한글문자 ??? 문제
개인 프로젝트 과제를 진행 중에, fillter에서 인증 실패 시, response에 에러메세지를 전달하기 위해 ObjectMapper를 이용하던 중 문제가 발생했습니다. 한글 문자가 물음표로 (???) 나오는 문제 ErrorResponse 객체에 들어있는 데이터 중 한글로 된 에러메시지가 있습니다, 해당 response를 ObjectMapper로 직렬화를 하여 반환할 때, 다음과 같이 ????로 반환됩니다. 해결 해결 방법은 다음과 같습니다. 1. reponse content type 지정 response.setContentType(MediaType.APPLICATION_JSON_VALUE); 2.response char set 지정 response.setCharacterEncoding("utf-8")..