전체 글(278)
-
[E-3-2] 게시글 등록 화면
src/main/resources templates layout header.mustache 더보기 페이징 로딩속도를 높이기 위해 css는 header에, js는 footer에 놔둔다. HTML은 위에서부터 코드가 실행되기때문에 head가 실행되고나서야 body가 실행된다. 특히 js용량이 크면 클수록 body 부분의 실행이 늦어지기때문에 js는 body 하단에 둬서 화면이 다 그려진 뒤에 호출하는 것이 좋다. src/main/resources templates layout footer.mustache 더보기 src/main/resources templates index.mustache 더보기 {{>layout/header}} 스프링 부트로 시작하는 웹 서비스 Ver 2.0 글 등록 {{>layout/f..
2020.01.31 -
[E-3-1] 머스태쉬 설치 및 기본 페이지 작성
머스테쉬 : 여러 언어들을 지원하는 가장 심플한 템플릿 엔진 https://mustache.github.io/ {{ mustache }} Logic-less templates. Available in Ruby, JavaScript, Python, Erlang, Elixir, PHP, Perl, Perl6, Objective-C, Java, C#/.NET, Android, C++, CFEngine, Go, Lua, ooc, ActionScript, ColdFusion, Scala, Clojure[Script], Fantom, CoffeeScript, D, Haskell, XQuery, ASP mustache.github.io 템플릿 엔진은 가능한 로직을 없애고 화면 역할에만 충실해야한다. 머스태쉬 플러그인..
2020.01.31 -
[E-2-5] JPA Auditing 으로 생성시간 및 수정시간 자동화하기
단순한 시간을 등록 / 수정하는 코드가 여기저기 들어가면 귀찮고, 코드가 지저분해지기때문에 JPA Auditing로 해결한다. 자바8 이상에서는 기본날짜타입인 Date 문제점을 해결하고 LocalDate / LocalDateTime이 등장했다. src/main/java com.minokuma.book.springboot domain BaseTimeEntity.java 더보기 package com.minokuma.book.springboot.domain; import lombok.Getter; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedDate; imp..
2020.01.31 -
[E-2-4] 등록 / 수정 / 조회 API 생성
API를 만들려면 총 3개의 클래스가 필요 1) Request 데이터를 받을 Dto 2) API 요청을 받을 Controller 3) 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service [*] 서비스단에서 비지니스 로직을 처리하면 안된다. 서비스단에서는 트랜잭션, 도메인 간 순서 보장 역할만 담당 웹 레이어 : 외부 요청과 응답에 대한 영역 뷰 템플릿 영역 필터 인터셉터 컨트롤러 어드바이스 서비스 레이어 @Service 에 사용되는 서비스 영역 일반적으로 컨트롤러와 Dao의 중간 영역 @Transactional 이 사용되어야 하는 영역 리포지토리 영역 (Dao 영역) 데이터베이스와 같이 데이터 저장소에 접근하는 영역 Dtos (Dto 단) 계층 간에 데이터 교환을 위한 객체 (Dto) 뷰 템플릿 ..
2020.01.31 -
[E-2-3] 스프링 부트에서 JPA로 데이터베이스 조작
프로젝트에 Spring Data Jpa 적용 의존성 등록 build.gradle 더보기 buildscript { ext { springBootVersion = '2.1.7.RELEASE' } repositories { mavenCentral() jcenter() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' group 'com...
2020.01.30 -
[E-2-3] HelloController 롬복으로 전환
src/main/java com.minokuma.book.springboot.web.dto HelloResponseDto.java 더보기 package com.minokuma.book.springboot.web.dto; import lombok.Getter; import lombok.RequiredArgsConstructor; @Getter @RequiredArgsConstructor public class HelloResponseDto { private final String name; private final int amount; } 테스트 코드 작성 src/test/java com.minokuma.book.springboot.web.dto HelloResponseDtoTest.java 더보기 pac..
2020.01.30