본문 바로가기

부트캠프 TIL

부트캠프 main project "My-Buddy" -S3 이미지 업로드, 삭제 시간이 많이 지났지만 그 때 당시에 고민하며 해결해보았던 S3 이미지 업로드 삭제 기능 구현에 대한 블로깅을 남겨본다. S3와 연동하는 방식은 MultipartFile 업로드 방식을 사용하였으며 https://www.blog.ecsimsw.com/entry/AWS-%EC%82%AC%EC%9A%A9%EA%B8%B0-S3-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 https://devlog-wjdrbs96.tistory.com/323 https://galid1.tistory.com/590 위 블로그들을 참조하였다. 이미지 확장자 제한 기능과 이미지 업로드, 삭제 기능을 구현하였다. 확장자, 이미지 크기 제한 기능은 다른 방법들로도 가능했던 것 같다. @Slf4j @RequiredArg.. 더보기
23.03.19 @RequiredArgsConstructor @AllArgsConstructor , final 키워드 @RequiredArgsConstructor 초기화 되지 않은 final 필드와 @NonNull 어노테이션이 붙은 필드에 대한 생성자 생성. 필드 순서대로 parameter 순서 넣어줘야함. @NonNull 어노테이션이 붙은 필드 non null 체크도 해줌. @AllArgsConstructor 모든 필드에 대한 생성자 생성. @NonNull 어노테이션이 붙은 필드 non null 체크도 해줌. (근데 이건 @NoArgsConstructor랑 같이 안쓰면 에러나더라) @Builder 필요한 필드만 주입 지정 가능. 생성자 방식(new ~)으로도 빌드 가능하고, .build()로도 가능(빌드시 필드 순서 지켜줄 필요 없음) @Setter final 키워드 당연히 추가 안되지 변하면 안되는데 setter로 .. 더보기
23.03.10 controller에 갯수와 종류가 다른 param를 가진 같은 요청 종류 method 두 개 : cannot map ~ method param 수랑 종류가 다르더라도 get mapping의 기본 엔드포인트라고 해야되나요 ?param 붙기 전의 엔드포인트가 같은 get 메서드가 두개 있으니까 (게시물 전체 조회/bulletin-posts?page={page}&size={size}와 사용자별 게시물 조회/bulletin-posts?memberId={member-id}&page={page}&size={size}) 인텔리제이에서 실행해보니 메서드를 못찾는다고 에러가 떴어요 그래서 게시물 전체 조회 엔드포인트를 제가 임의로 가운데 /feed 넣어서 /bulletin-posts/feed?page={page}&size={size} 해주니까 실행이 되었습니다. 나중에 언젠가 에러 내역을 뜯어보고 싶을때.... org.springframework.b.. 더보기
23.02.25 키워드 검색 쿼리메서드 애썼다... 수많은 시도.. Repository public interface QuestionRepository extends JpaRepository { // 다 똑같은 keyword parameter로 받아내서 questionTitle 또는 questionContents 또는 questionTrail 에서 keyword로 검색하는 쿼리 메서드 Optional findByQuestionTitleContainingOrQuestionContentsContainingOrQuestionTrialContaining(String keyword1, String keyword2, String keyword3, Pageable pageable); // 시도의 흔적들 // @Query(value = "SELECT * FROM QUE.. 더보기
23.02.24 UnsatisfiedDependencyException at ConstructorResolver.java:800 UnsatisfiedDependencyException at ConstructorResolver.java:800 이게 생성자 주입 문제라고 chatGPT 선생님께서 말씀해주셨다 천잰가 이걸 해결하려고 어디 빈 생성 애너테이션 빼먹었나 프로젝트 모든 클래스와 인터페이스들을 눈씻으면서 찾아봤는데 뭘 찾을 수가 있어야 말이지.. 당연하지 그문제가 아녔는데.. 그래서 로그 내역으로 뭐 어디 클래스 어디 생성자가 문젠데 찾아보려고 뭐 로그 레벨 에러 디버그 뭐이런것도 찾아보고 난리 좀 쳤다 로그내역 끄트머리 까지 가서 보니까 리포지토리에 메서드 명을 컬럼명 잘못 매칭했다고 되어 있어서 고치고 보니 그래서 리포지토리 빈이 안만들어지고 주입도 못하고 그 난리였나보다 알게되었다 좋아 뭐 세네시간... 안좋아.. 더보기
23.02.14 git 오류 일기 결과적으로 git init을 하지 않아서 해당 디렉토리를 git이 관리하지 않아 상단에 있는 git init을 사용하였기 때문에 상단 디렉토리와 git remote이 연결이 되어 상단 파일들이 git status에 감지되었던 것이다. 꼭 git init 빼먹지 말기!!!! ----------밑에 상황 정리 새로운 리포지토리 생성하고 그 리포지토리를 제가 만든 솔로프로젝트에 연결하려고 git bash에서 remote 연결을 한 후에 add, commit, push 진행한 결과 입니다 분명 새로 만든 깃 리포지토리고 현재 디렉토리엔 해당 파일들이 없는데 1. git status 하면 untracked 파일에 현재 디렉토리 상단의 상단의 상단 디렉토리들까지 빨간 글자로 변화 감지를 하고 (그래서 해당 파일들은.. 더보기
23.01.13 쿠키 옵션 Domain- 쿠키의 도메인과 서버의 도메인 일치해야 쿠키 전송. Path-(포트번호 뒤)세부 경로와 같은 경로로 시작되는 요청만 쿠키 전송 가능. MaxAge-앞으로 몇 초 동안 쿠키 유효한지. Expires-언제 Date까지 유효한지 지정하고 초과하면 쿠키 자동 파괴. Secure-true인 경우HTTPS 프로토콜로 통신하는 경우만 쿠키 전송. HttpOnly-true인 경우 자바스크립트에서 쿠키 접근 불가하고 기본은 false, SameSite- (Lax-Cross Origin 요청은 GET 메서드만 쿠키 전송 가능. Strict-Cross Origin 아닌 same site만 쿠키 전송 가능. None-Secure 옵션 하에서만 항상 쿠키 전송 가능. 여기서 same site 은 요청 보낸 ori.. 더보기
22.12.28 JPA 방식 엔티티 간의 연관 관계 매핑 연관 관계 매핑은 참조하는 방향성을 기준으로 생각했을때 단방향 연관 관계와 양방향 연관 관계로 구분 -단방향 : (N:N과 같은 참조 객체 수 와는 다른 이야기) Member 클래스에만 Order 참조 객체를 두고 Order 참조 가능. Order 클래스는 참조값 없어서 Member 정보 알 수 없음. 한쪽 클래스만 다른 쪽 클래스의 참조 정보를 가지고 있는 관계를 단방향 연관 관계 -양방향 : 두 클래스가 모두 서로의 객체를 참조할 수 있으므로, Member는 Order 정보를 알 수 있고, Order는 Member 정보를 알 수 있음. 양쪽 클래스가 서로의 참조 정보를 가지고 있는 관계를 양방향 연관 관계 (JPA는 단방향 연관 관계와 양방향 연관 관계를 모두 지원하는 반면, Spring Data J.. 더보기