티스토리 뷰
[#1 기초개발환경 구성] Spring boot 기반 마이크로서비스 아키텍처(Microservices Architecture, MSA)
Mr.spock 2021. 3. 31. 08:21
#1 기초개발환경 JAVA(openjdk16), IDE(vscode), Spring-Initializr(maven, 2.3.9, .yml)
MSA로 개발을 하기 전 개발하려는 프로그램의 규모, 성격, 운영 방식 등을 고려해서 과연 MSA로의 개발이 적합한지, 적합하지 않은지를 판단하고 시작을 해야 한다. MSA로의 개발은 모놀리식 아키텍처(Monolithic Architecture, MA)에 익숙한 개발자가 바로 적응하기도 어려우며, 많은 서비스들을 관리하기 위한 자원(인적, 물적)의 소모가 훨씬 크기 때문에 MSA가 주목받고 있고 대세인 것처럼 보이더라도 모든 개발에 활용할 필요가 없다고 생각한다.
이번 프로젝트가 MSA에 적합한지 아직 결정을 내리지는 못했으나, 미리 준비를 하고자 글을 작성하는 것이며. MSA에는 구조상 여러 서비스들을 관리하고 호출하고 데이터를 주고받기 위한 무언가가 많이 필요 하다. 그러한 것들을 직접 다 구현할 수는 없고, 쉽고 빠르게 구조를 잡아갈 수 있는 Spring에서 제공하는 소스를 최대한 활용하고자 한다.
- Java(openjdk 16)
Java가 부분적으로 유료화되면서 대안으로 새로운 프로젝트에는 openjdk를 사용하며 다운로드는 아래의 주소에서 다운로드할 수 있다.
http://jdk.java.net.
접속 메인 페이지에서 아래와 같이 Ready for use에서 JDK 16을 선택 (강제는 아님, 나는 16 버전을 쓰는 거)
세부 페이지에서 본인 환경에 맞는 것을 다운로드, 나는 Windows 기반이라 Windows버전을 다운로드함
받아서 압축을 C:\Program Files\openjdk 에 풀고 JAVA_HOME으로 아래와 같이 환경 변수 설정
(압축 푸는 위치는 중요하진 않음 바꿔도 됨)
C:\Program Files\openjdk\jdk-16
path 부분에 %JAVA_HOME%\bin 추가
%JAVA_HOME%\bin
- IDE (Visual Studio Code)
Java는 그동안 Eclipse를 주로 사용했으나, python기반의 프로젝트를 하면서 vscode를 사용하다가 다시 써보니 무겁고 느리고 답답함이 있어 이제 이별할 때라는 생각이 들었다. Eclipse 외에 IntelliJ도 있지만, 유료라서 아직 마음에 준비가 되지 않아 이번엔 패스하고, Java 기반 프로젝트에 vscode를 한 번 적응해 보자는 마음으로 사용을 해본다.
Visual Studio Code를 다운로드하고 설치하는 과정은 생략하고. (쉽고, 자료가 많다) 다만 Spring boot로 개발을 하기 위한 확장팩과 기본 환경설정 몇 가지는 집고 넘어가기로 하자
확장팩은 몇 개 설치하지 않았는데 이것저것 설치되어있어서, 대부분 지우고 다시 테스트를 해보며 정리했다.
- Spring Boot Extension Pack : Spring 프레임워크에 적용할 유용한 기능이 들어있다고 하니 일단 설치
- Spring Initializr Java Support : vscode에서 Spring Initializr를 사용하기 위해(프로젝트 생성) 설치
- Java Extension Pack : 설치하면 아래와 같이 개발에 여러모로 도움을 주는 Extenstion이 설치
Language Support for Java By Red Hat
Debugger for Java
Java Test Runner
Maven for Java
Java Dependency Viewer
Visual Studio IntelliCode
일단 위의 3가지만 설치해도 build 하고 타이핑하고, 실행하고 등의 작업이 문제없이 잘 되는 것 같다.
[Ctrl + P] 입력 후 "Preferences: Open Settings (JSON)으로 들어가서 java.home을 아래와 같이 설정해주자
"java.home": "C:\\Program Files\\openjdk\\jdk-16
이렇게 되면 vscode설정도 준비가 된 것 같다. 나머지 설정은 프로젝트를 진행하면서 필요한 것을 확인하면서 추가해 보도록 하자
- Spring-Initializr (프로젝트 생성)
vscode에서 [Ctrl + Shift + P] 입력 후 "Spring Initializr" 입력 시 몇 가지 뜰 텐데, 나는 maven기반으로 진행을 할 예정이라 "Create a Maven Project.."를 선택한다.
이후 아래와 같이 선택
Spring boot Version : 2.3.9 (원하는 버전 선택)
Language : Java (언어는 당연 Java)
Group Id : com.example (해당 프로젝트에 맞게 입력)
Artifact Id : demo (해당 프로젝트에 맞게 입력)
Packaging Type : war (jar, war 개인 선택)
Java version : 16 (위에서 openjdk16을 세팅했으므로 16)
dependencies : Spring Web (상황에 따라 늘어날 것, 기본은 Spring Web)
선택 후 원하는 위치의 workspace선택 (해당 프로젝트 폴더 까진 지정하지 않아도 됨 위의 Artifact Id로 폴더가 생성됨)
해당 프로젝트로 vscode를 새로 오픈하여 F5를 누르고 아래처럼 Java를 선택하면 내장 톰캣을 이용해서 서버가 띄워 짐
정상 구동 됨을 확인
위의 설정들은 MSA환경을 구축할 때 수시로 Spring-boot기반으로 프로젝트를 생성 하며 Spring Config서버, Spring-Eureka Server, Zuul 등을 만들어야 하기 때문에 1편에서 다루었고, 2편에서는 그 중 가장 먼저 해야 될 것 같은 Spring Cloud Config서버 셋팅에 대해 다루어 봐야 겠다.
'development' 카테고리의 다른 글
- Total
- Today
- Yesterday
- ADL-LRS
- zookeeper
- MSA
- Eclipse
- 풍경그림
- 프레임워크
- zookeeper 클러스터
- 목탄
- windows환경
- 그림 그리기
- axios
- 초보
- 신세계 아카데미
- slueth
- 트랜잭션 추적
- Python
- 취미생활
- 카프카클러스터
- spring boot
- Kafka
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |