# monolithic

16개의 포스트

Monolithic / MSA 어떤 아키택쳐로 구성 할 것 인가 ?

사이드 프로젝트 진행 전 기술 스텍을 정하기 위한 나의 생각을 정리한다. 네 번째로 어떤 아키택쳐로 구성 할 것인가에 대해 정리해본다. Monolithic / MSA 가 뭔데 ? > Monolithic : 단일 코드 베이스 애플리케이션 MSA : 애플리케이션을 작은 서비스로 분할하고 각 서비스가 독립적인 애플리케이션의 집합 모놀리식과 MSA의 장단점에 대한 내용을 조금씩 간추려서 작성해본다. Monolithic 의 장점 과 단점 > 장점 단순성: 변경 사항이 발생할 경우 필요한 모든 코드가 한곳에 존재한다. 간편한 배포: 단일 프로젝트로 배포하면 되기 때문에 간편하다. 보편성: 프로젝트를 쉽게 시작할 수 있다. 디버깅이 쉬움: 추가 구성을 수행하지 않고 코드를 실행하여 디버깅하면 된다. 쉬운 테스트: 테스트 수행이 쉽다. 쉬운 모니터링: 오류 시 문제가 발생한 위치를 식별하기 쉽다. > 단점 규모가 커지면 유지 보수가 어려움: 시간이 지남

2023년 9월 21일
·
0개의 댓글
·
post-thumbnail

MSA

MSA(micro service Architecture)↔Monolithic Architecture Monolithic Architecture 장단점 장점 개발 초기에 단순한 아키텍처 구조로 인해 개발에 용이 어떤 서비스든지 개발되어 있는 환경이 같아서 복잡하지 않음 배포가 간단함 확장성 로드밸런스를 이용하여 로드 부하를 나눠 가지는 방식으로 진행 쉽게 고가용성 서버 환경 조성 가능 End-to-End 테스트에 용이 단점 프로젝트의 규모가 커짐에 따라 애플리케이션 구동 시간이 늘어나고 빌드 및 배포 시간이 길어짐 조그마한 수정 사항이 있어도 전체를 다시 빌드 및 배포 많은 양의 코드가 몰려 있어서 개발자가 모든 코드를 이해하기 힘들며, 유지 보수가 어려움 일부분의 오류가 전체에 영향을 미침 (장애 전파) 기술 스택이

2023년 7월 3일
·
0개의 댓글
·
post-thumbnail

[MSA]란 무엇일까?

이번 포스팅에서는 MSA가 무엇인지 한번 자세히 알아보도록 하자. MSA란? Micro Service Archirecture의 줄임말로써 작고, 독립적으로 배포가 용이한 여러가지의 기능수행 서비스로 구성된 프레임워크라고 할 수 있겠다. MSA(마이크로서비스)는 앞서 언급한것처럼 온전하게 독립적인 배포가 가능하며, 경량화되고 독립적인 여러개의 서비스를 조합하여 애플리케이션을 구현하는 방식으로 서비스마다 자체 데이터베이스를 가지고 동작하기때문에 개발, 빌드, 배포에 이르기까지 효율적인 수행이 가능하다는 특징이 있다. MSA의 등장하게 된 배경 MSA가 등장하게 된 배경을 알기 위해서는 MSA이전에 사용했던 Monolithic Archirecture에 대

2023년 3월 7일
·
0개의 댓글
·
post-thumbnail

[개발상식] - MSA 아키텍처

0. 글을 작성하는 이유 집을 지으려면 무작정 벽돌부터 쌓으면 될까요? 물론 집을 만들수도 있지만 수많은 시행착오를 겪게되고 끝내 완성도가 낮은 집을 만들 것입니다. 만약 집을 어떻게 무엇으로 지을 것인가 계획을 꼼꼼히 세우고 전체적인 구상을 하고 진행한다면 시행착오를 줄이고 더욱 완성도 높은 집을 지을 수 있을 것입니다. 개발도 마찬가지 입니다. 그중에서도 Monolithic, SOA, Microservices 와 같은 용어들이 존재합니다. 3가지 용어를 요즘 대세인 MSA와 비교하여 알아보겠습니다.🤗 1. MSA > Microservice Architecture의 약자로, 애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 *서비스 지향 아키텍처(SOA) 스타일의 일종인 소프트웨어 개발 기법 입니다. *서비스 지향 아키텍처(Service Oriented Architecture) 애플리케이션의 구성요소가 통신프로토콜을 통해 다른 구성요소에 서비스를 제

2023년 1월 12일
·
0개의 댓글
·
post-thumbnail

찬찬히 살펴보기#3 MSA-1

1) > Monolithic과 MSA 구조의 가장 큰 차이는 api gatewateway 통한 '블랙박스화'같다. 각각의 서비스는 api를 갖고, api gateway와 통신한다. 다른 관점에서 웹 서버 분산에 따른 데이터베이스 분산이 동반되는 '느슨한 결합'이라고 생각한다. 이는 유연성, 신뢰성, 효율성, 리스크 관리에서의 이득이로 이어진다. >> 특히 배포 및 업데이트 단계에서 monolithic 구조는 binary 파일을 만들어 배포하고, 문제가 생기면 수정하는데 반해, MSA 구조는 blue-green 방식에서 blue가 롤백을 가능하도록 한다고 한다. >>> Binary 파일은 텍스트 파일가 대비되게 데이터를 (문자가 아닌) 데이터 그 자체로 저장한다고 이해된다. 프로그램 배포에서 소스 코드가 아닌 실행 코드가 이에 해당한다. Binary 파일을 텍스트 파일로 변환할 때 사용되는 게 각각 64/128진법을 따르는 base64/ASCII 인코딩 방식인데, 모든 binary 데

2022년 12월 9일
·
0개의 댓글
·
post-thumbnail

마이크로 서비스 아키텍처(MSA)

Monolithic Architecture 란? > 사전적 의미 Monolithic : 1. 하나의 암석으로된, 2. 단일체의,한 덩어리로 뭉친 기존에 우리가 사용하던 전통적인 방식의 개발 방법을 모노리틱 아키텍처 스타일이라고 한다. 사전적 의미로 정의한 대로 한 덩어리의 구조라고 볼 수 있다. 전체 애플리케이션이 하나로 되어있어 보통 동일한 개발툴을 사용해 개발되며, 배포 및 테스트도 하나의 애플리케이션만 수행하면 되기 때문에 개발 및 환경설정이 간단하다. 또한 각 컴포넌트들이 함수로 호출되기 때문에 성능에 제약일 덜하고 운영관리가 용이하다. 이런 장점때문에 작은 크기의 시스템을 개발할 때는 매우 유용하지만 시스템이 커지기 시작하고 여러 컴포넌트들이 더해지면 문제가 발생하기 시작한다. ![]

2022년 12월 5일
·
0개의 댓글
·
post-thumbnail

[DevOps] MSA와 Monolithic

DevOps란 개발(Development)과 운영(Operations)가 합쳐진 단어로 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화, 철학, 방식 및 도구의 조합이다. DevOps를 사용한다면 기존의 소프트웨어 개발 및 인프라 관리 프로세스를 사용하는 조직보다 제품을 더 빠르게 혁신하고 개선할 수 있다. 이러한 DevOps에는 CI/CD(지속적인 통합, 지속적인 전달), MSA, IaC (Infrastructrue as Code) 등 여러 가지가 존재하는데, 오늘은 DevOps에 속하는 MSA(Micro Service Architecture)와 이와 비교되는 Monolithic을 비교하려고 한다. 💒 MSA (Micro Service Archi

2022년 7월 26일
·
0개의 댓글
·
post-thumbnail

[MSA] MSA란?

몇년전부터 심심찮게 보이던 용어였는데 최근에는 굉장히 많은 기업에서 MSA 구조로 서비스를 만들고 있는 것 같다. 그래서 최근 Spring Cloud를 이용하여 MSA를 공부하고 있어 정리하고자 한다. MSA를 이해하기 위해선 당연하게도 MSA 구조가 아닐 때의 한계점에 대해 알아야한다. 가장 흔하고 전통적인 웹 애플리케이션의 구조는 Monolithic Architecture이다. 좌측처럼 하나의 DB와 하나의 큰 애플리케이션으로 구성되어 있는 구조가 Monolithic한 구조인데 MSA와의 비교에 앞서 Monolithic 구조의 장단점을 살펴보자. 조금만 생각해보면 너무 당연한 이야기들이 많으니 편하게 읽어보자! Monolithic Architecture 장점 배포 파이프라

2022년 6월 7일
·
1개의 댓글
·

MA => MSA

이유 디렉토리 관리가 힘들다. 어떤 부분은 컨셉자체가 완전히 달라서 디렉토리 구조가 특별해질 이유가 있음에도 기존 프로젝트의 디렉토리 철학에 끼워 맞춰야 하기때문에 구조가 이상해지는 경향이 있다. 회사 내부 플랫폼이 여러개인데 덩치가 좀 큰편이라 매번 이슈 핸들링할때마다 찾아가는 작업이 힘들다. 번들링 속도가 느리다. 빌드 속도가 느리다. 특정 부분의 이슈때문에 프로젝트 전체가 뻑나는 경우가 있다. react의 atomic Design철학을 적용하기에 적합하다. 상기내용을 근거로 프로젝트를 분산하여 관리할 필요를 느꼈다. (암튼 프로젝트 유지보수가 넘 어렵다는 내용임) 장점 이유에 나열돼있는 부분이 해결되는것이 장점이다. 단점 역공학을 많이해야한다. 하는김에 부분적인 리팩토링도 같이 들어가기때문에 시간적인 투자가 많이 들어간다. 역공학하여 프로젝트의 이해도가 어느정도 수치가 도달해야지 진행

2022년 5월 19일
·
0개의 댓글
·
post-thumbnail

Monolithic과 Microservice

해당 내용은 인프런 강의를 듣고 정리한 내용입니다. > 출처: Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Monolithic 어플리케이션 개발하는데 있어 필요한 요소를 하나의 어플리케이션 형태로 패키지되어 서비스 장점 하나의 공간에 코드가 있기 때문에 어플리케이션 하나만 실행하면 되서 간편하다. 단점 시스템의 일부만 수정하더라도 시스템 전체를 빌드하고 배포해

2022년 2월 19일
·
0개의 댓글
·
post-thumbnail

Monolithic vs MSA

Monolithic Architecture Monolithic의 사전적 의미는 "formed of a single large block of stone." 즉 한개의 큰 돌로 만들어진 건축물을 지칭한다. 대표적인 monolithic한 건축물은 영국의 스톤헨지라고 한다. CS에서도 비슷하게 monolithic한 프로젝트는 건축에서와 비슷하게 하나의 프로젝트에서 하나의 어플리케이션이 수행되는 구조라고 보면 된다. Monolithic Architecture의 장점

2022년 2월 5일
·
0개의 댓글
·

[CS] Monolithic Architecture와 Microservice Architecture

Monolithic / Microservice는 무엇인가? ䷿ 서론 필자는 경제학과를 졸업했고 그 많고 많은 사람들이 갖고 있는 석사학위까지.... 경제학을 조금 더 공부했다. 그리고 난 뒤에 처음에 Monolithic라는 단어를 들었을 때, Monopoly, 즉 독점이라는 것이 연상되었다. 하나라는 의미를 생각했을 때, Monolithic Architecture는 웹을 구성하는 아키텍처가 하나, 즉 서버가 하나라는 의미로 곧바로 다가왔다. 물론 보다 복잡하게 이야기 했을 때 서버가 하나이다 라는 의미는 아닌 것 같았다. 왜냐하면, 여러 개의 서버를 두고 load balancer를 갖고 있다면, 이는 Monolithic가 아닌가? 라는 의문이 들었기 때문이다. 또한 요새 많이 핫한 MSA 즉 Microservice Architecture를 생각했을 때, 단순히 서버를 여러 개 갖고 있다고 하여 MSA는 아닌 것 같았다. 그렇다면 Monolithic Architec

2021년 12월 17일
·
0개의 댓글
·

강제 MSA 후기

근황 몇달 전 새로운 회사로 이직을 했습니다. (그래서 몇달동안은 눈치보느라 적응하느라 글을 못 썼어요.) 작은 스타트업이고, 제가 할 수 있는 일이 많을 것 같아서 (그리고 제 마음대로 할 수 있을 것 같아서) 여러 회사 중 현재 회사를 선택했죠. 결론적으로 후회하지는 않습니다만, 아쉬운 점이 몇 가지 있습니다. 현재 회사는 회사 크기에 비해 업력이 짧지는 않습니다. 보통 스타트업이라고 생각하면 창업한 지 1-2년 내의 회사를 떠올리는 경우가 많은데, 그것보다는 조금 오래되었어요. 그러다보니 많은 개발자가 거쳐갔고, 개발자의 흔적들이 여러 군데에 남아있습니다. 이런 건 어디서든 볼 수 있는 현상이기 때문에 그런가보다 하고 받아들일 수 있습니다. 백엔드의 구성 문제는, 각 시스템이 각각 다른 언어와 프레임워크로 작성되어 있다는 거에요. 현재 저희 회사 백엔드 기술 스택은 대충 다음과 같이 이루어져 있습니다. 자바 - 스프링부트 파이썬 - f

2021년 10월 29일
·
4개의 댓글
·
post-thumbnail

넷플릭스의 백엔드 설계

유튜브에서 영상을 보다보니 노마드 코더 채널에서 위의 제목으로 영상이 올라온 것을 볼 수 있었다. 모르던 내용이기도 하고 흥미로워서 영상 내용 정리 및 추가적으로 정리한다. 영상링크 내용정리 넷플릭스의 백엔드는 초창기에 JAVA, Oracle 를 이용하여 그들의 데이터 센터에 호스팅되었다. 하드웨어를 직접 사서 관리했다는 의미이다. 이 구조의 문제는 너무 monolithic 했다는 점! monolithic 이란 하나의 거대한 백엔드 어플리케이션이 모든 것을 처리하는 경우를 말한다. monolithic 이러한 구조는 보통의 백엔드 구조라고 한다. 단점은 모든 것이 한 곳에 모여있기 때문에 어떠한 이유로 서버에 오류가 발생하면

2021년 8월 31일
·
0개의 댓글
·
post-thumbnail

모놀리식과 마이크로서비스 아키텍처 비교

1) 모놀리식 아키텍처 (Monolithic Architecture) 장점 어떤 기능(서비스)이든지 개발되어있는 환경이 같아서 복잡 하지 않음 쉽게 고 가용성 서버 환경을 만들 수 있음. ( 같은 어플리케이션으로 하나더 만들면 됨) End-to-End 테스트가 용이하다. (MSA의 경우 테스트에 필요한 서비스들을 모두 동작 시켜야함) 단점 한 프로젝트의 덩치가 너무 커져서 어플리케이션 구동 시간이 늘어나고 빌드,배포 시간도 길어진다. 조그마한 수정 사항이 있어도 전체를 다시 빌드 하고 배포 해야함. 많은 양의 코드가 몰려있어 개발자가 모두를 이해 할 수 없고 유지 보수도 힘듬. 일부분의 오류가 전체에 영향을 미침. 기능 별로 알 맞는 기술, 언어, 프레임워크를 선택

2021년 6월 29일
·
0개의 댓글
·
post-thumbnail

MSA를 알아보자!

MSA란? 하나의 큰 서비스를 작은 단위로 쪼개서 원하는 서비스를 조합하는 아키텍처 MSA는 여러개의 작고, 독립적인 서비스들을 조합하여 복잡한 application을 만드는 Architecture이다. 각각의 독립적인 서비스는 MSA에 유연성을 부여하고 이 유연성은 개발 및 운영 과정에 많은 이점을 가져다 준다. Monolithic Architecture Vs. MicroService Architecture Monolithic이란, 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어있는 형태를 말한다. 모든 서비스가 하나의 파일로 묶인 뒤 배포되어 동작하게 된다. 서비스들의 경계가 모호하고 하나의 DB를 공유하고 있는 구조로 서로 의존성이 높아질 수 밖에 없다. 따라서 서비스가 변경되

2020년 11월 24일
·
0개의 댓글
·