[TIL] 스파르타 백엔드 캠프 & 트러블 슈팅
·
TIL
나는 위 사진 코드와 달리 @PathVariable Long id를 요청하지 않고 세션 아이디를 가지고 유저를 찾곤 했었다 문제: 수준별 강의를 듣던중  내가 하던 방법이 잘못되었다는 것을 알았다.요청한 id로 찾은 userId의 값과 세션 아이디의 값을 비교해줘야한다는 것도 알게 되었다. Status가 enum 타입인데 어떻게 적용할지에 대해 의문이 생겼다 JPA가 ENUM 타입을 매핑 시키는 방법:@Enumerated(EnumType.STRING)을 사용하여 ENUM타입을 String으로 저장해준다@Enumerated(Enum Type.ORDINAL) : Enum순서 값을 DB에 저장하는 것도 있지만 추천하지 않는 방식이라고 한다. 이런 방식으로 Repository의 파라미터로 값을 보낸다 그에 맞는..
[TIL] 스파르타 백엔드 캠프 & 트러블 슈팅
·
TIL
1️⃣ 문제Schedule과 User와 N:1관계이므로 @ManytoOne을 명시해주고 포스트맨으로 사용자 삭제를 요청했다 하지만 외래키 관계여서 삭제가 안된다고 한다2️⃣원인Schedule와 User 관계만 설정해주고 User-> Schedule관계를 설정해주지 않았다. 즉 양뱡향 관계를 하지않았다.그래서 @OneToMany로 1:N관계를 명시해주고 다시 포스트맨으로 삭제요청을 했지만 작동하지 않았다.mappedBy("schedule") -> mappedBy("user")로 변경했다. 그 후 사용자 삭제 시 연쇄 적으로 댓글과 일정이 잘 삭제 되는 것을 확인 내가 알고 있는 지식으로는 mappedBy가 연관관계 주인이 아니라면 mappedBy를 사용한다고 알고 있는데 user가 주인으로 인지를 했어서 ..
[TIL] 스파르타 백엔드 캠프 & 트러블 슈팅
·
TIL
이 과제를 하면서 생긴 오류 디버깅을 해도 각 필드 값이 잘들어가는것을 확인을 했는데 406에러가 발생했다일단 406 상태코드를 알아보았다406 Not Acceptable : 이 응답은 서버가 서버 주도 콘텐츠 협상을 수행한 이후, 사용자 에이전트에서 정해준 규격에 따른 어떠한 콘텐츠도 찾지 않았을 때, 웹서버가 보냅니다.라고 한다.원인을 찾아보면서 @Getter를 하지 않았기 때문에 발생했다라는 글이 보여package com.example.todolist.dto;import lombok.Getter;import java.time.LocalDate;@Getterpublic class ScheduleResponseDto { private Long scheduleId; // schedule 테이블의 식..
[TIL] 스파르타 백엔드 캠프
·
TIL
오늘할일]코드카타3차과제 2단계=================================================================[오늘 발생한 오류 및 해결]/*사진을 찍지 못해 예시*/public void Main() { System.out.println();_내 코드에는 반환타입 확인해 일치시켜 주었고 문제가 없을 코드인데 계속 빨간줄이 생겼다. 원인을 계속 고칠려고  원인이 없는 반환 타입이나 메소드로 찾고 있었다 그래서 튜터님께 찾아가서 같이 화면 공유를 통해 문제를 찾아가던 중 튜터님께 IDE 캐시 문제 일수도 있으니 Invalidate Caches 를 들어가서 체크 후 재시작을 해보라고 하셨다.재시작 해보니까 빨간 줄이 사라지고 정상 작동이 되었다.알아보니 IDE의 캐시가 손..
[TIL] 스파르타 백엔드 캠프
·
TIL
오늘할일]코드카타3차과제 1단계=================================================================[컨트롤러] 역할 - 클라이언트의 요청을 받는 역할 -요청에 대한 처리를 서비스 레이어의 전달 -서비스에서 처리된 결과를 클라이언트에 응답 주로 사용하는 어노테이션 @Controller, @RestController [서비스] 역할 -사용자의 요청 사항을 초리한다. -db와 상호작용이 필요한 경우 레퍼지토리 레이어에게 요청한다. 주로 사용하는 어노테이션 @Service [레퍼지토리] 역할 -DB와 상호작용역할    CONNECTION 연결 해제    CRUD 작업 처리 주로 사용하는 어노테이션 @Repository [DTO] 계층간 데이터 전달을 위해 사용 요..
[TIL] 스파르타 백엔드 캠프 강의
·
TIL
3️⃣ 구현CRUD중 Read 메모 조회 API를 구현한다. @GetMapping("/{id}") public MemoResponseDto findMemoById(@PathVariable Long id) { Memo memo = memoList.get(id); return new MemoResponseDto(memo); }// Id를 사용해 메모를 조회한다.localhost:8080/memos/{id}에서 {}안에 id 값을 인수로 넣기 위해선 @PathVariable 어노테이션을 명시해야한다.처음에 Create해서 저장한 memoList의 키가 우리가 요청한 id와 맞는 values를 memo 객체에 저장하고 MemoResponse객체로 변환후 리턴해준다. 4️⃣ 테..