개발자

신입들은 MSA 쓰지 말라는 말에 대해 어떻게 생각하시나요?

2023년 03월 30일조회 912

안녕하세요 신입 3개월차 백엔드 엔지니어입니다. 현재 사이드 프로젝트를 하나 진행중입니다. 간단하게 ERC20 토큰 두 개와, 이더리움을 거래할 수 있는 DeFI 프로젝트이며, 구조는 NFT 유저 팔로워 및 팔로잉 정보를 담은 RDBMS, 코인의 가격과 마감가, 최고가, 최저가등의 정보를 담아두는 도큐먼트 Mongo, 그리고 EVM에서 가져오는 정보. 이렇게 3가지를 사용합니다. 아는 분의 여러 사람들의 조언을 들었는데, 구조가 여러 개의 I/O가 있으니 msa로 만들라는 분도 계셨고, 신입이 msa를 하다 보면 복잡하고 장점도 못 챙기는 경우가 많으니 몰아서 하라는 의견도 있었습니다. 어떻게 구현하는 게 좋을까요? 많은 트래픽을 실제로 다뤄보신 시니어 분들의 조언 달게 받겠습니다! 😘

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 3

인기 답변

이양일님의 프로필 사진

안녕하세요! 먼저 신입은 MSA 를 쓰지 말라는 말에 대해서는 동의할 수 없습니다. MSA 를 쓸지 말지 결정하는 기준은 개발자가 신입이냐 아니냐의 문제로 결정할 수 있는건 아니기 때문입니다. 서비스의 규모가 커질 수 있고 다양한 기술셋이나 빠른 업그레이드 혹은 기능 변경 등이 필요하다면 충분히 MSA 를 고려해볼 수 있습니다. 다만, MSA 를 하기 위해서는 많은 기반 지식과 복잡한 설계를 요구하기 때문에 모놀리식 아키텍쳐에 비해서 개발 공수나 학습 비용이 많이 들어갈 수 있어 MSA 로 갔을 때의 얻을 수 있는 장점과 MSA 로 가기위해 필요한 비용을 산정하여 좀 더 이득이 되는 방향으로 결정하시는게 좋겠습니다. 모놀리식과 마이크로 서비스 중 어떤 아키텍쳐를 선택하면 좋을지를 정리한 글이 있어 링크를 공유 드립니다. - https://careerly.co.kr/comments/73274?utm_campaign=self-share 추가적으로 제가 제안드리고 싶은건 현재 하고 계신 프로젝트가 실제 운영중인 서비스가 아닌 사이드 프로젝트이므로 처음에는 모놀리식 아키텍쳐로 구현하시고 이후 MSA 로 전환하는 프로젝트를 추가로 진행하신다면 모놀리식과 MSA 의 차이를 몸소 느끼실 수 있고 MSA 를 하기 위한 기반지식을 가지시는데 큰 도움이 되지 않을까 싶습니다. 부디 저의 짧은 의견이 조금이나마 도움이 되시길 바라겠습니다.

인기 답변

장준영님의 프로필 사진

우선 위에 댓글 쓰신 이양일님과 동일한 의견으로는 "신입"이라는 경력이 MSA를 쓰고 말고를 구분할 수 없다고 봅니다. 때문에 글의 제목으로 적으신 "신입이니까 MSA를 쓰지 말라" 라는 말은 이해가 안되네요. 하지만 제목은 단편적인 얘기고, 추측컨데 "아직 경험과 지식 이해도가 부족하지만 그래도 MSA를 해도 될까요?"를 묻고 싶은거라고 생각해요. 이때 판단 기준은 아주 간단해보입니다. MSA를 왜하지? 라는 질문에 "서비스의 규모 때문에" or "그냥 하고 싶어서" or "사이드 프로젝트니까 공부하고 싶어서" 등의 답이 있을텐데, 함께 하는 팀원들이 서로 공감할 수 있다면 얼마든지 해도 된다 생각합니다. 만약 기간을 잡고 배포를 목표로 하는 사이드 프로젝트에서 러닝 커브로 인해 마감을 지키지 못할 상황에 대한 고민으로 MSA 도입을 망설이는 거라면 먼저 모놀리식으로 하고 후에 리팩토링을 가져가는 게 나아보여요. 실제로 MSA 관련 레퍼런스와 도구들이 너무 많아져서 얼렁뚱땅 "일단 해보기"는 얼마든지 가능하다고 생각하는데, "제대로 하기"는 러닝커브가 정말 높으니까요. 도움이 되셨길 바랍니다 :)

커리어리 AI 봇님의 프로필 사진

MSA는 분산 시스템으로써 여러 개의 서비스가 각자 독립적으로 실행되는 아키텍처입니다. 서비스간의 통신은 네트워크를 통해 이루어지며, 각각의 서비스는 독립적인 데이터베이스를 사용합니다. MSA의 장점으로는 서비스간 의존성이 낮아져 유연성과 확장성이 좋아진다는 점과, 서비스 단위의 수정이 용이하다는 점 등이 있습니다. 하지만 MSA 구현에는 복잡성과 관리의 어려움이 따르며, 추가적인 인프라 구성과 개발 리소스가 필요합니다. 또한, 신입 개발자로서 MSA를 구현하는 것은 불가능한 것은 아니지만, 학습하는 데에 많은 시간과 노력이 필요할 것입니다. 따라서, 단순한 구조의 프로젝트인 경우에는 모놀리식 구조를 적용하는 것이 더 나은 선택일 수 있습니다. 하지만, 프로젝트의 규모나 기능이 더 복잡해질 경우에는 MSA를 고려해 볼 수 있습니다. 이 경우에는 관리의 어려움과 인프라 구성 등에 대해 충분히 고려해야 합니다. 또한, MSA를 고려한다면 모든 기능을 한번에 개발하지 말고, 단계적으로 구현하고 테스트하는 것이 좋습니다. 이렇게 하면 기능 구현과 테스트의 효율성이 높아질 뿐만 아니라, 문제가 발생했을 때도 빠르게 대처할 수 있습니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!