플레이데이터 백엔드 부트캠프 9월 회고록

이동명·2023년 10월 5일
0

부트캠프 회고

목록 보기
5/6
post-thumbnail

나의 9월 회고

MSA 시작

이번달에는 내가 이 부트캠프를 찾았던 가장 결정적인 커리큘럼인 MSA과정이 드디어 시작 되었다.

그 동안 혼자 프로젝트며, 복습이며, 캠프에서 프로젝트를 하면서 모놀리식으로 모든 프로젝트를 진행했고 또한 그 방법 밖에 없다는 듯한 갇혀있는 마인드에 사로 잡혀 있었다.

DDD

DDD 개발 방식에 대해 굉장히 낯설었고, 프로젝트가 분리되어 있는데 서로가 필요한 데이터를 어떻게 넘겨주는걸까..? 에 대한 의문도 많았고 편협한 사고를 가지고 있었던 나는 DDD로 프로젝트를 기획하는 것도 쉽지 않은데.. 여기서 더 micro하게 분리한다..? 생각만으로는 쉽지 않았다.

강사님에게 폭풍질문후에.. 그나마 도메인 별로 분리.. 또는 MSA방식으로 기능별로 분리에 대한 개념이 서기 시작했다. 또한 server 끼리 통신을 하면서 조금씩 머리가 복잡해지기 시작했지만 난이도가 어려운 편은 아니었다.

MSA TOY PROJECT - 배민 으로 간단한 프로젝트를 만들면서

Spring Cloud ( Eureka, gateway, config )

Spring Cloud 쪽 모듈을 경험을 해봤다. Netflix Eureka , gateway server, config server 등등 .. 내가 개념을 들으면서 혼자 상상을 해보볼 때 그렇다면 이 부분은 어떻게 감당하지..? 트래픽이 몰리는 서버를 여러개 두었을 때 부하분산은 어떻게 처리가 되지..? 하는 부분들이 모듈 사용으로 인해 어느정도 깔끔하게 해결이 되었다.

내가 생각하는 MSA에서 가장 중요한 점

개념확립이 되니 오히려 모놀리식으로 개발하는 것 보다 더욱 친근하게 느껴지고있다. 그리고 이런식으로 개발하다보니 가끔 데이터 중복에 대해 고려하지 않을 수 없었다. 하지만 MSA개발 방식 가장 중요시 생각하는 점은 내가 생각할 땐 독립성이다. 각자의 역할대로 다른 모듈에 의존하지 않고 역할을 다 해야 한다는 것 이다.

즉 고가용성을 중요시 생각해야 한다는 점이다..
하나의 서버가 내려가도 그걸 대체할 수 있는 다른 서버가 존재해야 한다는 점

나는 이 부분을 가장 중요시 생각한다. 이 전에 elk를 공부할 때도 고가용성에 대해 공부하고 실습했던게 생각이 많이 낫었다. 서버의 고가용성은 아주 핵심이자 중요한 부분이다.

Kafka

이전부터 관심이 많았던 pub/sub 기반의 kafka 에 대해서도 개념확립을 하면서 아래의 글에 정리를 해놓았다.

Kafka 조금은 알고쓰자..

Kafka Producer 에 대해서..

Kafka Consumer 에 대해서..

project

위의 내용들을 토대로 소모임이라는 어플을 바탕으로 프로젝트를 진행하였고, MSA 개발방식으로 kafka 로 메시지를 송수신하면서 진행한 프로젝트 이다.

소모임 프로젝트

이슈

프로젝트를 진행하면서 동시성이슈에 대해 겪었고, 큐잉 등 숙지한 부분이 꽤나 많았다.

그 이슈를 해결한 방식을 토대로 간단한 프로젝트도 진행하였었다.
선착순 쿠폰 프로젝트 (동시성이슈에 대한 프로젝트)

다음달은 linux 환경에서 cloud 환경구축과 CI/CD 등 인프라 구축에 대한 내용들을 배울 것 같다. 이것도 내가 이 부트캠프를 수강한 이유에 해당하니 잘 들어야겠다.

Keep

  • 이슈가 생기면 모아뒀다가 top-project 를 진행하면서 해결하고, 다시한번 확립한 점

  • 저번에 못했던 no-sql을 이번에 프로젝트에 mongo를 사용하면서 chatting 기능을 구현하였다

Problem

  • 프로젝트에 elk 붙여서 기능확장 하기

  • 코테

Try

  • elastic search 나 aws 의 opensearch 로 프로젝트에 검색기능 추가하자.

  • spring test code 에 대한 공부

  • elk stack 복습

  • docker 와 container 개념 공부

Final Action Item

  • 코테하자
profile
Web Developer

0개의 댓글