DO YOU KNOW HEXAGONAL?
·
카테고리 없음
레이어드 아키텍쳐에서 인터페이스를 잘 사용하면 그게 헥사고날 아키텍쳐 아닌가?헥사고날 도입 초기에 가진 의문이다. 레이어드 아키텍처도 계층 간 인터페이스를 정교하게 설계하면 DIP(의존성 역전 원칙)과 OCP(개방-폐쇄 원칙)를 충분히 만족시킬 수 있다. 하지만 헥사고날 아키텍처는 단순히 원칙을 준수하는 수준을 넘어, 도메인 중심으로 의존성의 방향을 재정의하고 경계를 명확히 세움으로써 시스템의 진정한 독립성과 교체 가능성을 확보한다는 점에서 철학적 출발점이 다르다. 내가 느낀 레이어드 아키텍쳐의 주요 문제점은비즈니스 로직이 퍼짐- 레이어드 구조에서는 Service 계층이 종종 도메인 로직과 애플리케이션 로직을 모두 처리하는 덤핑장이 되는 문제가 있었다. 특히, 비즈니스 규칙이 Service, Repos..
Cronjob을 활용한 기업정보 크롤링 파이프라인 구축하기(1) - 기능 구현
·
Infra
직행과의 산학협력을 진행하면서, 기업 뉴스를 조회하는 새로운 기능을 제안하게 되었다.특히 제안한 기능은 해당 기업의 PR 부서가 내는 뉴스나 글에 대해서 보여주는 것이 목적이었고, PR 부서의 뉴스들만을 모아서 제공하는 서비스는 따로 존재하지 않았기 때문에 직접 뉴스나 글을 수집하는 파이프라인을 구축해야했다. 우선 최종 구축하게 된 크롤링 파이프라인의 흐름은 아래와 같다.전체 프로세스를 크롤링, 데이터 적재로 구분하여 구현하게 되었고, 크롤러는 크롤링의 역할을 수행하게 되고, 로더는 정보를 DB에 저장하는 역할을 수행하게 된다. # 크롤러와 로더로의 분리우선 가상 면접 사례로 배우는 대규모 시스템 설계 기초 책을 참고했을 때, 크롤러를 설계하는 로직에서 한 곳에서 모든 걸 처리하기보단 큐를 넣고 DB에..
ArgoCD UI Permission Error 해결
·
Infra
문제발생Argo CD API 서버가 팟과 deployment 리소스들을 조회할 권한이 없어서, UI에서 “세부 정보 가져오기” 요청을 보내도 403/권한 부족 에러가 났다. 1. ArgoCD UI에서 리소스를 클릭할 때 에러가 발생하는 것은 ArgoCD 서버가 해당 리소스에 대한 세부 정보를 가져올 권한이 부족하거나, RBAC 설정에 문제가 있을 수 있다. -> ArgoCD 서버의 권한을 확장 시도$ kubectl patch clusterrole argocd-server --type json -p='[ { "op": "add", "path": "/rules/-", "value": { "apiGroups": [""], "resources": ["pods", "servic..
EKS 클러스터 및 노드 그룹 생성, Kubectl 설치 및 연결
·
Infra
간단하게 워커 노드 2대로 이루어진 eks 를 구성하고 스프링 애플리케이션을 배포하려고 한다. 1. AWS IAM USER 생성IAM > 사용자 > 사용자 생성root 계정으로 작업하는 것은 지양해야하기 때문에, 관리자 권한을 가진 IAM USER를 생성한다. 엄격하게 필요한 권한만 줄 수도 있지만, 우선 클러스터를 구축하고 추후에 새로운 USER로 바꿀 생각이다.2. AWS IAM ROLE 설정IAM > 역할 > 역할 생성AWS 리소스 간에 서로에게 명령을 내리려면 다른 리소스를 제어하거나 접근할 수 있는 권한을 가진 ROLE이 할당 돼있어야 한다. 우선 클러스터 생성 과정에서 만들어야할 ROLE은 아래 2가지이다.EKS 클러스터 자체(컨트롤 플레인)가 AWS 리소스를 관리할 수 있도록 허용해 주는 역..
쿠버네티스 리소스 관리 pod 과 deployment
·
Infra
1. 쿠버네티스는 어떻게 컨테이너를 실행하고 관리하는가?컨테이너는 일반적으로 하나의 가상화된 환경을 가리킨다. 또한 다양한 런타임을 가질 수 있다. 쿠버네티스에서는 런타임에 관계없이 인터페이스를 통해 컨테이너를 관리하며, 컨테이너 자체를 또 다른 가상 환경인 파드로 감싸서 관리한다. 파드란 컴퓨팅의 단위로, 클러스터를 이루는 노드 중 하나에서 실행된다. 파드는 대게 하나의 컨테이너를 포함하지만, 설정에 따라 하나의 파드가 여러개의 컨테이너를 포함할 수도 있다. 노드와 팟, 컨테이너의 관계는 아래 그림과 같다.kubectl run hello-kiamol --image=kiamol/ch02-hello-kiamolkubectl get podskubectl describe pod hello-kiamol 위 Ru..
행복박사들에 대한 고찰
·
카테고리 없음
보호되어 있는 글입니다.
LG CNS 면접 회고록
·
카테고리 없음
보호되어 있는 글입니다.
모니터링 환경 설정 - 배포 포트가 변경될 때 8080...8081,, switching
·
Infra
무중단 배포를 위해서 Blue-Green 전략을 사용하기로 했다. 클라우드 로드밸런서가 연결된 환경에서 블루 그린 배포를 구현할 수 있는 다양한 방법이 있지만, 우리 팀의 서비스는 한 물리 서버 내에서 모든 배포를 진행하고 있다. 블루 그린 배포 환경 구축에 대한 고찰은 아래 포스팅에서 살펴볼 수 있다. 0. 블루-그린 배포 환경 구성에 대한 고찰이건 이전 포스팅을 참고하면 좋다. 1. Promtail, Loki, Grafana, Prometheus, Logback-spring.xml이 뭔데?이건 이전 포스트를 참고하면 좋다. 2. (Problem) 8081 포트로 변경하면서 생기는 문제점어떤 서비스가 영향을 받을까?- logback-spring.xml 은 스프링 서버가 설정으로 가지고 운영하는 파일이..