Hexagonal Architecture 구현 - 1 (Multi-Module, Kotlin)
·
📄 Document/Project 설계
📚 헥사고날 아키텍처란?기본 구조 & API 구현 Repository헥사고날 아키텍처(Hexagonal Architecture)는 포트와 어댑터 아키텍처(Ports and Adapters Architecture) 라고도 불리며,어플리케이션의 핵심 비즈니스 로직을 외부 시스템(데이터베이스, 웹, 메시징 시스템 등)으로부터 완전히 분리하여 독립성을 높이는 클린 아키텍처 패턴 중 하나입니다.어플리케이션의 도메인 로직이 외부 의존성과 분리됨으로써, 유연성과 테스트 용이성을 크게 향상시킬 수 있습니다.아키텍처 구조이 구조는 도메인이 항상 중심에 위치하고, 외부 시스템과의 상호작용이 포트와 어댑터로 분리되는 형태로 동작합니다.도메인 중심 설계(Domain-Centric Design):어플리케이션의 핵심 비즈니스 ..
NCP -> AWS Server Migration - RDS
·
📄 Document/Server Migration
RDS RDBMS를 지원하며 Multi-AZ를 이용한 고가용성 데이터베이스 기본 인스턴스의 수행 작업(백업, 스냅샷)을 대신하여 기본 인스턴스의 부담 ↓ 기본 인스턴스의 스냅샷을 캡쳐 후, 다른 AZ에 복원하는 '동기식' 예비 복제본 생성 즉, Active(AZ A) - StandBy(AZ B, C) 구조를 형성한 후 지속적인 동기화 StandBy 전환 상황 - 전환 시 60 - 120초 소요 FailOver 실시 AZ 중단 DB 인스턴스 소프트웨어 패치 Read Replica 기본 DB 인스턴스가 읽기,쓰기를 담당한다면 Read Replica는, 읽기만 담당하여 Master DB Instance의 부담을 줄임 DB 인스턴스 스냅샷 캡쳐 후, 이를 기반으로 Replica를 생성해, 데이터를..
NCP -> AWS Server Migration - EC2 구매 옵션
·
📄 Document/Server Migration
EC2 rg6 ↔ m6g 차이점 도커 컨테이너 로그 → 외부 마운트 → 관리 용이하게 (하루 차이나게 전송) ex: 2023.05.01.log ContainerRegistry 구축 or AWS registry 알아보기. 도커용 서버 따로 (보안 중요) Ec2 → S3로 컨테이너 로그가 나갈 시 비용 추적 CI/CD → 유지보수성, 관리 차원, 기술적 이점 등 고려 요구사항 rg6 ↔ m6g 차이점 도커 컨테이너 로그 → 외부 마운트 → 관리 용이하게 (하루 차이나게 전송) ex: 2023.05.01.log ContainerRegistry 구축 or AWS registry 알아보기. 도커용 서버 따로 (보안 중요) Ec2 → S3로 컨테이너 로그가 나갈 시 비용 추적 CI/CD → 유지보수성, 관리 차원,..
NCP -> AWS Server Migration - 서비스 구상
·
📄 Document/Server Migration
서비스 구상 EC2 (Dedicated Host or Reserved Instance) 개발서버, 배포서버, 웹 어드민서버, Nginx 서버 4개 인스턴스 Elastic IP (무료) Reserved Instance를 기준으로 가격 측정 Dedicated Host도 고려 S3 Bucket Standard 검색이 주 용도, 데이터 단기 보관에 적합 Glacier 검색이 주 용도, 데이터 장기 보관에 적합 Standard_IA 주 용도 = 자주 액세스 하지 않지만 즉시 액세스 필요한 데이터 일 경우, 3곳의 AZ에 분산 저장됨 OneZone_IA 주 용도 = Standard와 동일하지만 1곳의 AZ 저장으로 인한 정보 손실 가능성 Intelligent Tiering 불규칙한 액세스 빈도를 가진 서비스일 경우..
Agile
·
📄 Document/Project 설계
💡 Agile 애자일(Agile)은 소프트웨어 개발에서 사용되는 프로젝트 관리 방법론 중 하나입니다. 애자일은 기존의 전통적인 워터폴 방식과는 달리, 유연한 방식으로 프로젝트를 진행하며, 변경에 대한 대응력과 고객과의 소통을 강조합니다. 이를 통해 프로젝트의 성공 확률과 품질을 높일 수 있습니다. 애자일 방법론에는 다양한 종류가 있지만, 대표적으로 다음과 같은 것들이 있습니다. 스크럼(Scrum): 일정 주기마다 기능을 개발하고 검토하며, 문제를 해결하는 방식으로 진행되는 방법론입니다. 스프린트(Sprint)라는 단위로 일정 주기마다 개발을 진행하고, 매 스프린트 끝에서 검토 및 피드백을 받습니다. 익스트림 프로그래밍(XP, Extreme Programming): 개발 프로세스의 모든 단계에서 코드 품질..