Backend 개발자/아키텍처

모놀리식 (monolithic) 구조에서 마이크로서비스 아키텍처(MSA) 개발자들이 연봉이 오르는 이유 확장 1단계

by 앵과장 2022. 1. 24. 08:28
반응형

안녕하세요
앵과장입니다.

오늘은 모놀리식에서 마이크로서비스로 확장하는 단계에서 여러가지 생각을 정리해보려고 합니다.

소프트웨어 아키텍처의 성장

아직도 많은 기업들은 monolithic 구조에 서비스를 사용하고 있습니다.

서비스를 개발할때 수많은 것들을 항상 고민하고 공부하고 적용을 해보곤 합니다.

소프트웨어 개발에서 여러가지가 필요하지만 그래도 가장 중요한 포인트는 목적에 맞는 기능을 정상적으로 동작할수 있게 만들고 운영할때도 리소스가 적절히 분배되고 수정에 용이하며 확장에 열려있어야 합니다.

우리가 사용하는 여러 개발언어는 아래 기술은 기반으로 성장하고 있는중입니다.

OOP에 사상에서 4가지 원칙

캡슐화, 상속, 추상화, 다형성

SOLID 원칙

S (SRP : Single Responsibility Principle)

한 클래스는 하나의 책임만 가져야 한다.

O (OCP : Open/Closed Principle)

확장에는 열려(Open) 있으나, 변경에는 닫혀(Closed)있어야 한다.

L (LSP : Liskov’s Substitution Principle)

프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.

I (ISP : Interface Segregation Principle)

특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.

D (DIP : Dependency Inversion Principle)

이런 사상을 기반으로
MVC패턴 을 시작으로 MVC2패턴
수많은 디자인패턴 (팩토리,어댑터,옵저버,싱글톤)
MSA 아키텍처(BFF, 핵사고널, 클린)
등등이 존재합니다.

monolithic

모놀리식은 MSA보다 떨어지는 방식이라고 표현하긴 어렵습니다.

어떤 트래픽 또는 규모에 따라서 서비스에서 원하는 아키텍처가 필요한것이지 꼭 MSA를 지향해야한다는 아닙니다.

이해가 쉬운 예시를 한번 들어보도롣 하겠습니다.

우리가 집을 구할때 가족에 구성원을 기반으로 넓은 평수에 인원에 맞는 방을 구하기도 하지만 돈이 없어서 단칸방에 산다고 못사는건 아니자나요!!!!


혼자사는 사람이 넓은 평수에 살면 행복할수 있지만 그만큼 리소스가 들어가기때문에 비용을 지불해가며 관리할수 있는삶을 사는것인데 레퍼 도끼처럼 돈이 넘쳐흐른다 그럼 그렇게 사는 겁니다.

넘쳐흐르는 MSA 관리는?

꼭 이렇게 살필요 없이 1인이라면 이렇게 살아도 되는겁니다.

모놀리딕한 모든것 있는 세상

개발자 몸값이 상승하는 이유

개발자들이 점점 몸값이 상승하고 있습니다?!
갑자기 IT에 이렇게 올라가는걸까요!!

개발자 암흑기

한참 IT Web 인터넷 이후 2.0이라는 시대쯤 인터넷 거품이 싹 사라지는 현상이 있을때 대략 IMF 99년도 00년도 01 년도 개발자들이 SI에서 죽어나가는 경우가 많이있었는데 하아 그때는 정말 쉽지 않았습니다.

이런 이미지가 만들어지고 내가 개발하다 죽겠구나 하는 생각도 들었고 실제로 금융권 이나 게임에 과로사로 사망하는 뉴스도 볼수 있었는데 어느순간 개발자들의 몸값이 상승하게 됩니다.

군대 졸업하고 왔는데 분명 반에 소프트웨어개발과에 여자들이 50 프로였는데 03학번 04학번에 여자들이 없더라구여 IT돈도 안되고 힘들더라 인식으로 이렇게 변했던적이 있는데...
아 이럴꺼면 내가 영어나 여성정보학을 전공할껄이라는 후회한 기억이 있네요 ㅋㅋㅋ

Why? 몸값이 상승하지
MSA 가 필요해!! 옆집 뒷집 앞집 다 MSA라고하네

개발자 몸값이 상승 하는 요인에 MSA도 포함되는것 같습니다.

가성비와 효율을 생각해보면 MSA가 그렇게 좋은건가 라는 생각이 드는데 도메인별로 구성을 하고 DB를 분리하고 devops 라는 구성을 해야되고 이만큼 학습이 되어있는 개발자를 뽑으려면 적지 않은 비용이 들어갑니다.

Cloud 환경 구성 인프라개발자 필요
네트워크 구성 인프라 개발자 필요
CICD devops 인력필요
Redis, Nosql (ELK, Mongodb, couchbase 등등), RDBMS 필요
헥소고널아키텍처, 클린아키텍처, DDD, TDD 필요

요런 인재들을 끌어온다고 생각해보세요
돈이 어마어마 하게 들어갈수 있습니다.

IOT 개인화의 시대

IOT하면 배달의민족이 떠오릅니다.
누가 전단지 잔화하지 App을 켜서 주문을 시켜 이랬던 기억이 있는데 지금은 당연히 앱을 키게됩니다.

길거리에는 자연스럽게 킥보드가 이용가능해지고 새볔배송, 로켓배송 오프라인과 온라인에 결합으로 사람들은 편리함을 추구하게 됩니다.

이모든 기술은 누가 개발한다
바로 개발자들입니다.


일반 사무직

기업에서 필요한 반복되는 작업 서류 통계 집계 판단 등이 개발로 인해서 반복 파이프라인들이 점점 사라지게 되고 그만큼 일반 사무직 직원들보다 개발자들이 이런부분들을 대처하게 할수 있게됩니다
여기도 개발자가 필요하게 되네요

코로나의 시대

중국 우한에서 발생한 사상자 최고의 흑사병이후 바이러스는 2020년 시작 이후 2022년에도 여러 변이 바이러스로 비대면에 필요한 모든 서비스를 빠르게 변화 시키는 중입니다.
교육, 생활, 게임, 쇼핑 등이 이해 해당하며 집에서 많은 부분을 살면서 사는 방식이 달라지는 중입니다.

최근에는 메타버스라는 세계에 많은 기업이 투자합니다.
오늘의집이 아바타를 이용해서 회의를 열고 회식도 하고 로블록스는 많은 기업들이 자기들에 세상을 꾸미는데 많은 돈을 투자하고 있는중입니다.

이중심에 개발자가 필요합니다.

여튼!!


아 갑자기 몸값으로 빠졌네 ㅋㅋㅋㅋㅋ

MSA 필요하지만 그만큼 비싼 개발자들이 들어갑니다
기본적으로 1인분 하는 개발자가 필요합니다.

생각보다 1인분 못하는 개발자들이 많이 있는데 ...
걱정이네요

MSA를 하기위해선 협업이 필수적으로 필요합니다.
러닝커브는 어쩔수 없는 상황에 필요하고 모든 지식은 어느정도 공유가 되어야 프로젝트가 산으로 가지 않습니다.

2편에서는 마이크로 아키텍처에서 필요한 구성들에 대해서 예기 해보면서 산으로 갈수 있는 부분들을 어떻게 하면 최소화 할수 있을지 고민 해보고록 하겠습니다.

다들 고된일주일 시작 월요일 행복하세요!!