아쿠의 개발 일지

한화 시스템 부트 캠프 12주차 회고 본문

ETC/한화시스템

한화 시스템 부트 캠프 12주차 회고

디아쿠 2024. 7. 22. 23:35

괜찮아(안 괜찮아)

 

안녕하세요 12주차 회고록에 죽어가고 있는 사람(도 아닌듯)입니다.

이번 주도 결국 회고록이 밀려버리고 말았는데요... 이게 진짜 사정이 있어요. 개발자가 되기를 준비? 하시거나 개발자? 이신 분들은 아실 거잖아요,,, 취업을 위한 백엔드 프로젝트 기능 구현 및 성능 개선을 어떻게 3일만에 합니까. 근데 한 거 같아요. : ) 💝 우리 팀원들 항상 사랑하고 고맙고... 감사합니다.

 

일단 프로젝트를 하기 전, 2일 동안 MSA에 대해서 배웠는데요 정말 어려웠고,,, 정말 힘들었어요.

 

MSA : 마이크로 서비스 아키텍처?

 

MSA를 설명하기 전, 그와 비교가 되는 예시인 모놀리식 아키텍처에 대해서 말씀 드리겠습니다.

모놀리식 아키텍처는 전통적인 개발 방식으로 하나의 프로젝트에 모든 기능을 함께 포함합니다. 이렇게 하면 코드 베이스가 커질수록 개발 및 배포에 복잡성이 증가합니다.

🤍모놀리식 아키텍처
장점 - 초기 개발에 유리하며, 빠르게 프로토 타입 개발 가능. 필요한 모든 기능을 한 번만 호출하기 때문에 복잡한 통신 없이 사용 가능
단점 - 코드 베이스가 커질수록 복잡해지고 유지관리 및 확장이 어려워진다. 일부 기능을 수정하거나 업데이트를 하려면 전체 애플리케이션을 재배포해야한다.

 

메타넷에서 퍼왔습니다. 설명 굿굿. 굿굿.

 

🤍 MSA 장점
장점 - 서비스간 독립성으로 인해 확장성과 유연성이 높아진다. 기능 고립성이라는 특징 때문에 일부 서비스가 실패하더라도 전체 시스템에 큰 영향을 미치지 않는다.
단점 - 서비스 간 통신이 필요하며, 서로 간 연결 구축 및 관리의 복잡성이 증가한다.- 초기 개발 및 통신 등에 시간이 소요된다.

 

모놀리식과 MSA

 

MSA는 서비스를 마이크로 단위로 잘게 쪼개는 아키텍처라고 생각하면 된다. 오른쪽의 큐브처럼?

 

AXON 의 핵심 개념도 배웠고, 이 프레임워크를 이해하기 위해 핵심 개념을 살펴보았다.

1. Aggregate
2. Command
3. Event
4. Command Handler
5. Event Handler

 

SAGA 패턴 - 오케스트레이션

조정자가 Axon프레임워크 서버로 구성을 해 주고, 나머지를 클라이언트로 만들어주면 되는 건데

리눅스 서버를 하나 구성 해서 거기에 Axon서버를 설치 할 것이다.

axon 서버 구성

 

서버를 구성하고 8024 포트로 가면 다음과 같이 나온다

 

순서로는

컨트롤러 -> 커맨드 -> 어그리케이트 커맨드 핸들러 -> 이벤트 -> 어그리케이트 이벤트 소싱 핸들러 -> 이벤트 -> 이벤트 핸들러 -> DB에 저장

이런식으로 이뤄진다.

 

이제 정말 MSA에 대해서 실습하기 전에 커맨드 핸들러를 보여주겠다,,

 

Slf4j는 아마 로그 찍는 애 같다.

저 [ ] 안에 내용을 해석 하자면

[@커멘드 핸들러가 동작한다 - 프로덕트에서 ] 이런 커멘드를 받아서 프로덕트를 처리하고 있다. 가져올 id

로 해석이 가능했다. 

 

여기까지 말씀 드렸다. 솔직히 ,,, MSA를 짧게 배운 것도 짧은 건데 개념 자체가 너무 어려운 내용이라 3일 내로 숙지하기엔 버거웠다. 하지만 이런 방법도 있구나를 알게 되었고, 이번 프로젝트에서는 MSA를 도입하기 너무 힘들 것 같아서 우리는 저번 주 3일 간 헥사고날 아키텍처로 벡앤드 프로젝트를 시작하게 되었다.

 

다음 주 회고록에는 github 주소를 함께 올려드리겠다. 곧 배포를 앞두고 있고, 직접 그린 시스템 아키텍처와 소프트웨어 아키텍처를 보여드리겠다. 이해하면 천재라고 한다...

시스템 아키텍처

 

소프트웨어 아키텍처

 

이렇게 프로젝트를 마무리 하고 있다. 솔직히 너무 힘들었다 잠도 제대로 못 잤고 카페에서 밤샘 코딩 해 보는 건 처음이었다. 이게 바로 통근과 통금러의 삶?,,, 그래도 꼭 배운 것을 복습하는 회고록은 필요하다고 생각한다. 이렇게 남기니까 괜히 찡하다. 곧 프론트 프로젝트를 앞두고 있고, 점점 최종 프로젝트도 다가오고 있다. 곧 물가로 내던져질 생각에 많이 무섭지만 그때면 지금보다 더 성장 해 있을 것이라고 생각한다.

 

감사합니다 ~ ! 끝 !


 

Keep

 

프로젝트를 마치고 가장 먼저 든 생각은 이게 맞나? 싶었다. 아무래도 아쉬움이 많이 남는 것 같다 1주일이었으면 더 좋은 코드 구현이 나오지 않았을까 싶다. 그래도 이러한 고민과 생각 조차 나를 성장하게 하는 계기가 아닐까 싶다.

끝까지 해내고 살자 지각하지 말자 졸리면 뺨을 쳐라, , , 그럼 잠은 깨더라

 

++ 플레이데이터에서 준 스프링 강의 주중으로 꼭 듣기

 

Try

 

자격증 시험을 준비해야 하는데 시간이 정말 없다. 하지만 스프링 공부든 자바 공부를 하면서 지식은 쌓여있다,,, 헥사고날도 이제 익숙 해졌다. 정말 시간이 모자르다.

코테 문제를 매주 풀자 이젠 정말 풀어라 ,,, 업로드 언제 할 거냐?

 

가운데 잘 보면 프로젝트 끝은 안 났다. 써 있다.

728x90