Sp-re-ing
최근 몇 년 동안 Node.js로 API 서버를 만들어왔습니다.
Node.js은 작고 가벼우며, 빠르게 제품을 만들어낼 수 있습니다.
하지만 전 다시 Spring을 공부하고자 합니다.
Node.js와 Java Spring 중에 왜 Java Spring을 선택했는지에 대해서 충분히 생각을 정리한 후에 공유하겠습니다.
‘다시, Spring’이라는 의미로 ‘Sp-re-ing’을 시작합니다.
이 연재에서는 JDK와 IDE 설치부터 Spring Boot를 이용해 간단한 게시판 API 서버를 만드는 과정까지 기록으로 남길 예정입니다.
제가 마지막으로 다뤘던 버전은 Spring3입니다.
겨우 3년의 시간이지만 당장 ‘Hello, World!’ 한 줄 띄우는 것도 어색할만큼 많은 변화가 있었던 것 같습니다.
만약 내용에 오류가 있다면 언제든지 댓글을 부탁드립니다.
개발 환경 설정
Java Spring을 개발하기 위해서는 엄청난 도구나 복잡한 설정 과정이 필요하진 않습니다.
개발에 필요한 몇 가지 도구를 알아봅니다.
JDK (Java Development Kit)
JDK는 Java를 이용한 개발을 위해 반드시 필요한 도구입니다.
독특한 점은 JDK가 제공자에 따라 서로 다른 버전이 제공됩니다.
대표적으로 Oracle 버전과 OpenJDK가 있습니다.
Oracle에서는 개인에 한해 JDK SE를 무료로 제공하고 있습니다.
만약 상용 서비스를 개발한다면 유료로 라이센스를 구입해야 합니다.
OpenJDK는 상용 서비스에도 무료로 사용할 수 있습니다.
개인의 신념과 취향, 용도에 따라 이용하면 됩니다.
전 OpenJDK 1.8.0 버전을 이용합니다.
IDE: IntelliJ IDEA
Jetbrain사에서 개발하여 전세계적으로 많이 사용되는 통합 개발 환경입니다.
소개 페이지에 의하면 '인체공학적 디자인'이 적용되었다고 합니다.
그저 소개용 멘트만은 아닌 것이 상당히 많은 작업을 키보드 위에서 수행할 수 있어서 편리하고, UI가 아름답습니다.
만약 학생이라면 학교 Email로 인증한 후 일정 기간 동안 무료로 사용해 볼 수 있습니다.
만약 IntelliJ 대신 Eclipse를 이용하신다고 해도 개발에는 전혀 문제가 없습니다.
Hello, World!
그놈의 Hello, World!는 질릴 정도로 많이 출력해보았지만, 막상 새로운 언어를 시작할 때 적당한 다른 상용구가 생각나지도 않습니다.
그렇기 때문에 우린 또 Hello, World!를 출력합니다.
IntelliJ 최초 설정
IntelliJ를 처음 실행하면 최초 설정을 진행해야 합니다.
이미 설정을 진행하셨다면 이 섹션은 생략하셔도 됩니다.
기존 설정이 있다면 불러올 것인지 물어봅니다.
처음 설치했다면 기존 설정이 없기 때문에 그냥 다음 단계로 진행합니다.
테마를 취향껏 선택할 수 있습니다.
전 어두운 테마를 선택합니다.
Shell에서 IntelliJ를 실행할 수 있도록 스크립트를 생성할지 여부입니다.
기호에 맞게 설정합니다.
IntelliJ는 Java에 최적화 된 IDE답게 Java의 다양한 기능을 활용할 수 있는 플러그인을 제공합니다.
Swing, Android 등 지금 당장 필요하지 않은 플러그인은 선택을 해제합니다.
만약 필요없는지 판단되지 않는다면 그냥 활성화 한 채로 넘어가도 문제 없습니다.
추천하는 플러그인이 표시됩니다.
필요한 도구를 설치하고, Start using IntelliJ IDEA를 누르면 설정이 완료됩니다.
프로젝트 생성
IntelliJ를 실행하고, Create New Project 버튼을 선택합니다.
좌측 프로젝트 유형에서 Spring Initializr를 선택하고 Next를 누릅니다.
프로젝트 정보를 입력합니다.
- Group은 보통 대표 도메인의 역순을 입력합니다. (홈페이지가 http://jetalab.net이라면 net.jetalab. 기본값을 유지해도 무방합니다.)
- Artifact는 제품의 이름을 입력합니다.
- Type은 Gradle Project를 선택합니다. (Maven도 실무에서 많이 쓰이고 있습니다.)
- Packaging은 Jar를 선택합니다. (보통 Jar는 Spring Boot의 내장 WAS를 이용하여 실행할 때, War는 원하는 WAS에 배포할 때 사용합니다.)
나머지 설정은 기본값을 유지하고 Next를 선택합니다.
의존성을 지정합니다.
아래 스크린샷과 같이 선택합니다.
- Developer Tools > Spring Boot DevTools: Spring개발에 유용한 도구를 제공해줍니다.
- Developer Tools > Lombok: Annotation을 이용해 단순 반복 코드를 줄일 수 있습니다.
- Web > Spring Web: Spring Framework입니다.
- Template Engines > Thymeleaf: Server-side Java 템플릿 엔진입니다. 간편하게 동적 웹페이지를 구현할 수 있습니다.
프로젝트 이름과 저장 경로를 지정합니다.
잠시 후 생성이 완료되면 IDE 화면이 표시됩니다.
축하합니다, 프로젝트 생성이 완료되었습니다!
프로젝트 환경 구성
IntelliJ는 Gradle을 인식하고, 의존성 패키지를 자동으로 설치할 수 있습니다.
프로젝트가 생성되면 우측 하단에 아래 스크린샷과 같이 정보가 표시됩니다.
Import Gradle Project를 선택하면 의존성 패키지가 설치되고 Gradle 프로젝트로 인식됩니다.
잠시 후 IDE 화면 우측에 Gradle 프로젝트 정보가 표시됩니다.
Hello, World! 출력
/src/main/resources/static/index.html에 아래 코드를 입력합니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Hello, World!</title>
</head>
<body>
<p>
<span>Hello, World!</span>
</p>
</body>
</html>
IDE 우측 상단의 ▶ Run 버튼을 누르거나 키보드의 ^R(Control + R) 버튼을 눌러서 서버를 실행합니다.
하단에 Console 출력이 표시됩니다.
서버가 실행되면 웹브라우저에 localhost:8080으로 접속하여 제대로 출력되는지 확인합니다.
첫 Spring Boot 프로젝트가 완성되었습니다.
예제 코드
본 포스트의 예제 코드는 GitHub에 공개되어 있습니다.
https://github.com/jETA-Kor/sp-re-ing/tree/master/lab01