스프링부트: 97개의 글
| 스프링 게시판 만들기 - 부트로 쉽게 구현한 Spring 게시판 예제 git repository는 여기를 클릭하시면 됩니다. 스프링 게시판은 스프링 MVC로 스프링 부트에서 밀고있는 툴인 Thymeleaf를 사용하여 쉽게 만들 수 있습니다. REST API + SPA( React, Vue 등 )으로 만들 수 있지만 간단한 커뮤니티 사이트 구현을 위해서는 조금 과한 기술스택을 사용하는 것이 아닌 지 생각해 봐야 합니다. 스프링 MVC를 사용했을 때의 데이터 흐름은 아래의 링크를 참고하여 보시면 될 것 같습니다. [Spring Framework/Spring 입문 - 개념 및 핵심] - [Spring] 스프링(Spring) MVC 아키텍처/설계 구조 위에서 JSP를 Thymeleaf라고 생각하고 읽으시면 ..
| HtmlUnit이란 HtmlUnit은 프로그래밍적으로 HTML 사이트와 상호작용할 수 있게 하는 자바 오픈소스입니다. 테스트 프레임워크로서 생각할 수 있지만 브라우져와 프로그래밍적으로 상호작용 할 수 있게 하는 확장된 개념으로 받아들이는 것이 좋습니다. 스프링 4 이후로 스프링에 통합되어 MVC 테스트(특히 템플릿 뷰 테스트) 때 유용하게 쓰일 수 있습니다. http://htmlunit.sourceforge.net/ 공식 사이트를 참고하시면 좋습니다. | 샘플 코드 프로젝트 구조 | pom.xml | +---src | +---main | | +---java | | | \---com | | | \---tutorial | | | \---sptringbootmvc | | | SampleController...
| Thymeleaf란? Thymeleaf는 스프링 부트가 자동 설정을 지원하는 웹 템플릿 엔진입니다. HTML문서에 HTML5 문법으로 서버쪽 로직을 수행하고 적용시킬 수 있습니다. HTML 디자인에 전혀 영향을 미치지 않고 웹 템플릿 엔진을 통해 HTML을 생성할 수 있습니다. 독자적으로 HTML을 생성하기 때문에 테스트 시 렌더링 결과를 확인하기 좋습니다. | Thymeleaf 스프링 부트에서 사용하기 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---tutorial | | | \---sptringbootmvc | | | SampleController.java | | | SpringBootMvcApplication.java | | | ..
| 스프링 웹 MVC 인덱스 페이지 웰컴 페이지 : 웹 어플리케이션의 root(/)로 요청했을 때 보여주는 페이지입니다. index.html 을 만들고 resources 안에 두면 root(/) 요청 시 어플리케이션이 해당 html 파일을 반환합니다. 프로젝트 구조 | pom.xml +---src | +---main | | +---java | | | \---com | | | \---tutorial | | | \---sptringbootmvc | | | | SptringBootMvcApplication.java | | | | | | | | | | | | | \---resources | | | application.properties | | | | | \---static | | index.html index..
| 스프링 부트 정적 리소스 지원 스프링 부트에서 정적 리소스를 지원할 시 url의 root(/)에 자동적으로 정적 리소스를 매핑 할 수 있습니다. 프로젝트 구조 | pom.xml +---src | +---main | | +---java | | | \---com | | | \---tutorial | | | \---sptringbootmvc | | | | SptringBootMvcApplication.java | | | | | \---resources | | | application.properties | | | | | \---static | | hello.html hello.html Mobile Hello Static Resource AHAHA LOL http://localhost:8080/hello.h..
| 스프링 부트에서 스프링 웹 MVC 컨트롤러 구현 프로젝트 구조 | pom.xml +---src | +---main | | +---java | | | \---com | | | \---tutorial | | | \---sptringbootmvc | | | | SptringBootMvcApplication.java | | | | | | | \---user | | | UserController.java | | | | | \---resources | | application.properties | | | \---test | \---java | \---com | \---tutorial | \---sptringbootmvc | \---user | UserControllerTest.java 테스트 코드 @RunWi..
| 스프링부트 테스트 ( Spring Boot Test ) 스프링부트에서는 @SpringBootTest 어노테이션을 통해 스프링부트 어플리케이션 테스트에 필요한 거의 모든 의존성을 제공해 줍니다. 또한 @SpringBootTest 어노테이션 내에 어떠한 테스트 환경으로 테스트를 실행할 것인지를 따로 지정할 수 있습니다. 스프링부트 테스트를 진행하기 위해서는 먼저 다음과 같이 의존성을 추가해야 합니다. org.springframework.boot spring-boot-starter-test test 테스트를 실행하기 위해 다음과 같이 간단한 컨트롤러와 서비스를 작성한 다음 스프링부트 어플리케이션이 실행될 메인 진입점이 될 클래스를 작성합니다. 아래는 테스트 해보고자 하는 프로젝트 구조를 나타낸 것입니다. ..
| 스프링 부트 로깅( Spring Boot Logging ) 스프링 부트에서는 로깅 설정을 자동적으로 지원합니다. 다음과 같이 slf4j 로깅 파사드( 로깅 모듈을 추상화한 것 )를 통해 logback 을 기본적으로 지원하고 있죠. @Component public class AppRunner implements ApplicationRunner { // slf4j 로깅 파사드를 통해 logback 로깅 모듈을 지원 private Logger logger = LoggerFactory.getLogger(AppRunner.class); @Override public void run(ApplicationArguments args) throws Exception { logger.info("=============..
| 스프링 부트 프로파일 (Spring Boot Profile) 스프링 부트에서는 프로파일(Profile)을 통해 스프링 부트 애플리케이션의 런타임 환경을 관리할 수 있습니다. 예로들어 어플리케이션 작동 시 테스트 환경에서 실행할 지 프로덕션 환경에서 실행할 지를 프로파일을 통해 관리할 수 있죠. 다음은 프로덕션과 테스트 환경을 각각 외부 설정 파일을 통해서 관리하는 예시입니다. 눈여겨 봐야할 것은 spring.profiles.active 키를 통해 어떤 프로파일을 활성화할 것인지를 정하는 부분입니다. 또한 아래 코드에서 @Profile을 통해 프로파일 기능을 구현하는 것을 볼 수 있습니다. @Profile에 인자로 들어가는 값은 프로파일이 현재 인자값과 일치할 시 아래 코드에서 명시한 스프링 빈을 등록..
| 스프링 부트 외부 설정 스프링 부트는 외부 설정을 통해 스프링 부트 어플리케이션의 환경설정 혹은 설정값을 정할 수 있습니다. 스프링 부트에서 사용할 수 있는 외부 설정은 크게 properties, YAML, 환경변수, 커맨드 라인 인수 등이 있습니다. | properties 파일을 통한 설정 properties 파일을 통해서 다음과 같이 스프링 부트 어플리케이션의 외부 설정을 할 수 있습니다. properties의 값은 @Value 어노테이션을 통해 읽어올 수 있습니다. # application.properties # 스프링부트가 구동될 때 자동적으로 로딩하는 프로퍼티 파일 # 스프링부트의 규약이라고 볼 수 있음 saelobi.name=KBS saelobi.age=${random.int} # 플레이스..