본문 바로가기

Spring/Spring Study16

[Spring] HTTP 메소드 : PUT과 PATCH의 차이 팀 프로젝트를 진행하던 중, 정보를 업데이트할 때 PUT과 PATCH 중 어떤 것을 사용해야 하는지에 대한 토의(?)가 열렸다.나는 이제껏 PatchMapping을 주로 써왔기에 PATCH가 맞다고 생각했는데, 찾아보니 PATCH를 권장하지 않는다는 이야기가 있어서 깜짝 놀랐다. 알아봤던 내용을 정리해두면 좋을 것 같아 글로 남긴다.  HTTP 메소드 중 PUT과 PATCH는 리소스의 업데이트를 의미한다.리소스를 업데이트한다는 점에서 '똑같은 거 아닌가?'라는 생각이 들지만 둘 사이에는 약간의 차이가 있다. PUT : 리소스의 모든 것을 업데이트한다.PATCH : 리소스의 일부를 업데이트한다.  예를 들어 아래와 같은 리소스가 있다고 생각해보자.고객(customer)1이름(name)김철수나이(age)20.. 2024. 7. 4.
[JPA] 외래키 설정 DB 설계 시 테이블간 관계를 표현하기 위한 외래키 사용은 필수적이다. JPA에서는 이러한 외래키를 클래스 안에 클래스를 선언함으로써 사용 가능하도록 기능을 제공해주고 있다. 예시로 부모와 자식 관계를 들어보자. 부모 입장에서는 자식은 여러 명일 수 있지만, 자식 입장에서 부모는 한 명이다. 이 경우 부모는 여러 명의 자식을 가질 수 있게 되는데, 이를 코드로 작성하면 다음과 같다. public class Child { @ManyToOne @JoinColumn(name="parentId") private Parent parent; } 자식 입장에서 작성한 코드이다. 자식 클래스 내에 부모 클래스를 선언하고, Many (자식) to One (부모) 형태로 작성해 준 것이다. 이 외에도 @ManyToMany.. 2024. 4. 19.
[JPA] hibernate의 ddl-auto 속성의 종류 및 주의 개요 JPA의 구현체 중 하나인 hibernate는 다양한 기능을 제공하는데, 그 중 entity만 등록해놓으면 DDL(Data Definition Language : 데이터 정의문)을 자동으로 작성하여 테이블을 생성하거나 수정해주는 ddl-auto라는 설정이 있다. ddl-auto 속성의 종류 create create-drop update validate none(default) create entity로 등록된 클래스와 매핑되는 테이블을 자동으로 생성해준다. 이 과정에서 기존에 해당 클래스와매핑되는 테이블이 존재한다면 기존 테이블을 삭제하고 테이블을 생성한다. create-drop create와 비슷하게 entity로 등록된 클래스와 매핑되는 테이블이 존재한다면 기존 테이블을 삭제하고 자동으로 생성하.. 2024. 4. 19.
[Spring] Java - Lombok 호환 버전 정리 [JAVA] Lombok 호환 버전 정리 현재 업무에서 4가지의 자바 버전을 사용하고 있어 그에 따른 Lombok 버전을 정리한다. jinseobbae.github.io Spring Boot에 Lombok을 dependency 주입해줄 때 버전이 궁금해져서 정리해보았다. Java 버전 Lombok 버전 19 1.18.26 18 1.18.24 17 1.18.22 16 1.18.20 15 1.18.16 14 1.18.12 13 1.18.12 12 1.18.10 11 1.18.4 10 1.18.4 9 1.16.20 8 1.16.0 7 0.9.2 6 0.9.2 개인적으로 Java 17버전을 자주 사용하기 때문에 1.18.22를 자주 사용한다. 2024. 4. 19.
[Spring-Boot] Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. 오류 해결 스프링 부트에 dependency들을 추가해주고 잘 되나 시험 삼아 돌렸는데 바로 에러가 났다. Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. 찾아보니 DB 관련 dependency를 추가한 상태에서 dataSource 설정을 해주지 않아서 발생한 것이었다. 나는 아직 DB 구축을 하지 않았으니 해당 dependency를 삭제하는 것으로 해결하였다. dependency들을 미리 넣어두면 편할 것 같아서 빌드해둔 것이었는데 앞으로는 필요한 dependency만 설정해야겠다... 2024. 4. 19.
[Spring] JWT Access Token 파싱 오류 (Signed Claims JWSs are not supported.) 해결 방법 parseClaimsJwt() → parseClaimsJws() 수정! 자동완성했더니 Jwt가 되어버려 생겼던 문제였다... 이렇게 작은 부분은 눈으로 찾기가 너무 어려우니 작성할 때 잘 살펴야겠다. [Spring] JWT Access Token 파싱안되는 오류 (Feat. Signed Claims JWSs are not supported.) 다음 코드를 통해 JWT access token을 파싱하려고 했으나, exception이 발생하며 계속 실패했다.공통적으로 Access Token에서 유저 정보를 얻으려고 다음 코드를 사용했을 때도 오류가 발생했다.오류서치 velog.io 2024. 4. 8.