도메인 주도 설계하기 도메인 주도 개발을 진행할 때 가장 먼저 진행해야되는 것은 도메인 모델과 바운디드 컨테스트를 정의하는 것이이다. 만약 개발 먼저 진행했을 때의 문제점을 아래와 같은 문제점이 발생할 수 있다. 아래와 같은 문제점을 발생하지 않기 위해서는 개발을 먼저 진행하기 전에 도메인 전문가와 함께 설계를 같이 진행해야 한다. 도메인 이해 부족: DDD는 모두가 같은 수준의 도메인 지식을 가지는 것을 추구하고 통일된 유비쿼터스 언어를 사용하여 소통하는 것을 지향한다. 개발을 먼저 시작하면 같이 일하는 팀원 모두가 도메인에 대한 충분한 이해가 부족할 수 있다. 유지보수성 감소: 팀원 모두가 각각 다른 도메인 모델을 개발하면서 서로 간의 간극이 커지고 코드의 유지보수성이 감소하게 된다. 이는 시간이 지..
ECR 이란? 아마존에서 설명하는 ECR Amazon Elastic Container Registry(Amazon ECR)는 안전하고 확장 가능하고 신뢰할 수 있는 AWS 관리형 컨테이너 이미지 레지스트리 서비스입니다. Amazon ECR은 AWS IAM을 사용하여 리소스 기반 권한을 가진 프라이빗 리포지토리를 지원합니다. 따라서 지정된 사용자 또는 Amazon EC2 인스턴스가 컨테이너 리포지토리 및 이미지에 액세스할 수 있습니다. 원하는 CLI를 사용하여 도커 이미지, Open Container Initiative(OCI) 이미지 및 OCI 호환 아티팩트를 푸시, 풀 및 관리할 수 있습니다. 한마디로 도커 허브와 같은 컨테이너의 이미지를 관리하는 레지스트리 서비스 이다. 거기에 추가적으로 IAM(AW..
배포된 서비스에서 특정 API가 리다이렉트되고 난 뒤 401 에러가 발생하면서 문제를 일으키게 되었다. 해당 문제에 대해 원인은 발견하고 해결 했지만 무슨 이유로 생기는지 어떻게 해결해야되는지 정리하면 좋을 것 같아서 정리하게 되었다. 문제가 되었던 컨트롤러 @GetMapping("") public void hello(HttpServletRequest request, HttpServletResponse response) throws IOException { String nickname = "riospring"; logging(request); response.sendRedirect("/api/v1/user/" + nickname); } 내가 원했던 API 통신 path variable을 입력하지 않았을 ..
지금은 기술부채에 대해 관대적으로 대하고 프로덕트가 중심을 생각하고 개발하고 있지만 회사 입사 초기에는 많은 개발자들이 추천하던 클린코드, 소프트웨어 장인 정신 등을 읽으면서 클린 코드, 클린 아키텍처, TDD 등에 빠져살면서 이상주의 개발자처럼 개발했었다. 이런 이론만 접하고 공부하다보니 회사에 상황을 충분히 인지하지 못하고 프로덕트를 만들어서 가치를 창출하는 것보다 더 품질 높은 소프트웨어를 만들기위해 집착했었다. 그렇게 회사의 상황을 고려하지 못하고 회사에 기술부채가 너무 많아서 당장 기능 개발이 어렵다고 이야기하고 부채와 기능개발을 같이 하도록 개발자 인력 충원을 요청하고 이상적인 이론에 대해 공부 하다가 어느날 투자가 무산되어 회사가 망하게되면서 회사에 나오게 되었다. 해당 스타트업에 있었던 것..
Nginx란? 정적 파일을 서비스 해주는 경량 서버 static 한 파일(javascript, html, css, image) WebServer& API Gateway WebServer 클라이언트가 전달한 HTTP 요청에 따라 그에 대한 응답을 해주는 서버 url 요청에 따라 정적파일을 제공한다. API Gateway 클라이언트와 서버사이에서 중개자, 즉 대문 역활을 한다. 리버스 프록시, 로드밸런싱, SSL 보안, 접근 제한등의 역활을 함 Nginx는 Webserver 역활도 하지만 API Gateway 역활을 할 수 있다. Nginx 컨테이너 띄우기 1. Docker로 Nginx 이미지 내려받기 docker pull nginx:1.23 2. 테스트용 정적 html을 생성 Hello World 3. n..