본문 바로가기

전체 글

(730)
[Docker] 라이프 사이클 실습 기초적인 내용이지만, 한번 정리하면서 해보자..(옛날 생각도 하면서ㅎㅎ) 1. docker image pull docker pull nginx 2. docker container create docker create -p 80:80 --name nx nginx 3. docker ps -a 생성된 docker container 확인(나는 마리아디비했음) 4. docker start 생성된 컨테이너를 시작 5. docker stop 컨테이너를 멈춤 6. docker rm 컨테이너 삭제 7. docker rmi 도커 이미지 삭제 8. docker restart docker 컨테이너 재시작
[DDD] 도메인 모델 패턴 , Aggregate 모델링(1) Aggregate 패턴은 도메인 모델 패턴이라는 거대한 개념에서, 좀더 세분화 된 모델링을 할 수 있다. 거대한 도메인 모델 패턴에서 적당히 쪼개야 하는데 Aggreagte개념으로 좀더 세분하게 쪼개는 것이다. 도메인 모델은 행위 + 자료구조를 통해 비지니스 로직을 구현한다. 도메인 모델은 POJO로 구성한다. Aggreate가 뭘까? 서비스에서는 행위를 기준으로 도메인을 호출하는데 이를 서비스 단위로 Aggregate단위로 묶는것이다. 몇가지 타입을 공통으로 모델링을 해서 사용하라고 가이드를 한다. Value object 란 뭘까? DTO와 비슷해 보이지만, DDD에서는 해당 valueobject는 DTO와 다르다. 개념적으로 완전한 하나를 표현하고, 고유의 식별자를 가지지않는다. 저 3가지 중에 Co..
[DDD] 액티브 레코드 패턴 개체 모델을 만들고, 행위를 그 안에서 선언 서비스에서는 해당 행위에 대한 선언으로 로직을 처리한다. 액티브 레코드 패턴은 행위가 getter,setter,save()만 있는 것을 의미한다. 바람직한 것은 행위가 엔티티안에 들어가서 비즈니스 로직에 대한 처리를 담당해주는 것이 좋다. User라는 엔티티가 있다고 하면 주소변환에 대한 메소드 행위를 Member entity안에 넣는 것이다. 예를 들면 @Getter @Setter class Member{ private String city; private String dong; public void 주소바꾸기(String city,String dong){ this.setCity(city); this.setDong(dong); } } 뭐 이런식으로 진행이 되..
[DDD] 트랜잭션 스크립트 패턴 aggregate - 데이터 요소 command - api 후보 전통적인 방법 인 트랜잭션 스크립트 패턴이 있다. 트랜잭션 단위로 데이터베이스를 작업하는 것이다. 절자 지향 스크립트로 구현하고, 데이터베이스 직접 접근도 가능하다. -> 트랜잭션 간 비즈니스 로직이 중복 되기 쉽다, 추후 유지보수가 어려워진다. 이런 코드의 패턴은 무조건 거부는 아니고 유지보수하는데 불리하게 발전될 가능성이 높다. 왜냐면 최근 방문일시를 update하고 방문을 insert하는 것은 결국 추후에 if,else로 길게 발전될 가능성도 높고 각각의 메소드가 다른곳에서 중복적으로 사용될 가능성도 높기 떄문이다. 또한 만약에 코드에 sql 문이 있다면, DB의 기술에 대한 종속성이 존재해 버린다. 따라서 이런 코드는핵심 도메인 코드..
[Docker] Docker 라이프 사이클 (이론) 1. registry에서 이미지를 풀/푸쉬를 한다. 2. 컨테이너 가져온 이미지 바탕으로 create하고 3. create된 컨테이너를 run하면서 메모리에 컨테이너가 동작된다. docker 에서 run은 create + run의 개념이다. 따라서, docker 에서 run은 create가 필요한 초기1회만 사용하는것이 좋다. (계속 run을 실행하면, create, start해버리기 때문에 불필요한 컨테이너가 겁나 많이 는다.) 이 컨테이너를 중지하고싶으면 stop이라고 하면, 컨테이너가 꺼지고 메모리에서 내려가게되고 rm으로 컨테이너를 삭제 할수 있다. 이미지는 rmi 로 삭제하고.. 컨테이너를 쓰다가 commit하면, 컨테이너 기반으로 이미지를 만들수 있다고 한다. 자.. 라이프 사이클을 명령어로 ..
[Docker] Docker registry Docker registry 에 대해서 공부를 해보자 실무에서 써봤지만.. 뭐 한번더 기초적인 내용을 공부해보자 docker image들을 push,pull이 가능한곳이 docker registry라고 한다. 아래 그림을 보면 이해가...좀 더 잘되려나? 도커 퍼블릭 레지스트리 검색 및 확인 브라우저 : https://hub.docker.com/ Docker Hub Container Image Library | App Containerization Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by mil..
[k8s] 쿠버네티스 쿠버네티스 : 컨테이너 기반 오픈소스 가상화 프로젝트 기존 애플리케이션과 클라우드 네이티브 애플리케이션과의 차이는 대략적으로 이렇다. 이론을 아는건 지루한 일이지만, 뭔가를 시작하기전에 이론에 대해서 알고 시작하면 조금 더 좋다. 뭐 잘 알다 싶이, 클라우드 네이티브로 하면, 파드 개수를 조절해서 애플리케이션의 개수를 늘리거나 스케일에 좀 더 유연하고 이를 인그레스로 분산하고 뭐 등등 여러가지 장점이 있다. 이론은 귀찮으니, 이정도만 알고 바로 실습 ㄱ
[DDD] 컨텍스트 매핑 각기 다른 도메인들은 독립적으로 발전 할 수도 있지만, 상호작용해야한다. 각 접점이 존재한다. 이를 contract라고 한다. - 협력형 패턴 그룹 - 사용자,제공자 그룹 - 분리형 노선 결재자와 수취자에 대한 개념을 모델링을 했다고 하면, 각각 다른 도메인에 있어, 다른 위치에 있지만, 의미는 같다. 이를 같은 의미인지 통역해주는 과정이 컨텍스트 매핑이다. * 협력형 패턴 * 공유 영역 공유 영역이라고 하면, 라이브러리 영역을 공통으로 포함을 해서 배포를 각각 A,B를 한다. 마이크로 서비스할때는 공유 영역을 최소로 하는것이 중요하다. 대부분의 패턴은 공급자,소비자 패턴을 쓴다고 한다. 정보를 받을때 공급자 입장에서는 upstream, 소비자 입장에서는 downstream이라고한다. 상류의 모델에서, ..