분류 전체보기 썸네일형 리스트형 최범균 <DDD START! > 3장 요약 3장. 애그리거트복잡한 도메인 객체를 이해하고, 관리하기 쉬운 단위로 만들려면, 상위 수준에서 모델을 조망할 수 있는 방법이 필요하다.수많은 객체를 애그리거트로 묶어서 생각하면, 좀 더 상위 수준에서 도메인간의 관계를 이해하는 데에 도움이 된다. 그리고 애그리거트는 일관성을 관리하는 기준이 되어서, 복잡한 도메인을 단순한 구조로 만들어준다. 참고 : DDD 구현 기초 슬라이드 쉐어 위의 다이어그램처럼 애그리거트는 서로 경계가 있다. 한 애그리거트에 속한 객체는 다른 애그리거트에 속하지 않는다. 애그리거트는 독립적이기 때문에, 다른 애그리거트를 관리하지 않는다. 이러한 경계는 도메인 규칙과 요구사항과 관련있다. 도메인 규칙에 따라 함께 생성되는 구성요소는 한 애그리거트에 속할 가능성이 높다. 그래서 한 애.. 최범균 <DDD START! > 1장-2장 요약 1장. 도메인 모델 시작도메인 모델특정 도메인을 개념적으로 표현한 것이다. 도메인 모델은 객체 모델 / 상태 다이어그램 등으로 표현할 수 있다. 도메인 모델 패턴 도메인 모델은 엔터티와 밸튜 타입으로 구성된다.엔터티는 고유한 식별자를 갖고 있는 개념을의미하고, 밸류타입은 엔터티에 속해있으면서, 개념적으로 완전한 하나를 표현할 때 사용한다.예를 들어, "주문"이라는 도메인은 고유한 주문 번호를 갖고 이는 엔터티라고 볼 수 있다. 그리고 주문 안에는 배송지 정보, 수신인 등을 의미하는 속성이 저장되는데, 이를 밸류 타입으로 볼 수 있다. 주의할 점도메인 모델에서는 get/set 메서드를 사용하지 않는 것이 좋다. set 메서드를 사용하면, 도메인 객체를 생성할 때 완전한 상태가 아닐 수도 있다는 단점이 있다.. 프로젝트를 시작하는 방법 (ver.2017) 백그라운드최근 팀이동을 하면서, 일하는 방법이 달라졌다. 그래서 2017년도에는 어떤 방식으로 일했었는지 기억하기 위해, 글로 남기고자 한다. 가상의 문제어떤 방식으로 일하고, 생각했는지에 대해서 설명하기 위해 가상의 문제를 정하려고 한다.사용자가 광고주 앱에서 LIKE를 누른 상품을 인스타그램에서 광고로 보여주는 다이나믹 광고 상품을 만들어야한다고 생각해보자. (지하철포스팅) 인스타그램은 어떻게 내가 찜한 상품을 광고로 보여주는 걸까? - 페이스북/인스타그램에 있는 Dynamic AD를 만들어야한다고 상상해보자 ㅎㅎ 과제의 시작 (1) - 백로그 미팅잡기"프로젝트를 시작하자!"라고 결심하면, 백로그를 만들고, 스토리 포인트를 산정하기 위한 미팅을 잡는다. 백로그 미팅의 목적은 아래와 같다.- 프로젝트의.. [Redis]Redis에서 LRU Cache를 사용하는 방법 Using Redis as an LRU cache Redis에서는 새로운 값이 추가되었을 때, 자동으로 오래된 데이터를 지워주는 기능이 있다. Memcached 시스템이서도 이러한 기능이 있기 때문에, 개발자들 사이에서는 익숙한 기능이다. 이 포스트에서는 메모리 사용량 제한을 위해서 사용하는 값인 maxmemory, 메모리 관리 정책인 eviction policy, 원조 LRU와 REDIS LRU의 차이에 대해서 이야기할거다. Maxmemroy 설정하기 maxmemory 값은 redis.conf 파일이나 config set 커맨드 명령문으로 설정할 수 있다.maxmemory 100mbmaxmemory를 설정해주지 않으면, 64bit 시스템에서는 초기값이 0으로 설정된다. 32bit 시스템에서는 3GB으로.. 강대명 <대용량 서버 구축을 위한 Memcached와 Redis> 후기 총 79페이지여서, 간단하게 읽기 좋은 책이다. 퇴근시간 때, 지하철에서 읽으니 술술 읽혔다 ㅎㅎ 처음에는 Memcached와 Redis의 차이, 캐시 사용 시 유의사항 같은 내용이 있을 거라 기대했다.그런데 웹 서비스를 확장할 때, 캐시를 사용해야하는 이유와 캐시가 동작되는 개념에 대해서 가볍게 써있단 느낌이 들었다. 최근 저자가 작성하신 "신입 사원을 위한 웹서비스 확장 전략"이라는 슬라이드 쉐어를 읽었었다. 그런데 책의 내용이 아래의 슬라이드 쉐어와 유사하단 느낌이 들었다. 웹서비스를 개발하는 초기 단계인 사람들이, 캐시를 왜 써야하는지, 뒷단에서 어떻게 돌아가는건지 이해하는 데에 도움이 되는 책인거 같다. webservice scaling for newbie from DaeMyung Kang [beanstalk]eb cli으로 배포 시, 주의할점 1년간 빈스톡을 사용하면서, 배포할 때 주의해야했던 점들을 정리하고자 한다. 1. 빈스톡은 local git code를 배포한다. remote에 있는 git code를 땡겨다가 배포하는게 아니다. 그래서 배포하기 직전에, 최신 master code를 로컬로 땡겨온 다음에 배포해야한다. 2. 빈스톡에 있는 모든 인스턴스는 같은 애플리케이션 버전이여야한다. 터미널로 eb deploy 명령문을 실행해서 배포를 하던 도중, 실수를 한게 있어서 나도 모르게 command + c 버튼을 눌러서, 배포를 강제종료했던 적이 있다. 그런데 배포 강제 종료는 일을 더 꼬이게 만든다. 빈스톡에서는 모든 인스턴스의 버전이 같아야한다. 예를 들어 모든 인스턴스가 같은 버전으로 배포되기 전에, 배포를 중단시켜 버리면 최신 버전으.. [beanstalk]애플리케이션 버전 관리 Beanstalk Application Version 빈스톡은 배포 이력을 애플리케이션 버전으로 관리한다. 그래서 새로운 코드를 배포하면, 새로운 애플리케이션 버전이 생성된다. 애플리케이션 버전은 AWS Console 페이지에서 확인할 수 있다. 애플리케이션 버전으로 배포된 코드 이력을 확인할 수 있고, 롤백도 쉽게 할 수 있다. 나는 배포를 할 때, 애플리케이션의 Description을 추가해주고 있다. Description을 관리해줘야, 이 당시에 어떤 기능이 배포되었는지 이해하기가 쉽다. eb deploy -m "신규 기능 설명" 이런식으로 배포할 때, message 옵션을 넣어주면, 이 값이 application의 Description으로 추가된다. 참고 자료 AWS Elastic Beanstal.. [beanstalk]eb deploy timeout 옵션 현상 EB CLI 명령문으로 로컬에서 코드를 배포할 때, 시간이 오래걸리면 배포 로그가 터미널에 안보이는 현상이 발생한다. ( 이 때, timeout과 관련된 에러가 떠서 당황스러울 수 있다. 그런데 뒷단에서 배포가 잘 진행되고 있기 때문에, 당황할 필요는 없다. 그냥 배포 로그만 안보일 뿐이다. ) 방법 배포할 때, 아래처럼 timeout 옵션을 주는게 좋다. eb deploy -m "이슈번호-브랜치명" --timeout 100000 이전 1 ··· 24 25 26 27 28 29 30 ··· 39 다음