아키텍처의 종류와 프로젝트 설계 - 패스트캠퍼스 챌린지 AWS 인프라 구축과 DevOps 운영 10일차
< 강의 커리큘럼 >
01. DevOps의기본 개념
02. AWS기반 소규모&중규모 아키텍트설계
03. AWS기반 대규모아키텍트 설계
04. 코드를통한 인프라관리(IaC)
05. 도커와 쿠버네티스를 이용한서비스 운영
06. CI/CD(지속적 통합/지속적 제공) 구현하기
07. 모니터링서비스 구축및운영
08. AWS기반보안
부록. Kuberneteson AWS EKS
모놀리식 아키텍처 VS 마이크로서비스 아키텍처
Monolithic을 한국어로하면 "획일적인, 하나의, 단일체의" 이라고 해석이되고
Micro를 한국어로 하면 "소형의, 아주 작은것, 극소의"로 해석이됩니다.
이런 아키텍처 설계?는 과거에서 부터 두 종류가 있었던것 같습니다.
그러나 빨리빨리를 좋아하는 한국인의 특성상 과거에는 모놀리식 아키텍처를 그려서 서비스를 제공했다고 하면, 요즘에는 마이크로서비스 아키텍처라는게 더 많이 화두가 되고 있습니다.
최근 개발자 채용 JD를 보면 많이 느낄 수 있습니다.
마이크로서비스 아키텍처 설계가능자, 클라우드에서 서비스 개발을 해본사람, 쿠버네티스 할 수 있는 사람.. 등
앞선 맨 첫 강의에서도 DevOps 팀의 핵심지표로 배포빈도(Deployment Frequency)를 중요시하는게
이 마이크로서비스 아키텍처가 최근의 트렌드인 것을 볼 수 있습니다.
맞는지 모르겠지만
마이크로서비스 아키텍처는 각각의 작은 기능들을 구분(?), 독립적으로 서비스를 띄워두고, 각각의 통신은 API를 통해서 하는것 같습니다.
그래서 API 설계가 중요하고.. AWS도 마찬가지로 모든 기능을 콘솔에서 하는게 아니고 API로 가능한 걸로. 알고있습니다.
이런 관련 글들을 어디서 본적이 있는데.. 어떤글인지는 모르겠습니다.
아무튼 API가 엄청 중요하다. 라는게 결론..
강의에서는 이런 내용들이 나오진 않았지만 강의랑 강의자료에 있는 내용들은 일반적으로 알 수 있는 내용들이였습니다.
프로젝트 구성원들 역할
해당 내용들은.. 강의자료가 따로 없고, 강의 내용만 있네요.
프로젝트를 일반적으로 진행 할 때, 구성원들을 보면
- 기획자
- 마케터
- 개발자
- 디자이너
- PM
구성원들은 조금 씩 다를 수 있지만, 일반적으로 위의 구성원들로 프로젝트가 진행 됩니다.
각각의 역할이 있기 때문에 프로젝트를 설계할때, 또는 진행이 될 때 트러블이 많이 생깁니다.
각자의 도메인 지식이 다르고, 서비스가 복잡해지면 복잡해 질 수록 기획과 개발의 불일치가 발생하고,
각자의 언어가 달라 소통도 어려워지는 문제가 있습니다.
그에 대한 해결방법으로, 보편적인 언어(모두 이해하는 말로하자, 전문용어 쓰지말고)를 쓰고,
모델 주도 설계를 하자는 것입니다.
모델 주도 설계가 뭔가 딱 아직 와닿진 않지만, 이내용이 밑에서 설명할 DDD에 대한 내용과 같습니다.
프로젝트 설계 방법론
DDD (Domain Driven Design) : 도메인 주도 설계에 대한 내용이였습니다.
도메인이라는것이 IT를 하면서 많이 들어봤지만, 뭔가 참 범위가 엄청 큰 부분 같습니다.
- 전략적 설계
일어날 수 있는 모든 경우를 생각해서 공유하고, 이것을 그룹핑합니다.
그리고 이 그룹핑간의 관계를 정의하여 도메인 모델을 생성합니다.
-전술적 설계
그룹핑 한 내용을 더 상세히 모델링하고 Aggregate Pattern을 많이 생각한다고 하는데.. 뭔소린지 잘 모르겠습니다.
https://huisam.tistory.com/entry/DDD
DDD(Domain Driven Design) - 도메인 주도 설계란? 마이크로서비스의 관점에서
객체지향에서부터 도메인 주도 설계를 이해하기 위해서는 객체지향을 먼저 이해할 필요가 있습니다 객체지향에서의 핵심은 뭘까요? 객체지향에서의 핵심은 실세계의 객체(물건, 사람, 주문 ....
huisam.tistory.com
도메인 주도 설계(Domain Driven Development) 이해
* 도메인 주도 설계(Domain Driven Development) 도입 배경 Before 기존의 개발 - 데이터에 종속적인 애플리케이션 - 모델링과 개발과의 불일치 발생 After 도메인 주도 설계 - 이런 불일치를 해소하기 위한
ppiyo5.tistory.com
https://brunch.co.kr/@springboot/605
[스터디]도메인 주도 설계 1주차
1. 도메인 주도 설계란? | 해당 글은, 온라인 스터디에서 발표한 내용을 문서로 정리한 글입니다. https://docs.google.com/presentation/d/19WRZ1kk0-uHbOzKjI3_u0HWmHqb6yaP9MT28DML5bxU/edit?usp=sharing 스터디를 시작하기
brunch.co.kr
위 블로그들에서 내용들이 자세히 잘 나와있습니다.
도메인 주도 설계라는 것을 들어 봤으니, 해당 강의에서 정말 상세히 다 이해하기보다. 대강 이야기 듣고, 관심 있는 부분은 조금 더 찾아 봐야할 것 같습니다.
강의에서는 굉장히 짧게 이야기했지만 엄청 복잡합니다.
결론적으로는 각 프로젝트인원들의 도메인이 다르고. 그걸 이용해서 경우의 수를 다 나열하여 그룹핑 하여 그 관계를 정의하고, 모델링하여 그 것을 바탕으로 구현하자!
로 이해했습니다.
강의는 이제 모놀리식 아키텍처를 기반으로 빠르게 한번 배포도해보고, 추후에는 마이크로서비스 기반으로 배포해보고 CICD까지 가는 것 같습니다.
강의구성은 참 좋은 것 같네요.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
수강료 100% 환급 챌린지 | 패스트캠퍼스
딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!
fastcampus.co.kr