실전! 스프링 부트와 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..
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., 본 www.inflearn.com 테이블 설계 1:N 관계에서는 N 쪽이 무조건 외래키가 존재한다. 일대다, 다대일 양방향 관계에서는 연관관계의 주인을 정해야하는데, 외래키가 있는 쪽을 연관관계의 주인으로 정하는 것이 좋다. Ex. 주문과 회원일 경우 주문쪽이 연관관계의 주인 연관관계의 주인쪽에 값을 세팅해야지만 값이 변경된다. 연관관계의 주인을 FK로 정해야하는데 그 이유는, 연관관계를 맺고 있는 두 테이블(회원과 주문)의 수정작업이 있..
등록, 수정, 삭제, 조회 화면 만들기 게시글 등록 화면 만들기 게시글 등록 화면을 만들기 위해 오픈소스 부트스트랩을 사용하겠다. 부트스트랩, 제이쿼리 등 프론트엔드 라이브러리를 사용할 수 있는 방법은 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..
서버 템플릿 엔진과 머스테치 소개 이번에는 머스테치(Mustache)를 통해 화면 영역을 개발하는 방법을 배워보자. 템플릿 엔진이란 무엇인가? 웹 개발에 있어 템플릿 엔진이란, 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어를 이야기한다. 예전 스프링이나 서블릿을 사용했다면, JSP, Freemaker 등이 떠오를테고 요즘은 리액트, 뷰 등이 떠오를 것이다. 이것들 모두 결과적으로는 지정된 템플릿과 데이터 를 이용하여 HTML을 생성하는 템플릿 엔진이다. 다만 약간의 다른 점이 있는데, 서버 템플릿 엔진 : JSP, Freemaker 클라이언트 템플릿 엔진 : 리액트, 뷰 만약 아래와 같은 코드가 주어진다면 결과는 어떻게 되는 지 생각해보자. $(document).ready(fu..
JPA Auditing으로 생성시간/수정시간 자동화하기 보통 Entity는 해당 데이터의 생성시간과 수정시간을 포함하고 있다. 이런 정보는 추후 유지보수에 있어 굉장히 중요한 정보이기 때문이다. 이렇다 보니 DB에 삽입 및 갱신할 때는 날짜 데이터를 등록/수정하는 코드가 항상 들어가게 된다. //Ex. 생성일 추가 public void savePosts() { ... posts.setCreateDate(new LocalDate()); postsRepository.save(posts); ... } 하지만 이런 코드가 모든 테이블과 서비스 메소드에 구현해야하 한다면 중복이 발생하고 코드가 지저분해진다는 점이 발생하게 된다. 이런 문제를 해결하고자 나타난 것이 JPA Auditing이다. LocalDate 사..
스프링 부트의 스프링 MVC 설정 handlerMappings SimpleUrlHandlerMapping 파비콘 요청을 처리해주는 mapping RequestMappingHandlerMapping 애노테이션 기반의 MVC를 mapping order : 0 BeanNameUrlHandlerMapping SimpleUrlHandlerMapping resourceHandlerMapping src/main/resources/static 디렉토리 안에 들어있는 static한 리소스들에 캐싱 관련된 정보들이 추가된다. Ex. 리소스 변경이 이루어지지 않을 시 not modified라는 응답(304)을 보내, 브라우저가 캐싱하고 있는 리소스를 그대로 사용할 수 있도록 처리해준다. 스프링 부트가 설정해놓은 static..
WebMvcConfigurer 인터페이스 //0. 애플리케이션 컨텍스트 설정 public class WebApplication implements WebApplicationInitializer { @Override public void onStartup(ServletContext servletContext) throws ServletException { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.setServletContext(servletContext); context.register(WebConfig.class); context.refresh(); Dispatche..
- Total
- Today
- Yesterday
- 복사 팩토리
- 인프런
- 스프링부트
- 팩토리 메소드 패턴
- 연관관계
- try catch finally
- 이펙티브 자바
- 빌더 패턴
- 정적팩터리메서드
- 생성자
- flatMap
- 자바8
- jdk버전
- springboot
- Spring
- @Lazy
- effectivejava
- Effective Java
- try with resources
- junit
- package-private
- java
- 빈 순환 참조
- ifPresent
- mustache
- JPA
- 김영한
- java8
- 이펙티브자바
- 점층적 생성 패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |