뇌운동일지

[MSA실습] 개발환경설정 밎 실습예제 (팀뷰어 활용, vscode, springboot, eureka) 본문

오리너구리의 오리발질/MSA

[MSA실습] 개발환경설정 밎 실습예제 (팀뷰어 활용, vscode, springboot, eureka)

purpleduck 2021. 3. 12. 19:28

1. 팀뷰어로 원격 컴퓨터 제어

(사용해야하는 PC 사양이 적당하지 않아서 사용하려는 방법)

m.blog.naver.com/PostView.nhn?blogId=ocllos&logNo=220631985545&proxyReferer=https:%2F%2Fwww.google.com%2F

사용자 계정에 컴퓨터 등록해서 사용할 것

(집에 켜둔 PC가 자동종료되어 팀뷰어에 연결할 수 없었다. 내일은 자동종료 설정을 꺼두고 오자. -> 결국 안썼다. )

2. IDE 를 어떤 것을 사용할 것인가?

Eclipse, IntelliJ, VScode 중에 고민했다.

태블릿에서 개발해야 하는 경우가 있어, 무거운 이클립스는 싫었다. ( 갑자기 꺼지는 불상사가 발생할 수 있다 )

vs code를 선택했다. (vs code 에서 여러 프로젝트 동시에 못여는거 생각못함. 다음엔 IntelliJ 쓸 것)

vs code는 extension pack 을 따로 설치해주어야 하는데, 이미 실습하려는 PC 에 몇가지 extension 이 설치되어있는 상태라 나는 gradle extension pack 만 추가로 설치했다. (설치 전, vs code 업데이트도 필요했다. 실행해보려고 하니, 실행이 안되어서 업데이트하게 되었다. )

3. 본격적인 실습

여러 예제를 찾아본 결과, Spring Boot 를 이용한 MSA 구축을 위해서는 Eureka 와 Zuul 이 기본이 된다고 판단했다. 따라서 Eureka 와 Zuul 을 테스트해볼 수 있는 가장 간단한 예제부터 구현해보았다.

(예제보고 그대로 하려고 했는데, 설명이 그리 친절하지 않아서 연구해가며 만들었다. )

 

1개의 Eureka Server 와 2개의 Eureka Client 로 구성 

3-1. Eureka Server 구현

MSA를 테스트해보는 것이 목적이므로, 프로젝트 생성은 간단히 해결하기로 했다.

아래에서 생성하면 된다.

start.spring.io/

Maven Project 와 Gradle Project 중 Gradle 을 선택했다. 
선택한 이유는 Gradle 로 구현하는 것이 더 간단하다는 단순한 이유이다. 

사실 둘 다 쓸 줄은 아는데, 둘 다 제대로 알고 쓰는 것은 아니다. ( 팀프로젝트나 업무 진행 시, Maven 으로 정해져 있는 경우가 많아, maven 을 사용한 적이 더 많기는 하다. 그러나 혼자서 개인프로젝트를 해야하는 경우, 1순위가 아닌 요소에 에너지를 할애하기 싫어 Gradle을 사용한 경우가 많다. )

Maven 의 lifecycle 의 경우, 따로 공부해본적이 몇 번 있다. 그러나 그 때 뿐이고, 일주일 내에 금세 까먹었다. 

Maven 과 Gradle 모두 나중에 다시 공부해봐야겠다. 

ADD DEPENDENCIES 를 눌러서 Eureka Server 를 추가해준다.

그리고 Project Metadata 도 수정해주었다. (안해도됨)

GENERATE 하면, earlgrey.zip 파일이 다운로드된다.

.zip 파일을 압축해제해서 원하는 경로에 넣어준다.

나는 새폴더를 만들어서 [C:\duckduck\earlgrey] 이 경로에 넣었다.

vs code에서 [파일 > 폴더 열기]

성공적.

이제 application.yml 을 작성해주어야 한다.

경로는 이곳에 있다.

설정파일의 포맷은 다양한데(.properties, .yml, .ini 등), 이 부분도 하나의 학습주제가 된다. ( 나중에 필요해지면 공부해보자. )

이름바꾸기를 이용하여 포맷까지 수정할 수 있다.

application.yml 

spring:
  application:
    name: eureka-server
server:
  port: 8761
eureka:
  client:
    register-with-eureka: false
    fetch-registry: false

 

 

수정 후, 실행하려고 했더니 Configure Java Runtime 창이 뜨며, JDK install 이 필요하다는 메시지가 나왔다. 원래 로컬 환경에서 JDK 8 을 사용했었는데, 내가 initialize 할 때 JDK 11 을 선택해서 이런 일이 일어났나보다. 

사실 그냥 initialize를 JDK 8 로 다시 하는 것이 더 빠를 것 같지만, 이미 다운로드 중이니까 기다리도록 한다. ( .msi 파일과 .exe 파일의 차이점에 대해 나중에 알아보면 좋을 것 같다. )

팀뷰어로 연결해서 실행해보기로 하고, 코드나 만들걸 그랬다. 너무 오래기다려야 한다......

거의 1시간을 기다렸고, 실행하니 원하는 결과가 나왔다.

3-2. Eureka Client 구현 (SERVICE-A)

Dependencies 에 Eureka Discovery Client 와 Spring Web 을 추가해주었다. ( 참고한 예제에는 Spring Web 대신 Spring Web Starter를 사용하였으나, 내가 Search 했을 때에는 그러한 Dependency 가 존재하지 않았다. )

GENERATE 하여 프로젝트 여는 법은 서버와 같다.

경로는 [C:\duckduck\client] 로 했다.

 

Eureka 서버가 실행중인 상태에서 Eureka 클라이언트를 실행한다.

실행결과

Eureka Server 가 Eureka Client 를 호출하는 부분까지 구현할 수 있었다. 

 

3-3. Eureka Client 구현 (SERVICE-B)

 

 

두 개의 client 가 등록되어있다. 

그러나 서비스 간 호출 단계에서 막힘. ( ribbon은 다른 예제에서 먼저 해보자. )

 

여기까지의 실습코드 

github.com/earlgreybutter/MSAexample1

 

earlgreybutter/MSAexample1

MSA Example (Eureka). Contribute to earlgreybutter/MSAexample1 development by creating an account on GitHub.

github.com

 

HTTP client 호출을 테스트해보기 위해 아래의 크롬 확장 프로그램을 추가했다.

chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo?hl=ko

 

나중에 돌아와서 해결하겠다. 

참고자료

medium.com/@yesesyo/%EA%B0%80%EB%B3%8D%EA%B2%8C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B5%AC%EC%B6%95%ED%95%B4%EB%B3%B4%EA%B8%B0-2-6b417aedaec

'오리너구리의 오리발질 > MSA' 카테고리의 다른 글

서비스 구상  (0) 2021.07.05
[MSA실습] Configuration Server 구성  (0) 2021.03.31
MSA 실습 참고 예제  (0) 2021.03.11
maven 생명주기  (0) 2021.03.09
CI/CD 개념학습  (0) 2021.03.08
Comments