이클립스 | 인텔리제이 | |
---|---|---|
장점 | - 무료 | - 플러그인 간편 설치 가능 |
- 여러 프로젝트 동시 관리 가능 | - 직관적이고 예쁜 UI | |
- 다양한 백엔드&프론트엔드 프로젝트 생성 | ||
- 자동완성, 소스코드 분석, 지능형리펙토링, 디버거, 테스트러너 기능 이클립스보다 우수 | ||
- 형상 관리를 git으로 하면 intelliJ가 편함 | ||
단점 | - 다른 IDE 툴에 비해 느림.(근소하게) | - 단축키, 툴 적응에 시간 필요 |
- 자바로 만들어져서 자바가상머신(JVM) 위에서 실행되므로 다른 IDE에 비해 속도가 느림 | - 기능이 제한된 무료 버전있지만, 유료인 버전을 사용해야 장점을 살릴 수 있음. | |
- 다양한 언어를 지향한다고 되어 있지만, JAVA를 제외한 언어는 개발하기 불편 |
<요 약>
인텔리제이 : 한 프로젝트만 한 윈도우에서 -> 한 프로젝트에 집중할 때
이클립스 : 여러 프로젝트 한 윈도우애서 -> 여러 프로젝트를 왔다갔다 할 때
.
.
난 굳이 여러 프로젝트를 이동할 필요가 없기 때문에 인텔리제이를 설치해 사용할 것이다!
설치 방법은 이미 잘 정리가 된 글들이 많기 때문에 링크를 첨부하겠다.
스프링 Initializr(이니셜라이저)를 사용해 애플리케이션 초기 설정을 해보자.
스프링 Initializr는 REST API를 사용하는 브라우저 기반의 웹 애플리케이션이며,우리가 원하는 기능을 구현할 수 있는 스프링 프로젝트의 구조를 생성해준다.
스프링 Initializr를 사용하는 방법은 여러 가지가 있다.
1. https://start.spring.io/ 의 웹 애플리케이션에서
2. 명령행에서 curl 명령을 사용해서
3. 명령행에서 스프링부트 CLI(Command-Line Interface)를 사용해서
4. Spring Tool Suite IDE를 사용해서 새로운 프로젝트를 생성할 때
5. IntelliJ IDEA IDE를 사용해서 새로운 프로젝트를 생성할 때
6. NetBeans IDE를 사용해서 새로운 프로젝트를 생성할 때
1,4,5번이 대중적으로 많이 사용되는데,
4번은 별도 툴 설치가 필요하고,
5번은 유료 버전인 인텔리제이 Ultimate 버전에서만 사용이 가능하다.
그러니 가장 빠르고 간단하게 해볼 수 있는
'1. https://start.spring.io/ 의 웹 애플리케이션에서'를 이용해서 프로젝트를 생성해보겠다.
(나머지 방법이 궁금하다면 걸어둔 링크를 참조하세요🙂)
참고 링크 : Gradle vs Maven Comparison
더 자세한 차이에 대해 다음 포스팅에서 정리할 예정이다
여기서 Kotlin과 Groovy언어에 대한 설명 또한 다음 포스팅에서~
현재 스프링 부트 버전은 다음과 같이 나온다.
크게 3.X버전과 2.X 버전으로 나뉜다.
- Spring Boot 3버전은 Java 17버전 이상이어야 한다.
(SNAPSHOP)이나 (M2)가 뒤에 붙은 버전들은 정식 릴리즈되지 않은 버전이므로, 불안정할 수 있다.
cmd에 java 버전을 확인해본다.
나는 java 11버전이 설치되어 있으므로, 2.7.15 버전 선택!
현재는 설치돼있는 jdk가 11버전이라 그거에 맞춰 다운로드했지만,
인텔리제이는 복잡하게 JDK를 다운로드받고 환경변수를 설정하는 과정을 거치지 않아도 되므로 다운받고 싶은 버전을 다운받고, 그에 맞는 jdk를 인텔리제이에서 다운로드받아 설정해줘도 된다!
참고링크 : IntelliJ JDK 설치 방법 및 버전 변경 방법
Group : 프로그래밍을 진행할 폴더인 src폴더 안에 1차적으로 파일을 묶어줄 폴더 구성.
Artifact : Application 바로 상위에 있는 폴더명. Artifact를 지정하면 Name에도 같은 값이 들어감.
Name : Application 이름 변경
Description : 프로젝트 설명 쓰는 곳
Package name : Group과 Artifact의 값을 통해 자동으로 지정되는 패키지 경로
Packaging : 프로그램 배포 파일 형식 선택. Jar는 라이브러리나 자바 애플리케이션을 배포할 때 사용하고, WAR는 웹 애플리케이션을 배포할 때 사용한다.
Spring Boot 자체가 웹 서버를 포함하니 Jar방식의 배포 방식 추천!
Java : 자바 11 버전 선택.
앞서 스프링부트 버전을 2.X버전으로 선택했기 때문에 자바 버전은 17 이하 버전이어야 한다.
.
.
현재까지 설정된 내용이다!
.
.
LiveReload란?
LiveReload는 코드 변경 시 자동으로 브라우저를 새로 고쳐서 변경 사항을 즉시 확인할 수 있게 해준다.
위와 같이 설정을 마쳤으면 GENERATE 버튼을 눌러 다운 받는다.
1. 다운 받은 압축파일을 푼다.
2. File > Open
3. 압축한 폴더를 푼 경로로 가서 폴더를 열어준다.
4. Trust 체크박스 선택 후 Trust Project 선택!
5. 다음과 같은 구조의 프로젝트가 열린다!
다음 구조는 전형적인 그래들 프로젝트 구조라고 할 수 있다.
애플리케이션 소스 코드는 src/main/java
- 자바 파일을 작성하는 공간, 자바 파일로는 스프링부트의 controller, dto, entity, service 등의 파일이 있다.
테스트 코드는 src/test/java
- 프로젝트에서 작성한 파일을 테스트하기 위한 테스트 코드를 작성하는 공간.
.
.
나머지 디렉터리와 파일은 자동 생성되거나 크게 중요하지 않은 것들이라 설명은 생략!
.
.
그럼 이제 생성된 프로젝트로 간단히 Hello World를 찍어보자!
클라이언트의 요청을 받아들이고 로직을 실행하는 컨트롤러를 생성하여 hello World를 찍어보겠다!
Controller : 화면(View)과 비즈니스 로직(Model)를 연결시키는 다리 역할. 쉽게 말하자면 화면에서 /aaa 로 가줘~ 하고 요청하면 주소를 받아들여 어디로 갈지 분석하고 맞는 길로 연결시켜주는 역할
더 자세한 내용인 MVC 패턴에 대해서는 다음 포스팅에서 설명할 예정이다.
// TestController.java
package com.example.demo;
public class TestController {
}
package com.example.demo;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
}
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("/hello")
public String helloWorld(){
}
}
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("/hello")
public String helloWorld(){
return "Hello, World!";
}
}
.
.
이제 준비는 끝났다!
.
.
.
-끝-
.
.
다음엔 MVC 역할과 흐름에 대해 정리해보겠다