진짜 개발자
본문 바로가기

전체 글 (총 582개)

DDD - 도메인 모델 변경 과정 정리 Tour-cash 도메인 모델 변경 v1(카드, 분실 분리) 도메인 모델 변경도메인 모델은 처음부터 완벽하게 구현하기가 무척 어렵습니다. 거의 불가능에 가깝다고 책에도 소개됩니다. 따라서 처음에는 개요를 알 수 있는 수준으로 개념모델을 구현하고, 운영하며 얻게되는 도메인 지식을 바탕으로 점차 구현모델에 가깝게 변형해 나가야 합니다. 이번 포스팅에서는 서비스를 운영하며 얻게된 지식을 바탕으로 도메인 모델을 변경한 것을 정리해보려고 합니다. 서비스 소개업무 기밀이 누설 될수도 있는 관계로 서비스의 대략적인 설명만을 적겠습니다. 1. 외국 고객에 대한 환급 서비스입니다. 2. 고객은 지급된 카드를 통해 결제를 하며, 카드 사용내역을 확인할 수 있습니다. 3. 사용내역에서 환..
Spring Boot - Mockito를 이용해 외부라이브러리를 이용하는 서비스 테스트하기 Third Party Lib 외부 라이브러리에에 의존하는 서비스를 통합테스트 하고 있었습니다. 이때 발생했던 문제를 Mockito를 이용해 처리하는 과정을 정리해보도록 하겠습니다. 시나리오해외에서 여행을 온 관광객이 물건을 구매하고, 환급을 요청합니다.요청된 환급을 관리자가 검증합니다.검증이 완료되면, 사용자의 MobileApp에 Push알림이 전송됩니다.테스트를 진행할 도메인은 위와 같습니다. 테스트할 메소드xxxxxxxxxx@Service@Transactional@RequiredArgsConstructorpublic class AdminRefundEstimateService { // ... private final FirebasePushService pushService;​ public void es..
CICD - Codedeploy란? (Codedeploy를 이용한 자동배포(CD) 환경 구축하기) AWs CodeDeploy란 이번 포스팅에서는 AWS의 배포서비스인 Code Deploy에 대해서 알아보도록 하겠습니다. Code deploy란?CodeDeploy는 SourceCode를 운영환경에 자동 배포하는 역할을 수행하는 AWS Service입니다. 즉, CD 지속적 배포 서비스입니다. CodeDeploy의 배포대상은, EC2, ECS, Lambda등 여러가지가 존재하지만 이번 포스팅에서는 EC2에 배포하는 방법을 알아보도록 하겠습니다. Code deploy의 구성 에이전트ec2에 설치하는 프로그램으로, CodeDeploy에서 해당 ec2를 사용할 수 있도록 하는 프로그램입니다. ec2이외의 배포환경에는 필요하지 않습니다. 에이전트는 , 어플리케션 개정, 배포기록, 배포스크립트 등을 EC2의 ..
CICD - 로컬 PC에 CICD환경 구축하기 (Jenkins, Ngrok, docker) jenkins 원격배포 로컬 환경에 자동배포 서버 구축하기회사에서 서버를 구축하며, 자동배포 환경을 여러번 구축했었으나, 자세히 공부를 하지 않았던 탓에, 번번히 잊혀져만 갔습니다. (설치 과정이나, 설정이나, 처음이어서 그랬던지, 구축을 완료하고나면 진이 빠졌었습니다.) 그러던중 Docker라는 것을 중간에 공부하게 되었고 이를 통해 jenkins를 쉽게 구동할 수 있다는것 또한 알아내었습니다. 하지만, 사내 PC에 jenkins를 설치해봤자, github의 webhook이 닿을수 없는 사설 IP를 가지고 있는 상황이었고, 따라서 jenkins를 사내 PC에 설치해봐야, 자동배포환경을 구축할 수 없었습니다. 하지만, 또 다시 Ngrok라는 것을 발견했고, 이를 통해 github-webhook..
ApplicationKnowhow/Server - 공인 IP없이 외부에서 접속 가능하게 만들기(Ngrok란?) ngrok 이번 포스팅에서는, 로컬 컴퓨터에 public dns를 부여하여, 외부에서 접근할수 있게 만드는 Ngrok 의 사용방법에 대해 알아보도록 하겠습니다. 외부에서 로컬 PC에 접근해보기ngrok에 대해서만 궁금하신 분은 이단원은 넘어가셔도 됩니다. 우선 외부에서 로컬 pc에 접근할수 있도록 하는 방법에 알아보기 이전 간단한 네트워크 개념들을 살펴보겠습니다. Ngrok를 알려드리기 위한 포스팅이므로, 네트워크에 대한 자세한 내용은 생략하며 설명드리겠습니다. IPip는 간단히 말씀드려, Network에 연결된 각각의 Device들을 구분하기 위한 고유한 주소 같은 것입니다. 예를 들어 한국 사람들을 고유하게 구분하기위해, 주민등록 번호가 사용되듯이, 정보를 고유의 컴퓨터로 지정하여 수신 또는 발신하기..