Dev/SpringBoot 37

[Spring Boot] Controller에서 매개변수 넘겨받기

controller단에서 매개변수를 넘겨받는 방법을 한번 정리하고 넘어가고 싶어 포스팅을 남기게 되었다. 1. /test/{id} 로 넘겨받고 싶은 경우 - @PathVariable /* /test/{id} */ @GetMapping("/test/{id}") public String testControllerWithPathVariables(@PathVariable(required = false) int id){ return "hello id : " + id; } 2. /test?id=123으로 넘겨받고 싶은 경우 - @RequestParam /* /test/testRequestParam?id=123 */ @GetMapping("/test/testRequestParam") public String test..

Dev/SpringBoot 2022.07.18

JPA 사용해서 무한 계층 댓글 구현해보기 - 02

이전 포스팅 JPA 사용해서 무한 계층 댓글 구현해보기 (infinite depth) - 01 페이스북에서 보던 무한댓글(댓글의 댓글의 댓글의...) 은 어떻게 구현되는지 궁굼해서 이것저것 알아보다가 우연히 좋은 포스팅을 발견해서, 공부하고 응용해보는 작업을 해보려 한다. 1. 요구 dkyou.tistory.com 이전 포스팅에 이어 엔티티 개발을 시작해보자 3. 엔티티 개발 JPA를 까먹고 추가안했어서 추가해주었다. import lombok.*; import javax.persistence.*; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter @EqualsAnd..

Dev/SpringBoot 2022.01.20

JPA 사용해서 무한 계층 댓글 구현해보기 - 01

페이스북에서 보던 무한댓글(댓글의 댓글의 댓글의...) 은 어떻게 구현되는지 궁굼해서 이것저것 알아보다가 우연히 좋은 포스팅을 발견해서, 공부하고 응용해보는 작업을 해보려 한다. 1. 요구조건 및 개발 사항 정리 1. 엔티티 개발 하나의 테이블만 이용하여 구현 예정 self join 사용하여 무한 뎁스 구현 level 필드를 구현하여 depth에 따라 level별 분류하도록 구현 2. 리포지토리 개발 JpaRepository 사용하여 구현 3. DTO 개발 Entity는 순수하게 DB를 생성하고 DB하고만 소통하게 하기 위해 DTO구현 DTO는 비지니스 로직에서 사용하기 위해 구현 Entity에서 list로 담은 children을 DTO로 변환 구현 (stream, Collectors 사용) 4. 서비스..

Dev/SpringBoot 2022.01.20

34. [JPA] 02. JPA 시작

계속 이어서 강의 듣는 중입니다. 내용 JPA 실습 환경 구성 jpa를 실습하기 위한 환경을 구성하는 파트입니다. 강의에서는 다음과 같은 구성환경을 따르도록 권고하였습니다. h2 설치 메이븐 자바8 이상 persistence.xml 설정 저는 따로 persistence.xml을 설정해주지 않았습니다. 자바 스프링 부트에서는 starter-data-jpa를 로드하면 별도의 persistence.xml을 사용할 필요가 없기 때문입니다. 출처: https://wedul.site/511 [wedul] 데이터베이스 방언 JPA는 특정 데이터베이스에 종속되지 않습니다. 방언을 설정해주면, 그 방언을 기본으로 만들어서 SQL을 생성하는 방식입니다. application.properties에 설정해주면 됩니다. dri..

Dev/SpringBoot 2021.11.07

33. [JPA] 01. JPA 소개

김영한님의 JPA 강의를 듣고 정리해보는 시간을 가졌습니다. 내용 객체를 자바 컬렉션에 저장하듯이 DB에 저장할 수는 없을까? 고민하다가 나온 것이 JPA라고 합니다. JPA(Java Persistence API) ORM 기술의 표준이라고 합니다. 인터페이스의 모음입니다. (하이버네이트, EclipseLink, DataNucleus 등) ORM(Object Relational Mapping) 객체 관계 매핑입니다. 객체 - ORM - DB 사이에서 매핑해주는 기술입니다. 패러다임 불일치를 해결해준다고 합니다. 왜 JPA를 써야하는가? 객체 중심의 개발 생산성 CRUD가 쉽다. 유지보수 JPA에서는 필드만 추가하면 SQL은 JPA가 알아서 생성 후 처리한다. 패러다임 불일치 문제 해결 성능최적화 1차 캐시..

Dev/SpringBoot 2021.11.07

31. [springboot] Spring boot 기초 회원가입 예제 v2.0

1. 서론 회원가입v1.0 포스팅을 쓴지 6개월이 지났습니다. 어느덧 개발자로서는 2년차를 향해 달려가고 있습니다. 다양한 프로젝트를 경험하고, 여기저기서 주워들은 지식을 활용해서 더 깊게 정리하고 싶은 마음이 커졌습니다. 그래서 2.0 버전을 만들게 되었습니다. 이번 포스팅 역시 스프링 시큐리티를 이용하여 권한을 부여하고, 회원가입 처리를 하는 간단 예제를 만들어 볼 것입니다. 조금 더 세련된 기술이 적용되었고, v1.0보다 더 쉽게 로직을 따라갈 수 있도록 만들었습니다. 이번 프로젝트에서는 포스팅 겸 프로젝트도 만들어보았습니다. 최신화된 예제 코드는 여기에서 참조가능합니다. +) 이번 포스팅을 작성하기 위해 저만의 작은 목표를 정해보았습니다. 목표는 아래와 같습니다. 1. @Valid 2. @inte..

Dev/SpringBoot 2020.12.31

30. [springboot] WebJar를 이용해 CDN 대체하기

copycoding.tistory.com/280 [Maven] JQuery, BootStrap 추가 방법 JQuery나 BootStrap을 제작사 홈페이지에서 다운로드 받아 추가하는 방법 이외에 Maven에 dependency로 script만 추가하여 주면 프로젝트에 추가를 할 수 있습니다. 스크립트는 일반 예제에서 복사해 와도 copycoding.tistory.com cdn을 대체하기 위해 webjar를 이용해서 경로를 대체하려고 합니다.

Dev/SpringBoot 2020.11.29

29. [springboot] DevTools를 이용해 LiveReload해보자

brad903.tistory.com/entry/devtools-%EC%82%AC%EC%9A%A9%EB%B2%95 devtools 사용법 devtools 사용법 이번 글은 이 블로그의 글을 참고하여 작성되었습니다. 필요성 Spring framework에서 서버을 가동해놓고 코드를 변경해야 할 부분을 발견했다고 가정해봅시다. 이럴 경우 기존에는 코 brad903.tistory.com 이 글이 성공시켜주었기 때문에 이 글을 참조하면 좋을 것 같습니다. 1. pom.xml org.springframework.boot spring-boot-devtools runtime true 2. ctrl + alt + s 3. ctrl + shift + a > registry 클릭! 4. application.properti..

Dev/SpringBoot 2020.11.29