Programming

[언그래머] 여든여덟번째 아티클_Spring boot MSA 설계 (2) what is 모듈,,

송코딩 songcoding 2024. 6. 7. 08:30

안녕하세요, 여러분~!

김송아입니다.

 

 

한 주는 잘 보내셨나요? 😊

금요일마다 찾아오는 아티클이다 보니, 늘 여러분들의 한 주가 궁금한 아침입니다.

 

 

어떤 한 주이셨든, 너무 고생 많으셨습니다!!

편안한 주말이 성큼 다가온 만큼!!

오늘도 알차게 아침을 MSA로 열어보실까요? 알..알차다...

 

 

 

[언그래머] 여든일곱번째 아티클_Spring boot MSA 설계 (1) 서비스 단위

안녕하세요, 여러분~!김송아입니다.  오늘부터 함께 공유할 아티클은 시리즈물입니다!!MSA에 대한 이야기를 좀 천천히, 쉽게 풀어보려 하거든요 :) 사실 스진초같은 MSA 미니 데브코스를 생각하

songacoding.tistory.com

 

 

지난 아티클을 읽어보셨으리라 생각이 들고!

MSA가 필요하려면 어느정도 부피감이어야 하는지,,, 어떤 형태로 서비스가 엮여있어야 하는지,, 느낌 오셨으리라 생각됩니다.

 

 

-

 

 

 

오늘은 그럼 지난 아티클에서 얘기했던 MSA 서비스 단위를 바탕으로!

어떻게 모듈을 나눠서 구현할 수 있는지 간단하게 얘기해보시죠.

(MSA 시리즈는 아티클 형태로 쉽게 읽으실 수 있게 최대한 쪼개고, 최대한 쉽게 말씀드리고 있으니 가볍게 읽어보세요!)

 

 

 

여기서 잠깐! 제가 모듈이라고 했죠?

여러분들은 모듈이 뭐라고 생각하시나요?

 

 

 

객체 지향 개발자라면 모듈화를 한다는 얘기를 처음 들어보시는 것은 아닐거고!

 

우리는 보통 메소드를 추출하거나, 클래스를 분리시킬 때 모듈화를 한다고 표현하고 있죠.

그래서 보통은 추상적으로 음,, 코드를 독립시키는 것,,? 이라고 하실 수 있을 것 같아요.

 

 

ㅋㅋㅋㅋㅋ이래서 독립하는 거 말고,, 복숭아를 왜 넣어...?

 

 

하지만 프로젝트 단위에서 말하는 모듈은 엄연히 정의가 있습니다.

 

 

intellij를 써보신 분들은 한번쯤 보셨을 거라 생각됩니다.

프로젝트를 마우스 오른쪽 버튼 클릭하면, 프로젝트 메뉴로 Module을 분명 봤을테니까요!

 

이때, 왜 프로젝트를 모듈이라고 부르는지 궁금하지 않으셨나요?

 

 

 

 

 

 

모듈(Module)이란,
독립적으로 배포될 수 있는 코드의 단위를 말합니다.

 

 

💡 그럼 또 배포가 뭐냐~ 하고 생각해볼 수 있겠죠?

배포(Deployment)란,
사용자들이 인터넷을 통해서 우리 서비스를 사용할 수 있게 하는 것을 말합니다.

 

 

 

쉽게 말해서 모듈은 하나의 프로젝트라고 보시면 된다는 거죠~!

 

 

..👀 갑자기 모듈 얘기를 왜 하냐구요?!

 

 

MSA를 구성하기 위해서 우리는 서비스를 나눠야 한다고 했었죠?

 

1. MSA가 아니라 모놀리식(일반적인 프로젝트, 하나의 덩어리) 였다면,,

   

   이렇게 하나의 서버에 하나의 프로젝트가 배포되겠죠?

 

모놀리식 서버 설계

 

 

2. 하지만 MSA가 되면,, 

    우리는 이 서비스를 각각의 모듈로 구성해야합니다.

   

    아래 그림처럼 각 모듈로 구성한 뒤 각 서버에 배포하는 거죠!!

 

MSA식 서버 설계

 

 

그럼 당연히 하나의 큰 서비스는 여러개의 서버 그리고 여러 개의 모듈을 가지게 될거고!!!

이것이 바로 MSA 설계의 시작이 되는 거죠🔥🔥🔥

 

 

 

어떠신가요?

생각보다 아~ 이런거네 싶지 않으신가요?ㅎㅎ

가볍게 드리는 만큼, 가벼운 마음으로 시리즈를 함께 하시죠!!!

 

 

 

오늘도 맛있는 거 먹구, 기분 좋은 하루 되시길 바라며✨

감사합니다.

김송아 드림