# 웹 서비스의 동작 원리
## 미션
헬로 월드가 나타나기까지의 과정을 설명하시오.
![홍팍-스프링-부트-입문-헬로-월드](http://drive.google.com/thumbnail?export=view&sz=w960&id=1ep1g9OCWKm_kEUOgy9Ym4Tn1y7dFpR23)
## 개발 환경
강의 영상의 개발환경은 다음과 같습니다.
- 스프링 부트: 2.4.1
- JDK: Java 8
- IDE: IntelliJ 2020.3
#### build.gradle
```
plugins {
id 'org.springframework.boot' version '2.4.1' // 스프링 부트 버전
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8' // JDK 버전
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()
}
```
#### 타 개발환경의 build.gradle 예
다음은 스프링부트 2.6.6 버전에 JDK 17 LTS를 적용한 build.gradle 예입니다. 강의 영상보다 최신 버전을 적용한 것이니, 설정에 참고하세요! (앞으로의 실습 자료는 부트 2.6.6, JDK 17을 기준으로 합니다)
```
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 버전(각자 설치된 자바 버전에 맞게 지정)
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()
}
```
## 17:46 헬로 월드 출력하기
#### ../resources/static/hello.html
```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>헬로 월드!</h1>
</body>
</html>
```
## 🔥 구글링 훈련하기
- 클라이언트와 서버
- localhost란
- IP주소 포트번호
- UTF-8이란