<청춘> 격정적으로 사는 것

밤을 새고 공부한 다음 날 새벽에 느꼈던 생생한 환희와 야생적인 즐거움을 잊을 수 없다

BOOK REVIEW 11

[실전 스프링 부트 워크북] 독서 후기 REVEIW

독서 기간 : 2021-08-10 ~ 2021-08-20 후기 입문자보다는 초보자/중급자를 위한 도서이다. 스프링이나 MVC 패턴을 잘 모르는 개발자가 읽기엔 다소 어려울 수 있다. 14장 안에 스프링 부트, 보안, 액추에이터, 배포, 클라우드 등 많은 내용을 넣으려다 보니 친절한 설명을 기대하기는 어렵다. 하지만 조금이나마 스프링에 대해 아는 독자가 읽는다면, 스프링 부트를 이해하는데 큰 도움이 될 것 같다. 우선, 스프링 부트의 가장 큰 장점인 자동 구성에 대해 잘 알려준다. 원래는 두루뭉실하게만 알고 있었는데, 자동 구성이 무엇인지 제대로 알 수 있었다. 또한 CLI로 스프링 부트에게 명령을 내리는 방법에 대해서도 자세히 나와있다. 하지만 나는 이 단원은 실습하지 않고 가볍게 읽고만 넘어갔다. 스프..

[실전 스프링 부트 워크북] 스프링 부트와 도커

Dockerfile src/main/resources/docker/Dockerfile 생성 FROM java:8 VOLUME /tmp ADD spring-boot-journal-0.0.1-SNAPSHOT.war journal.war ENV SPRING_PROFILES_ACTIVE docker EXPOSE 8443 ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/journal.war"] FROM java:8 OpenJDK 8 버전이 포함된 9 이미지를 가져온다. VOLUME 스프링 부트는 톰캣용 작업 폴더를 자동 생성하기 때문에 볼륨을 만들어야 한다. ADD 아티팩트ID + 버전 + 확장자 컨테이너 루트에 WAR/JAR 파일..

[실전 스프링 부트 워크북] CH12 스프링 부트 배포 - JAR 만들기 & WAR 만들기

1. 프로젝트를 단독형 앱 형태로 배포해보자 - JAR 만들기 스프링 부트로 실행 가능한 JAR 파일을 만드는 방법은 기본적으로 자바와 같다. 하지만 main 메서드가 위치한 클래스를 알아서 찾아내고 앱 생성에 필요한 모든 코드를 자동으로 생성하므로 훨씬 간단하다. 패키징 $ ./mvnw package 위의 메이븐 명령어를 실행하면 target/spring-boot-journal-0.0.1-SNAPSHOT.jar 파일이 생성된다. JAR 파일 안에서 의존체를 모조리 쓸어 담는다. 앱 관련 정보는 MANIFEST.MF 파일에 넣는다. 앱을 시작하는 메인 클래스는 Main-Class 및 Start-Class에 자동 세팅된다. 실행 만들어진 JAR 파일은 아래 명령으로 실행한다. $ java -jar targ..

[실전 스프링 부트 워크북] CH12 스프링 부트 배포 - SSL 기능 통합하여 배포하기

메이븐은 일정한 순서대로 빌드를 수행한다. 자바 소스 코드 컴파일 1의 결과물인 클래스 파일을 작업 폴더 target/classes로 옮김 단위 테스트 앱 실행 SSL(Secure Sockets Layer) 인터넷에서 데이터를 안전하게 전송하기 위한 인터넷 통신 규약 프로토콜 SSL 보안 소켓 계층을 이르는 말로, 인터넷에서 데이터를 안전하게 전송하기 위한 인터넷 통신 규약 프로토콜이다. 인터넷 프로토콜(Internet protocol)이 보안면에서 기밀성을 유지하지 못한다는 문 terms.naver.com 간단하게 말하면 들어오고 나가는 데이터들을 암호화하는 보안 기능을 갖고 있는 보안 인증서 라고 할 수 있다. HTTPS(Hypertext Transfer Protocol Over Secure Sock..

[실전 스프링 부트 워크북] CH5. 스프링과 스프링 부트

CH5 스프링과 스프링 부트 5.1 스프링 웹 애플리케이션 5.1.1 J2EE 웹 애플리케이션 5.1.2 스프링 MVC 애플리케이션 5.1.3 스프링 부트 웹 애플리케이션 5.2 스프링 부트에서 스프링을! 5.2.1 XML 구성 가져오기 5.3 스프링 부트에서 스프링 기술 활용 5.1 : 웹 애플리케이션을 개발하는 전통 스프링 MVC 방식과 새로운 스프링 부트 방식의 차이점 5.2 : XML 파일 또는 자바 구성 애너테이션으로 기존 스프링 앱을 스프링 부트에서 사용하는 방법 5.3 : 모든 스프링 기술은 @Enable 애너테이션만 있으면 간단히 불러 쓸 수 있다. 기존 스프링 앱 개발 방식과 스프링 부트의 새로운 개발 방식을 서로 비교하고 레거시 코드를 스프링 부트 앱으로 전환하는 문제를 다뤄보자. 5...

[실전 스프링 부트 워크북] 스프링부트 애플리케이션 구성 알아보기 / 스프링 부트 프로젝트 따라하기

프로퍼티 설정 예 간단한 프로젝트를 만들어 애플리케이션 구성을 자세히 살펴보자. 1. Spring Starter Project File > New > Other Spring Boot > Spring Starter Project 아래와 같이 Name, Type, Packaging 등을 입력하고 Next 스프링 부트 의존체는 넣지 않고 Finish 2. 스프링 부트 : 구성 프로퍼티 재정의 스프링 부트는 다음 순서대로 구성 프로퍼티를 재정의한다. 실행 명령어와 함께 전달한 인자 SPRING_APPLICATION_JSON JNDI (java:comp/env) System.getProperties() OS 환경변수 RandomValuePropertySource(random.*) JAR 패키지 외부의 프로파일 관..

[실전 스프링 부트 워크북] CH3 스프링 부트 자동 구성과 주요 기능

3.1 자동 구성 스프링 부트의 핵심 기능 : 자동 구성 스프링 부트의 핵심 기능은 (메이븐은 pom.xml, 그레이들은 build.gradle 파일 내용에 따라) 클래스패스, 애너테이션, 기타 자바 구성 클래스를 보고 적합한 앱으로 맞춤하는 자동 구성이다. 스프링 부트는 코드를 생성하지는 않지만, 실행과 동시에 일부 코드를 덧붙인다. org.springframework.web.bind.annotation.RestController 애너테이션 등 빠진 의존체를 하나씩 임포트한다. 클래스에 @RestController, 메서드에 @RequestMapping이 달려 있는 것을 보고 웹 스프링 부트 스타터가 필요함을 알아채고 코드에 @Grab("spring-boot-web-starter") 애너테이션을 붙인다..

[실전 스프링 부트 워크북] 스프링 부트 일기 / 스프링 부트 프로젝트 따라하기

스프링 부트 일기 (Spring Boot Journal) 개발자가 매일 자신이 한 일을 짤막하게 기록하는 간단한 일기 응용 프로그램 [프로젝트] STS에서 스프링 부트 일기 앱을 만들어보자. 1. Spring Starter Project File > New > Other Spring Boot > Spring Starter Project 아래와 같이 Name, Type, Packaging 등을 입력하고 Next 2. Spring Starter Project 마법사 - 스프링 부트 의존체 일기 앱에서 쓸 기술을 선택하는 과정이다. 아래와 같이 4개의 의존체를 담아주자. 데이터 - JPA 템플릿 엔진 - 타임리프(Thymeleaf) 웹 - Web 데이터베이스 - H2 3. 스프링 부트 프로젝트 폴더 구조 잠시..

[실전 스프링 부트 워크북] CH2 스프링 부트 앱 첫 개발

스프링 부트 앱은 CLI, 메이븐, 그레이들, 앤트 등으로 생성한다. 2.1 스프링 부트 CLI 설치 자바 1.6+ 설치 환경 변수 JAVA_HOME을 자바 SDK 설치 경로로 설정 SPRING_HOME 변수는 스프링 부트의 바이너리 배포 파일을 압축 해제한 경로로 설정 PATH 변수에 %SPRING_HOME%\bin 추가 Spring init 스프링 부트 프로젝트의 뼈대를 생성하는 명령어 $ Spring init myapp https://start.spring.io의 의 웹 서비스를 호출해서 myapp이라는 이름의 폴더를 만들고 maven 프로젝트(디폴트)를 생성한다. $ Spring init --build gradle myapp https://start.spring.io의 의 웹 서비스를 호출해서 m..