스프링 부트, 입문!

스프링 부트, 입문!

쉽고 빠르게 배우는, 스프링 부트 첫걸음!

02 개발 환경 만들기

# 개발 환경 만들기 ## 미션 --- 스프링 부트 개발 환경을 만들고, "헬로 월드"를 출력하시오. ![스프링부트-입문-헬로-월드](http://drive.google.com/uc?export=view&id=1NXQyCEgJBaDwC2RgYKIsfX9ewBUFLKxI) ## 개념 --- #### 스프링 부트 음식점을 창업하려면 요리에 필요한 가게를 준비해야한다. 크게 다음의 3가지가 필요하다. ![스프링부트-입문-jdk-ide-project](http://drive.google.com/uc?export=view&id=1NYavGDESkAwO-nEDzWbuPOw99EsLIvNM) - JDK: 자바 코드의 번역과 실행을 담당 - IDE: 개발 생산성을 높히는 프로그램(이클립스, 인텔리제이, STS, NetBeans, ...) - 프로젝트: 실제 동작하는 코드 묶음 그럼 하나씩 개발 환경을 준비해보자. ![스프링부트-입문-개발-환경-만들기](http://drive.google.com/uc?export=view&id=1NbbSRLp5612ywsTBFKkufb1Dgai_8VrQ) ## 실습 --- #### JDK 설치 for Windows 기존 JDK가 있는지 확인하자. 윈도우에서 명령 프롬프트를 실행한 뒤, `java -version`을 수행한다. ![스프링부트-입문-윈도우-JDK-설치-확인](http://drive.google.com/uc?export=view&id=1N_QLuAlHhzooUDsDu3e6VVudKO7U4n0i) 설치된 JDK가 없는 것을 확인 후, "Adopt OpenJDK 8" 버전을 설치한다. 상황에 따라 다른 버전을 사용해도 되나, 되도록 LTS 버전을 추천한다. 2022.01.03 현재 17버전까지 나와있다. (다운로드 페이지: https://adoptium.net/) ![스프링부트-입문-jdk-다운로드](http://drive.google.com/uc?export=view&id=1Nd0P4B7zz3SbBSpGs1YsOujBIP0CFUgz) 다운로드 완료 후, 설치를 진행한다. 설정값은 모두 기본 값으로 한다. 설치 완료 후 명령 프롬프트(cmd)를 재실행한 뒤, `java -version`을 입력하자. 설치 버전이 출력되면 성공이다. ![스프링부트-입문-jdk-설치-완료](http://drive.google.com/uc?export=view&id=1NesOe7apui94m48vgnZYWbtYNRaU2793) #### JDK 설치 for Mac 터미널 창에 `java -version`을 실행하여 JDK 설치 여부를 확인한다. ![스프링부트-입문-jdk-설치-확인-mac](http://drive.google.com/uc?export=view&id=1NjJYQjnSEopeoe41vYPcXpAY_vMc0H_J) 설치된 JDK가 없다면, "Adopt JDK 8" 설치를 진행하자. 이를 위해, Homebrew를 먼저 설치한다. 해당 도구를 사용하면, 다양한 프로그램를 터미널 명령어로 설치할 수 있다. 구글링해서 알아서 잘 설치한다. (Homebrew 사이트: https://brew.sh/index_ko) ![](http://drive.google.com/uc?export=view&id=1Nu7x-xbjt3sGns83CSjDXCvQwLsK6V6B) Homebrew 설치 완료 후, 다음 명령어를 통해 "Adopt OpenJDK 8"을 설치한다. ![스프링부트-입문-homebrew를-통한-jdk-설치-맥](http://drive.google.com/uc?export=view&id=1NvEkPwJ4aBWLqRbj7Af4ilUKJXqyc4CJ) 설치 완료 후, 다시 `java -version`을 입력한다. 설치 JDK의 버전이 출력되면 성공! ![스프링부트-입문-jdk-설치-확인-맥](http://drive.google.com/uc?export=view&id=1NyCwREK6UrLWkPvRtYZvsPuBy7OxvCKd) #### IDE 설치 "인텔리제이"를 구글링하여 다운로드 페이지(https://www.jetbrains.com/ko-kr/idea/download)로 이동한다. ![스프링부트-입문-인텔리제이-다운로드](http://drive.google.com/uc?export=view&id=1O-jouWQCxHpCJcoAyb9-9eF4RXg9v1MT) 파일 다운로드 후, 설치를 진행한다. 되도록 기본 설정으로 진행한다. 설치 완료 후, "IntelliJ IDEA"를 실행하면 다음 창이 뜬다. ![스프링부트-입문-인텔리제이-IDE-실행](http://drive.google.com/uc?export=view&id=1O-lk_ZsOpukKBL_CO-TO5JzjSFP6G3C0) #### 프로젝트 만들기 스프링 부트 프로젝트는 https://start.spring.io 에서 생성한다. 왼쪽 영역에서 프로젝트 기본 설정을, 오른쪽 영역에서 필요한 라이브러리를 추가할 수 있다. ![스프링부트-입문-프로젝트-설정-및-생성](http://drive.google.com/uc?export=view&id=1NU7gS_DLy-Iz_aBUuTk-lLN4CTHY4BmB) 설정을 마치고 하단 GENERATE 버튼을 클릭하면 프로젝트 파일이 받아진다. 다운로드 완료 후 압축을 푼 뒤, 인텔리제이로 프로젝트를 열자. ![스프링부트-입문-프로젝트-열기](http://drive.google.com/uc?export=view&id=1O2kyep4zqkclbiPPM58U_eQFFU_QZu_k) 처음 프로젝트를 여는 경우, 상황에 따라 2~10분 가량 대기해야한다. 외부 라이브러리 다운로드 및 인덱싱 시간이 필요하기 때문. ![](http://drive.google.com/uc?export=view&id=1O3ULq_kwdK9t_sjlXIghWt3LeiC9c2ue) 인덱싱 완료 후 스프링 부트를 실행하면, 스프링 부트 서버에 접속할 수 있다. ![스프링부트-입문-프로젝트-실행-메인-메소드](http://drive.google.com/uc?export=view&id=1O4fs-nUWPJdWjzSXjqMWKCQ-iCHmjZau) #### 헬로 월드! "헬로 월드" 페이지를 보기 위해, `src/main/java/resources/hello.html` 파일을 만든다. ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>헬로 월드!</h1> </body> </html> ``` 서버를 재시작하고, 브라우저를 통해 localhost:8080/hello.html을 접속하자. "헬로 월드"가 나온다면 성공! ![스프링부트-입문-헬로-월드](http://drive.google.com/uc?export=view&id=1NXQyCEgJBaDwC2RgYKIsfX9ewBUFLKxI) #### build.gradle Gradle로 작성된 스프링 부트 설정은 build.gradle 에 작성된다. 여기서 스프링 부트 및 JDK 버전이 지정된다. 자신의 개발환경에 맞게 값을 지정하면 된다. ``` plugins { id 'org.springframework.boot' version '2.6.6' // 스프링 부트 버전(변경 가능) id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' // JDK 버전(각자 설치된 자바 버전에 맞게 지정. Java 8은 1.8) repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-mustache' implementation 'org.springframework.boot:spring-boot-starter-web' runtimeOnly 'com.h2database:h2' testImplementation 'org.springframework.boot:spring-boot-starter-test' } test { useJUnitPlatform() } ``` ## 🔥 구글링 훈련하기 --- 다음 키워드를 구글링하여, 스스로 정리 및 문서화 하시오. - 자바 JDK란 - 자바 maven gradle - 이클립스 sts 인텔리제이