STUDY/SpringBoot

    [TIL] Entity의 선형 구조 / 트리 구조에 따른 구현 방식 비교 - Trouble Shooting

    프로젝트를 시작하면서 Deck에 대한 기능을 맡았고, 그 기능 중 순서에 대한 로직을 parent값을 줘서 LinkedList처럼 선형 구조로 만들었다. [TIL] parent_id로 순서 바꾸는 로직 구현 프로젝트 시작 Trello를 참고하여 프로젝트 협업 도구를 만드는 프로젝트를 진행하게 되었다. 내가 맡은 부분은 카드들을 담고 있는 Deck 관련된 기능이었다. 구현해야 하는 기능 내가 구현해야 하 argente29.tistory.com 그런데 생각해 보니 이 로직은 위치 수정에 관한 로직으로 옮겨져야 했고 생성 메서드에서는 제일 오른쪽 끝에 있는 Deck의 index를 찾아 그 오른쪽에 위치시켜야 했다. 여기서 문제는 제일 오른쪽 끝에 있는 Deck을 어떻게 찾는지 였다. 처음 생각한 로직 일단 D..

    [TIL] parent_id로 순서 바꾸는 로직 구현

    [TIL] parent_id로 순서 바꾸는 로직 구현

    프로젝트 시작 Trello를 참고하여 프로젝트 협업 도구를 만드는 프로젝트를 진행하게 되었다. 내가 맡은 부분은 카드들을 담고 있는 Deck 관련된 기능이었다. 구현해야 하는 기능 내가 구현해야 하는 기능은 다음과 같았다. ✔ Deck 생성 아무 위치에서 Deck 생성이 가능해야 한다.( 현재는 오른쪽 끝에서 생성하는 로직으로 변경하였다. ) ✔ Deck 단일 조회 Deck을 조회했을 때 Deck의 id와 name, 속해 있는 Card를 조회할 수 있어야 한다. ✔ Deck 위치 수정 Deck의 위치를 수정할 수 있어야 한다. ✔ Deck 이름 변경 Deck의 이름을 변경해야 한다. ✔ Deck 삭제(논리적 삭제) Deck의 Boolean 타입 필드 isDeleted 값을 true로 바꿔준다. ✔ 스케쥴..

    [TIL] 수업 자료 - 카카오 로그인 분석

    [TIL] 수업 자료 - 카카오 로그인 분석

    수업 자료에서 카카오 로그인의 과정이 너무 빨리 지나가서 하나하나 뜯어보고 기록 > 1. 인가 코드 요청 GET 2. 인가 코드 요청 응답 -> Redirect_URI GET 3. 인가 코드로 액세스 토큰 요청 POST 4. access_token에서 카카오 사용자 정보 가져오기 5. 가져온 사용자 정보를 가져와서 추가로직 구현 6. User 정보로 JWT 토큰 만들어서 return. 7. JWT token 쿠키에 담아서 프론트에 넘겨주고 index.html로. 1. 프론트 단에서 버튼을 클릭할 때, 인가 코드를 받아오는 GET 요청을 보낸다. 이 때, client_id와 redirect_uri와 response_type을 쿼리 스트링으로 필수로 같이 보낸다. 사용자가 모든 필수 동의 항목에 동의하고 [..

    [TIL] SpringBoot dependency 버전 맞추기!

    예전 프로젝트에서 QueryDSL을 사용하려고 할 때, 구글링을 해보는데 어떻게 초기설정을 맞춰야 할지 버전마다 너무 달라서 초기설정에만 하루가 걸렸던 적이 있다. 오늘 강의를 듣다가 그 시간을 줄일 방법을 찾았다. Dependency Versions docs.spring.io 지금의 스프링부트에 의존성을 추가할 때 몇 버전을 추가해야 좋은지 상세히 나와 있는 페이지다!! 전 프로젝트에서 진작 알았다면 좋았을 것을 ㅠㅅㅜ 지금 배우고 있는 JPA 강의가 예전 강의라서 의존성 버전을 다르게 해줘야 할 필요성이 생겼는데 강의에서 이 페이지로 가면 지금의 스프링부트와 궁합이 잘 맞는 버전을 찾을 수 있다고 가르쳐주셨다..! 다음에 새 의존성을 추가해야 할 일이 생기면 여기를 참고해서 적으면 될 것 같다!

    [TIL] SQLSyntaxError ( 컬럼명 like 문제)

    발생한 예외 create table posts ( id bigint not null auto_increment, created_at datetime(6), modified_at datetime(6), contents varchar(255), like bigint, title varchar(255) not null, user_id bigint, primary key (id) ) engine=InnoDB" via JDBC [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'like bigint, title varchar..

    [TIL] AnnotationException 예외 발생 (mappedBy)

    발생한 예외 내용 Caused by: org.hibernate.AnnotationException: Collection 'com.example.jisoo_blog.entity.Post.comments' is 'mappedBy' a property named 'posts' which does not exist in the target entity 'com.example.jisoo_blog.entity.Comment' 해석해보면 Post의 comments 콜렉션이 posts와 mappedBy되어 있는데, Comment Entity에는 그런 필드명이 없다. 는 것 같다. Post의 코드 @Table(name="posts") public class Post extends Timestamped { @Id @Gen..

    [TIL] DefaultHandlerException 예외발생(추가공부 필요)

    이슈 GET요청을 받아올 때, 다음과 같은 예외 발생 2023-07-14T04:34:09.773+09:00 WARN 11788 --- [nio-8080-exec-3] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException : No acceptable representation] 컨트롤러 단의 코드 @GetMapping("/view/all") public ResponseEntity getPosts() { PostsResponseDto result = postService.getPosts(); return ResponseEntity.ok().body(result)..

    [TIL] http.authorizeHttpRequests.requestMatchers API 설정(정확한 해결 방법 추가 기록 필요)

    이슈 스프링 부트로 블로그를 만드는 과제를 하고 있는데 내가 작성한 포스트 조회에 대한 API 명세서는 이러하였다. 이름 Method URL 전체 게시글 조회 GET /JisooBlog 선택 게시글 조회 GET /JisooBlog/1 이 두 기능은 인가 필터와 인증 필터를 거치지 않고 비회원에도 보여질 수 있게끔 하기 위해서 설정이 필요했다. WebSecurityConfig 클래스에서 http.authorizeHttpRequests.requestMatchers 설정을 해주면 되겠다 생각해서 http.authorizeHttpRequests((authorizeHttpRequests) -> authorizeHttpRequests .requestMatchers(PathRequest.toStaticResource..

    [TIL] UnsatisfiedDependencyException : Unsatisfied dependency expressed through constructor parameter 0 해결하기

    스프링부트로 MemoApplication을 실행시켰더니 발생한 예외 내용 예외 내용(길다...) org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memoController' defined in file [D:\memo\build\classes\java\main\com\sparta\memo\controller\MemoController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'memoService' defined in file [D:\me..