실무에 가보면 대규모 시스템 뿐만 아니라, 작은 스타트업에서도 msa 로 시스템을 개발하고 운영하고 있는 경우가 생각보다 많다.
msa의 장단점은 명확하지만, 모든 IT회사의 꿈은 서비스가 확장되고 트래픽이 증가하여 서버에 부하가 발생하는 것이기에 서비스를 이제 막 시작하는 회사의 개발자들의 꿈이 회사의 시스템에 반영되는것 같다. 물론 트래픽이 생각만큼 나오지 않는다면 이 설계가 불필요한 오버엔지니어링이 되는 경우도 허다하다.
지난주 강의 내용
지난주에는 msa아키텍처 설계를 위한 도구로서 spring cloud의 몇가지 서비스들을 다루어보았다. spring cloud gateway와 eureka서비스를 중심으로 order_system을 item, member, ordering 3개로 쪼개어 각기 다른 서버로서 기동시켰다.
gateway는 nginx와 같이 사용자의 request를 uri패턴에 따라 각기 다른 서비스로 라우팅을 해주고, item-service 1호기, 2호기 등 서버가 scale out되어있을때 부하를 round robin 방식으로 분산 시켜주는 기능을 한다.
eureka는 각각의 service 인스턴스들의 ip, port등을 서비스명으로 등록해주는 역할을 한다. msa아키텍처에서는 유레카와 같은 서비스 디스커버리의 역할이 매우 중요하다. 클라우드 환경에서는 일반적으로 scale out등의 이유로 인스턴스의 ip와 port가 언제든지 변경될수 있기에 이 인스턴스들의 주소정보를 동적으로 관리할수 있는 서비스의 존재가 필수적이다.
그래서 서비스 디스커버리 없는 msa는 애초에 대규모 서비스의 역할과 성격에 적합하지 않는것이다. 개발자가 수동으로 추가된 인스턴스의 ip:port를 등록하고 서버를 재기동하는 것은 서비스 초기에는 그럴수 있지만, 유지보수 과정에서 개선되어야 할 아키텍처일것이다.
우리 수업에서도 gateway와 유레카를 도입하여 msa로 모놀리식을 변환해보았고, 유레카에 각 서비스의 위치정보를 등록하고 port정보도 0으로 설정함으로서 동적으로 할당되도록 설계를 변경해 보았다.
그런데, 실행되는 서버 인스턴스가 5개 이상이 되다보니, 서버가 먹통이되기도 하고, 유레카에 서비스 정보가 등록되는데 시차가 발생하여 테스트의 어려움이 생겨 수업이 생각만큼 원활하지 못했었던것 같다.
이 점에 대해서 내가 충분히 고려하고 테스트를 진행해 보았어야 했는데, 수업이 원활히 나아가지 못한점에 대해 수강생들에게 죄송한 마음이 들었다.
나는 수업을 진행함에 있어, 완벽히 준비한 수업자료대로만 수업을 진행하기 보다는 살짝 변형을 해가면서 즉석에서 수강생들의 의견도 반영하여 코드를 짜는 것을 좋아하는 편이다. 그 과정에서 수강생들이 따라치기만 하는 것이 아니라, 적극성을 가지고 수업에 능동적으로 참여하게 되기 때문이다. 그런데, 이번 msa수업에서는 좀 더 제한되고 예외없는 코드를 기반으로 수업을 진행하는 것이 적합하지 않았을까하는 생각이 들었다.
이번주 금요일에는 여태 배운 프론트, 백엔드 시험을 한꺼번에 진행하였다. java, 알고리즘, 스프링, 프론트엔드 등 이미 수업을 진행한지 2달이 지난 내용을 가지고 시험을 보게하다보니, 수강생들이 많이들 어려워했던것 같다. 사실 2달간 몰아쳐서 수업내용이 진행되고 시험공부를 할 틈도 없이, 2달전의 내용을 기억하고 문제를 맞춘다는게 더 신기한일일것 같다.
더불어, 내가 그 부분을 충분히 고려하고 적절한 난이도로 문제를 출제했어야 했었다는 생각도 든다. 변별력을 두겠다라는 생각에 헤깔리고 어려울수 있는 내용을 출제를 했는데, 시험결과를 보고 나니 아차 싶었다.
다음주 계획
차주에는 수강생들이 그동안 배우고 익힌 백엔드, 프론트엔드 기술을 기반으로 5일간의 미니 프로젝트를 수행한다. 내가 항상 염려되는 요소중에 하나는 수강생들의 수면시간인데, 너무 잠을 줄이진 않았으면 한다.
젊고 건강한 수강생들이니 건강이 헤칠정도가 되진 않겠지만, 수면에 대한 나의 생각은 적절한 수면시간이 확보되지 않으면 여러 부작용이 나온다는 것이다.
잠이 줄어들면 사람이 예민해지고 부정적으로 변해서 스트레스에도 취약해지고, 학업이나 업무역량도 규칙적이고 적절한 수면을 취한 경우보단 떨어지지 않을까 하는 염려가 된다. 뭔가 내가봐도 지독하게 T스러운 생각이긴 한데, 어찌됐든 걱정하는 마음이긴 합니다ㅎ 다들 너무 잠을 줄이진 말고, 몸건강과 정신건강을 잘 챙기면서 첫 웹서비스 프로젝트를 잘 마무리 합시다~
'부트캠프 이야기 > 한화시스템 sw부트캠프 3기' 카테고리의 다른 글
한화시스템 부트캠프 3기 - 16주차 후기 (0) | 2024.02.29 |
---|---|
미니 백엔드&프론트 프로젝트 후기 (9) | 2024.02.24 |
vue.js 프레임워크 강의 후기 (0) | 2024.02.09 |
spring 강의 마무리 (0) | 2024.02.03 |
spring 게시판 강의 (0) | 2024.01.27 |