Spring Boot 🍃
-
Thymeleaf Layout: Fragment 구성 - warning 뜨는 코드Spring Boot 🍃 2023. 12. 6. 00:01
html 만만하게 봤다가 코 다치고 공부..😳 여기서 사용한 Thymeleaf와 thymeleaf-layout 버전은 3.x대 이다. 작성한 코드는 2.x대에 해당하는 코드이기 때문에, 혹시라도 3 버전을 사용하면서 아래 코드를 적용해본다면 다음과 같은 warning 경고 문장을 만나게 된다. ExpressionProcessor : Fragment expression "/fragments/header::Header" is being wrapped as a Thymeleaf 3 fragment expression (~{...}) for backwards compatibility purposes. This wrapping will be dropped in the next major version of the..
-
Thymeleaf 와 Enum 클래스를 사용해서, html radio 태그 제어Spring Boot 🍃 2023. 12. 6. 00:01
보고 배운 블로그 : taegyunwoo.github.io Lombok과 Thymeleaf 의존성을 추가한 상태라는 가정하에 진행 ✏️ Enum 클래스 정의 AnimalType @AllArgsConstructor @Getter public enum AnimalType { MONKEY("몽키 🐵"), PANDA("팬더 🐼") ; private String description; } Enum이 포함된 데이터 객체 생성 AnimalDto @Getter @Setter @ToString @Builder @AllArgsConstructor @NoArgsConstructor public class AnimalDto { private String animalId; private AnimalType animalType;..
-
Spring boot: JPA 연관관계 살펴보기 - 1:NSpring Boot 🍃 2023. 12. 6. 00:01
1:N 연관관계 한 쪽 엔티티가 관계를 맺은 엔티티 쪽의 여러 객체를 가질 수 있는 것을 의미한다. @OneToMany 어노테이션 이용! 실습 user 엔티티에 user_id로 연관지어진 user history 데이터 목록을 가져오기 엔티티 설계 User 엔티티 public class User extends BaseEntity { private String name; private String email; @OneToMany(fetch = FetchType.EAGER) @JoinColumn( name = "user_id" // 엔티티가 어떤 필드로 조인을 할지 지정해줌 , insertable = false, updatable = false // User 엔티티에서 UserHistory를 변경하지 못하도록..
-
Spring boot: JPA 연관관계 살펴보기 - 1:1Spring Boot 🍃 2023. 12. 5. 00:01
1 대 1 연관관계 어느 엔티티 쪽에서 상대 엔티티와 반드시 단 하나의 관계를 가지는 것을 말한다. 1:1 연관관계는 생각보다 실무에서 많이 사용된다. 실습 1: 단방향 book 테이블과 bookReviewInfo 테이블이 1:1로 조인하는 경우에 대해 실습해본다. bookReviewInfo 엔티티에 book 엔티티를 조인해서 데이터 확인 엔티티 작성 Book 엔티티 @ToString(callSuper = true) @Getter @Setter @SuperBuilder @NoArgsConstructor @AllArgsConstructor @Entity public class Book extends BaseEntity { private String name; private String category; p..
-
Spring Boot: Entity ListenerSpring Boot 🍃 2023. 12. 5. 00:01
Entity Listener 를 사용하여 User 테이블에 변경사항이 생길 경우 해당 히스토리를 저장하는 실습! 0. Entity Listener @Entity Listener JPA 엔티티에 대한 이벤트 리스너를 등록하는 어노테이션이다. 이 어노테이션을 사용하여 엔티티의 생명주기 이벤트를 수신하고 이벤트가 발생할 때 특정 동작을 수행할 수 있다. 아래 나타날 코드에서는 @EntityListener 어노테이션과, @EntityListener 어노테이션에 할당 할 UserEntityListener 클래스를 작성하고 테스트한다. 1. User, UserHistory Entity 작성 User.java 해당 엔티티가 영속화 될 때 UserHistory 엔티티를 동작시키는 이벤트를 발생시키기 위해 @Entity..
-
Spring boot: H2 DB 인텔리제이에서 확인하기Spring Boot 🍃 2023. 12. 5. 00:01
1. dependency 추가 runtimeOnly 'com.h2database:h2' 2. application.yml 설정 추가 기존에 사용하던 방식과 다른 부분은 in memory 방식이 아닌 embeded 방식으로 사용 AUTO_SERVER=TRUE 선언으로 여러 프로세스에서 다중 접속 허용 sql.init.mode = always 설정으로 모든 유형의 데이터베이스에 sql 스크립트 실행 (참고) spring: datasource: url: jdbc:h2:./test01;AUTO_SERVER=TRUE # 프로젝트 루트 위치에 test01 DB Embed driverClassName: org.h2.Driver # h2 db embeded 방식에서도 data.sql 파일이 자동 실행되게 하기 위함 s..
-
Spring boot : sql dummy data 만들기Spring Boot 🍃 2023. 12. 5. 00:01
DB 테이블 조회 테스트를 위해서 insert 쿼리를 다량으로 만들어 테스트 실행시 만들어둔 insert 쿼리가 자동으로 실행되게 하는것에 대한 포스팅이다. 1. dummy insert data query 생성 mockaroo.com 사이트에서 더미 데이터를 제작해준다. 회원가입을 하지 않아도 되는 아주 편리한 사이트이다. 한가지 아쉬운 점은 한글 지원이 안됨 🫤 mockaroo 사이트 바로가기 사이트에 진입하면 아래와 같은 화면이 나타난다. Field Name에는 필드 (table 컬럼) 이름을 적어주고 Type 부분은 입력할 데이터를 선택해주는데, Type 클릭시 창이 나타난다. 이때 우측 상단의 돋보기 칸에 원하는 데이터 종류를 입력해주거나, 창의 하단 중앙부분에 영어로 상세 조건을 입력하면 AI가..
-
Spring boot: RestTemplate - Naver 지역 검색 api 연동해보기Spring Boot 🍃 2023. 12. 5. 00:01
1. 네이버 개발자센터에서 검색 api를 사용하기 위해 open api 이용신청을 하고 인증키를 받아둔다. 네이버 개발자 센터에서 제공되는 검색 api 문서를 참고하며 진행! 2. api키 숨기기 위에서 받은 네이버 api 인증키를 properties 파일이나 yaml 파일을 새로 만들어서 입력해준 후, // key.yaml naver: client-id: asdhlagfkjdshg secret: sdfjhakjdhfgukiyfdgiulz application.properties 파일에 아래 문장을 입력해 주면 자바 파일에서 사용할 수 있다. 그리고 위에서 만들어준 파일은 꼭 .gitignore에 입력해주어야 git에 업로드 되지 않는다. spring.config.import=classpath:api-k..
-
spring boot : RestTemplateSpring Boot 🍃 2023. 12. 5. 00:01
보고 배운 인강 Client 입장이 되는 서버와 Server 입장인 서버를 띄워서 RestTemplate를 이용하여 Client에서 Server로 데이터를 요청받는 구조에 대해 학습! RestTemplate 정보 제공: Chat GPT Spring Framework 에서 제공하는 HTTP 통신을 간편히 처리할 수 있는 클래스이다. RestTemplate은 클라이언트 측에서 HTTP 요청을 보내고, 응답을 받아오는 기능을 제공한다. URL , 요청 메서드 , 요청 헤더 , 요청 본문 등을 설정할 수 있다. 또한 응답 데이터를 다양한 방식으로 파싱하고 , 응답 상태 코드 , 헤더 등을 확인할 수 있다. Spring 5 버전부터는 RestTemplate 대신 WebClient를 사용하는 것을 권장하고 있다. ..