전체 글 (47) 썸네일형 리스트형 DDD 도메인 모델링 개념 다시 잡기 A. Help와 Progress의 관계 문제처음에는 JPA 연관관계로 만들어야 하니 Progress를 엔티티로 만들고 Progress도 Progress만의 리포지토리가 있었습니다.Progress도 하나의 서브도메인이고 트랜잭션을 만드는 애그리거트라 생각하여 스스로의 리포지토리가 필요하다고 생각했습니다. 그렇지만 이렇게 되면 Help의 상태를 표현하는 Progress가 스스로 변경 요청을 받는 것이 가능해 Help가 자신의 상태의 일관성을 관리하지 못하게 됩니다. 이 문제를 해결하며 DDD의 각 개념들에 대해 혼동이 생겨 다시 개념 정리를 하며 Help와 Progress의 관계에 대해 고민해 보았습니다. B. DDD의 도메인 모델링 개념 다시 잡기.1. 도메인(Domain)비즈니스의 한 부분을 의미하며 전.. 응답속도 향상을 위한 캐싱 적용기 (+ 언제 캐싱을 쓰는게 좋을까?) A. 캐싱을 언제 사용하면 좋을까? 레디스를 이용해서 캐싱을 사용하게 되면 RAM에서 캐싱된 데이터를 가져오게 됩니다. RAM에서 가져오는 데이터는 HDD나 SSD같은 보조 기억장치에서 가져오는 것보다 속도가 월등히 빠르기에 RAM에 캐싱된 정보는 매우 빠르게 가져올 수 있습니다. 하드디스크에서 가져오는 것과 RAM에서 데이터를 가져오는 것은 속도가 50배 정도의 속도 차이가 생깁니다(Gecko & Fly). Memcached와 Postgre SQL의 db cache와 비교한 실험에서는 읽기 속도가 3배까지 차이가 난다고 합니다. (Kreitech) 이런 차이가 생기는 이유는 CPU와의 근접도도 있지만 데이터 조회 동작에 우선순위를 둔 DRAM의 설계와 저장에 우선 순위를 둔 SSD의 NAND .. AOP를 사용한 로그인 확인 구현 A. AOP란AOP(Aspect Oriented Programming)이란 Aspect라는 종단 관심사(Crosscutting Concerns)를 담은 모듈을 기반으로 프로그래밍을 하는 것입니다OOP에서 모듈의 관심사가 Class이듯이 AOP에서는 Aspect 입니다.Aspect는 기본적으로 어드바이스와 포인트 컷으로 이루어 집니다.포인트컷은 적용 위치를 선별하고 어드바이스는 부가 기능을 추가합니다.Aspect를 통해 핵심 관심사(핵심 비즈니스)와 부가 기능을 분리할 수 있고 반복되는 부가기능은 재사용 가능합니다.예) 트랜잭션, 로깅등B. AOP의 원리 및 발전1. Proxy 패턴부가 기능을 추가하는 AOP의 Aspect는 프록시 패턴에서 시작합니다.기능타깃과 같은 메소드를 구현하고 있다가 메소드 호출.. 이전 1 2 3 4 5 ··· 16 다음