본문 바로가기

Cloud42

13장 서브클래싱과 서브타이핑 13장 읽고 나눈 이야기 상속과 합성의 차이를 여기서 많이 이해한 듯. 합성은 확실히 퍼블릭 인터페이스를 공유하니까 더 유연하다. 상속 대신 처음에는 인터페이스로 협력을 구축하고, 겹치는게 많으면 이전 장에서 봤던 것처럼 공통 구현을 가진 추상 클래스로 올리는 게 합리적이라고 생각함. Collection에서 ArrayList를 사용하더라도 선언은 List로 사용하는 편이 좋다. 정말 변동 가능성이 크고 유연한 설계가 필요한 부분에만 서브타이핑을 적용하는게 좋다고 생각한다. 타입계층 구현의 핵심 타입 : 적용 가능한 오퍼레이션 종류와 의미 타입의 사용 효과 : 코드의 의미를 명확하게 전달, 개발자의 실수 방지 객체의 타입 정의 : 수신 가능한 메시지를 정의 서브타입이 슈퍼타입에 속할 수 있는 이유는 행동이.. 2024. 2. 1.
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 클라우드 클럽 3기에서 Spring Cloud로 개발하는 MSA 스터디를 주최하고 운영해보았다. MSA가 궁금한데 쿠버네티스는 너무 어렵고, 그나마 익숙한게 Spring이어서 Spring Cloud 제품을 사용해보고 싶었다. 마침 클라우드 클럽 멤버들 중 스프링 사용자들이 있어서 이 분들과 함께 스프링 클라우드와 마이크로서비스를 공부해보고자 스터디를 열었다. 모집하고 보니 스프링을 사용해보지 않으신 분들도 계셔서 복습했는데, RESTful API 구현하면서 HATEOAS라는 것도 알게 되었다. 스터디가 끝난 후 회고하면서, 다소 아쉬운 부분도 있었지만(후반부에 참여율이 떨어짐) MSA 입문은 성공적으로 한 것 같아 기쁘다. 기본 철학은 모듈화를 분산 환경에 적용하는 것이고, 변경 사항을 유연하고 빠르게 .. 2024. 1. 18.
마이크로서비스의 실패 사례와 모듈형 모놀리스 제안! 우아한 모놀리스 세미나 마이크로서비스 → 모놀리스 ?! 😱 본질은 “얼마나 빨리 변경을 수용해 고객에게 비즈니스적 영향을 전달할 수 있는가?” 충분한 도메인 분석과 관리 인력이 뒷받침해주지 않으면 마이크로서비스가 비즈니스 민첩성의 발목을 잡을 수 있다. 처음 만드는 시스템이라면, 모듈화된 모놀리스 서비스로 출발해 트래픽 변동에 따라 유연하게 분리하고 통합하는 방법을 시도해볼 것을 권장한다. 얼마 전 클라우드 커뮤니티 세미나에서 DDD 발표하신 분이 계셨다. 현업에서는 MSA를 어떻게 사용하고 있나 궁금해서 이것저것 질문했더니 코드 일부분을 보여주셨는데, 너무 복잡해서 깜짝 놀랐다. 코드가 더러워지기 딱 좋아보이고, 인프라 관리도 굉장히 복잡해보였다. 발표자분께서도 복잡성에 대해서 인정하셨고, 그 부분이 관건이라고 하셨다. 복잡.. 2024. 1. 17.
도메인 주도 설계로 시작하는 마이크로서비스 개발 거의 1년만에 완독했다..! 실습 Jhipster 사용하는 부분에서 오류가 많이 나서 반만 성공했다. 😅 내용이 궁금하다면 정리한 노션을 참고해주시기를 도메인 주도 설계로 시작하는 마이크로서비스 개발 | Notion 도메인 주도 설계로 시작하는 마이크로서비스 개발 - 이론 uncovered-chocolate-cea.notion.site 클라우드 클럽에서 마이크로서비스라는 주제에 관심을 가지고 공부를 해봤다. 처음에는 그저 인프라와 관련된 방법론이겠거니.. 라고 생각했는데 이 책을 읽으면서 도메인 주도 설계나 헥사고날 아키텍처 같은 소프트웨어 아키텍처 방법론, 분산 환경에서 트랜잭션 관리와 실패 복구 방법 등을 보면서 굉장히 다루는 분야가 넓다고 생각했다. 특히 2장의 아키텍처 별 패턴을 볼 때 분산환경에.. 2024. 1. 17.
S3 정적 웹 호스팅 작업 순서 버킷 생성 파일 업로드 정적 파일 호스팅 권한 설정 1. 버킷 생성 이름 : 유니크한 이름 리전 : ap-northeast-2 ACL 비활성화 모든 퍼블릭 액세스 차단 비활성화, 경고 확인 버전 관리 비활성화 기본 암호화 활성화 2. 파일 업로드 gpt가 만들어준 html과 css 파일이다. 이 녀석들로 호스팅을 해본다. 파일을 S3 루트 디렉터리에 업로드했다. 3. 정적 파일 호스팅 속성 탭의 맨 밑에 정적 웹 사이트 호스팅 메뉴가 있다. 활성화하면 엔드포인트가 생성된다. 4. 권한 설정 엔드포인트에 다른 사람들도 접근할 수 있도록 설정한다. 권한 탭에서 버킷 정책 편집을 클릭, 정책 생성기에서 정책을 만든다. 모든 객체에 대해 접근을 허용할 것이므로 Principal에 *를 둔다. ARN .. 2024. 1. 17.
json 데이터를 S3에 업로드하는 API 만들기 : With AWS API Gateway, Lambda, S3 Upload 참고 자료 https://www.youtube.com/watch?v=13SswprYsHQ → 이 영상에서는 http api gw 사용했는데, rest api gw와 통합하기 위해 아래 문서 참고해서 고침 https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/getting-started-lambda-non-proxy-integration.html#getting-started-new-api https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/api-gateway-payload-encodings.html Role 생성 entity type : AWS service .. 2024. 1. 17.