실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., - 강 www.inflearn.com 회원 기능 회원 등록 회원 조회 회원 등록 @Getter @Setter public class MemberForm { @NotEmpty(message = "회원 이름은 필수입니다. ") private String name; private String city; private String street; private String zipcode; } //Controller @PostMappi..
스프링 빈을 참조하는데 A와 B가 서로 참조하는 경우 스프링 빈 순환 참조 문제가 발생할 수 있다. *************************** APPLICATION FAILED TO START *************************** Description: The dependencies of some of the beans in the application context form a cycle: ┌─────┐ | userServiceImpl defined in URL [jar:file:/app.jar!/BOOT-INF/classes!/com/mesung/domain/service/impl/userServiceImpl.class] ↑ ↓ | orderServiceImpl (field pri..
더 자바, Java 8 - 인프런 | 강의 자바 8에 추가된 기능들은 자바가 제공하는 API는 물론이고 스프링 같은 제 3의 라이브러리 및 프레임워크에서도 널리 사용되고 있습니다. 이 시대의 자바 개발자라면 반드시 알아야 합니다. 이 www.inflearn.com Optional은 언제 사용되는 것인가? 아래 소스를 확인해보자. public class App { public static void main(String[] args) { OnlineClass spring_boot = new OnlineClass(1, "spring boot", true); Duration studyDuration = spring_boot.getProgress().getStudyDuration(); //출력을 하면 결과는 어떻..
더 자바, Java 8 - 인프런 | 강의 자바 8에 추가된 기능들은 자바가 제공하는 API는 물론이고 스프링 같은 제 3의 라이브러리 및 프레임워크에서도 널리 사용되고 있습니다. 이 시대의 자바 개발자라면 반드시 알아야 합니다. 이 www.inflearn.com 스트림 데이터를 담고 있는 저장소(컬렉션)이 아니다. 스트림이 처리하는 데이터 소스를 변경하지 않는다. List names = new ArrayList(); names.add("mesung"); names.add("ms"); names.add("11st"); Stream stringStream = names.stream().map(String::toUpperCase); //대문자로 변경하는 로직을 태워도 names의 근본 값들은 변경되지 않는다..
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., 본 www.inflearn.com 테이블 설계 1:N 관계에서는 N 쪽이 무조건 외래키가 존재한다. 일대다, 다대일 양방향 관계에서는 연관관계의 주인을 정해야하는데, 외래키가 있는 쪽을 연관관계의 주인으로 정하는 것이 좋다. Ex. 주문과 회원일 경우 주문쪽이 연관관계의 주인 연관관계의 주인쪽에 값을 세팅해야지만 값이 변경된다. 연관관계의 주인을 FK로 정해야하는데 그 이유는, 연관관계를 맺고 있는 두 테이블(회원과 주문)의 수정작업이 있..
Mock 객체 Stubbing Mock 객체의 행동이란, 리턴 값이 있는 메소드는 모두 Null 을 리턴하고 있다. Optional 타입인 경우 Optional.empty로 리턴 Primitive 타입은 모두 Primitive 값을 따르고 있다. Ex. Boolean인 경우 'false' / Integer 혹은 Long인 경우 0 Collection의 경우 모두 비어있는 Collection을 가지고 있다. Void 메소드의 경우 예외를 던지지 않고 아무 일도 발생하지 않는다. Stubbing이란, Mock 객체의 행동을 조작하는 것을 말한다. Mock객체의 when 메소드를 활용하여 Stubbing을 진행해보자. Ex. 리턴값이 있는 when 메소드 활용 1 @Mock MemberService membe..
등록, 수정, 삭제, 조회 화면 만들기 게시글 등록 화면 만들기 게시글 등록 화면을 만들기 위해 오픈소스 부트스트랩을 사용하겠다. 부트스트랩, 제이쿼리 등 프론트엔드 라이브러리를 사용할 수 있는 방법은 2가지가 있는데, 하나는 외부 CDN을 사용하는 것이고, 하나는 직접 라이브러리를 받아서 사용하는 것이다. 우리는 외부 CDN을 사용하여 프론트엔드를 구현하겠다. 실무에서는 외부 CDN 방식을 사용하지 않는다. 직접 구현해야지!! 레이아웃 방식을 사용하여 부트스트랩과 제이쿼리를 index.mustache에 추가해야한다. 레이아웃 방식 : 공통 영역을 별도의 파일로 분리하여 필요한 곳에서 가져다 쓰는 방식 해당 부트스트랩과 제이쿼리를 머스테치 화면 어디에서다 필요하므로 공통으로 사용되는 레이아웃 파일을 만들..
기본 페이지 만들기 index.mustache 이제 첫 페이지륻 담당할 index.mustache를 src/main/resources/templates에 생성해보자. 스프링 부트로 시작하는 웹 서비스 IndexController.java 이제 이 머스테치에 URL을 매핑해보자. URL 매핑은 당연히 Controller에서 해야하니 IndexController를 생성하자. @Controller public class IndexController { @GetMapping("/") public String index() { return "index"; } } 머스테치 스타터로 인해 컨트롤러에서 문자열 반환 시 앞의 경로와 뒤의 파일 확장자는 자동으로 지정이 된다. 앞의 경로는 src/main/resources..
- Total
- Today
- Yesterday
- Spring
- 생성자
- 스프링부트
- 이펙티브 자바
- 점층적 생성 패턴
- 복사 팩토리
- package-private
- 이펙티브자바
- @Lazy
- try with resources
- JPA
- springboot
- java
- mustache
- 빈 순환 참조
- 빌더 패턴
- 김영한
- 연관관계
- 정적팩터리메서드
- Effective Java
- 자바8
- 인프런
- java8
- 팩토리 메소드 패턴
- flatMap
- try catch finally
- effectivejava
- junit
- ifPresent
- jdk버전
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |