-
SpringBoot 기초 배우기 #2 (환경설정 - 1)back-end/SpringBoot 2022. 2. 21. 10:27728x90
JDK를 설치하고 개발도구는 인텔리제이 IDEA를 사용하겠다.
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
자신의 PC환경에 맞는 설치 파일을 다운로드하여 기본값으로 설치한다.
IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE
www.jetbrains.com
인텔리제이 무료버전을 사용하면 자바 개발만 지원한다. 하지만 스프링 부트는 임베디드 톰캣을 지원하기 때문에 스프링 부트를 실행시킬 수 있다.
다만 프론트엔드 관련 템플릿을 지원하지 않아 관련 기능은 Atom, Sublime Text 등 다른 도구를 사용해야 한다.스프링 이니셜 라이저는 원하는 언어, 빌드 도구, 스프링 버전, 의존성을 체크하여 빠르게 스프링 부트 프로젝트를 생성한다.
Gradle Project, Java, SpringBoot 버전을 선택한다. Group과 Artifact에 원하는 이름을 적고 Dependencies에 Spring Web을 추가한다. GENERATE 버튼을 눌러 원하는 경로에 압축파일을 다운로드하고 압축을 해제한다.
Ctrl + Shift + A를 눌러 Structure을 검색한다.
Project SDK에서 New를 선택하여 설치한 JDK 경로를 설정한다.
초기 화면에서 Open 버튼을 누르고 다운로드하였던 demo 폴더를 선택한다.
CommunutyApplication.java로 들어가 코드를 수정해보자.
경로를 잘 확인하자 communityApplication.java
@RestController @SpringBootApplication public class CommunityApplication { public static void main(String[] args) { SpringApplication.run(CommunityApplication.class, args); } @GetMapping public String HelloWord() { return "Hello World"; } }
- @RestControllor : @Controller와 @ResponseBody를 합쳐놓은 역할을 수행한다.
- @GetMapping : Get 방식으로 경로를 받는 매핑 어노테이션. value 값을 별로도 지정하지 않으면 기본값으로 빈 값("")이 들어간다.
인텔리제이 커뮤니티 버전에서는 톰캣 실행 플러그인, 뷰 텀블러 도구, 기타 웹 관련 기능을 지원하지 않는다.
하지만 자바를 실행하는 것처럼 CommunityApplication.java의 메인 메서드를 실행하면 스프링 부트를 실행할 수 있다.
스프링 부트는 따로 WAS(톰캣)을 설치하지 않아도 실행할 수 있기 때문.
메인 메서드 실행하기 localhost:8080에 접속하면 Hello World가 제대로 출력되고있다. gradle을 설치해본다.
Gradle | Installation
Install the Gradle build tool on Linux, macOS or Windows, either manually or using a package manager like SDKMAN! or Homebrew.
gradle.org
압축파일형태로 다운받는다. 공식 사이트에 언급된 대로 C드라이브에 Gradle 폴더를 하나 생성 후 그 안에 다운로드한 파일을 압축 해제한다.
환경변수를 설정하여 준다.
시스템 변수 편집으로 GRADLE_HOME을 생성한다. 변수 값은 gradle이있는 폴더 위치 사용자 변수에서 PATH 값을 추가하여준다. gradle -v로 버전을 확인 그래 들 멀티 프로젝트를 활용하면 여러 프로젝트를 마치 하나의 프로젝트처럼 사용할 수 있다.
예를 들어 커뮤니티 서비스를 개발한 다 고하자.
웹, API, 배치, 기타 프로젝트가 존재하고 모두 공통된 도메인이나 유틸리티를 사용할 것이다.
만약 멀티 프로젝트로 구성하지 않으면 도메인에 칼럼이 추가되거나 변경되었을 때 모든 프로젝트를 일일이 수정해주어야 한다.
멀티프로젝트로 구성하면 이러한 중복 코드를 제거할 수 있어 실수가 번거로움을 줄일 수 있다.
멀티 프로젝트를 구성해보자.
1. settings.gradle 파일은 그래 들 설정 파일이다.
특정한 명령 규칙에 따라 그 래들에서 자동으로 인식하여 설정된다.
먼저 settings.gradle 파일에 다음과 같이 루트 프로젝트를 추가한다.
rootProject.name = 'community' rootProject.name = 'demo'
이제 테스트로 사용할 demo-web 모듈과 공용으로 사용할 demo-domain 모듈을 생성한다.
2. 먼저 demo-web 모듈을 생상 한다.
File → New → Module → Gradle → Java 이후 Next Parent와 Name을 설정 후 완료 생성된 demo-web 모듈에는 build.gradle 파일만 존재한다.
다음과 같이 기본 패키지 경로를 수동으로 생성한다.
- src/main/java : 자바 소스 경로
- src/test/java : 스프링 부트의 테스트 코드 경로
- src/main/resoureces/static : static 한 파일(css, image, js 등)의 디폴트 경로
- src/main/resoureces/templates : thymeleaf, freemarker 및 기타 서버 사이드 템플릿 파일의 경로
demo-web 위와 같이 모듈을 생성하면 settings.gradle에 자동으로 생성된 파일명이 include 된다.
rootProject.name = 'demo' include 'demo-web'
demo-web 모듈과 같은 방식으로 demo-domain 모듈도 생성한다.
리소스 파일을 갖고 있지 않기 때문에 리소스 패키지를 따로 생성하지 않았다.
demo 프로젝트 멀티 모듈 완성 스프링 부트 프로퍼티 파일은 설정 관련 및 기타 정적인 값을 키값 형식으로 관리한다.
이 파일을 사용하면 기존 스프링 프레임워크의 복잡한 XML 설정을 파일 하나로 설정할 수 있다.
만약 기본 8080번에서 80번으로 서버 포트 설정을 변경한다면
src/main/resources/ 에있는 application.properties 파일에 server.port값을 80으로 입력하면 된다.
server.port: 80
최근에는 Properties파일보다 YAML 파일을 더 많이 사용한다.
기존의 application.properties를 삭제하고 같은 위치에 application.yml을 생성한 후 다음과 같이 변경한다.
server: port: 80
공부 목적으로 로컬에서만 개발한다면 프로파일에 따라 프로퍼티를 나눌 필요는 없다.
실제 서비스를 개발한다면 로컬 DB, 개발 DB, 운영 Db의 설정 값이 모두 다르다.
이런 경우 프로파일에 따라 프로퍼티를 다르게 설정해야 한다.
server: port: 80 --- spring: profiles: local server: port: 8080 --- spring: profiles: dev server: port: 8081 --- spring: profiles: real server: port: 8082
728x90'back-end > SpringBoot' 카테고리의 다른 글
SpringBoot 게시판 구현 #1 (스프링 부트 웹) (0) 2022.02.22 SpringBoot 기초 배우기 #5 (스프링 부트 테스트) (0) 2022.02.22 SpringBoot 기초 배우기 #4 (자동 환경 설정 이해하기) (0) 2022.02.22 SpringBoot 기초 배우기 #3 (환경설정 - 2) (0) 2022.02.22 SpringBoot 기초 배우기 #1 (0) 2022.02.21