전체 글 (82) 썸네일형 리스트형 애그리거트 DDD START CHAPTER 3 정리 애그리거트, 덩어리 서비스를 개발하기 위해서는 도메인 객체들을 만든다. 서비스가 성장하고 시간이 흐르면 도메인 객체 모델은 복잡해지고 개별 구성요소 위주로 모델을 이해하게 된다. 복잡한 도메인을 이해하고 관리하기 쉬운 단위로 만들려면 상위 수준에서 모델을 조망할 수 있는 방법이 필요하다. 애그리거트는 관련된 객체를 하나의 군으로 묶어준다. 수많은 객체를 애그리거트로 묶어서 바라보면 좀 더 상위수준에서 도메인 모델 간의 관계를 파악할 수 있다. 애그리거트의 경계, 어떤 것들을 하나의 덩어리로 볼 것인가? 애그리거트는 독립된 객체 군이며, 각 애그리거트는 자기 자신을 관리할 뿐 다른 애그리거트를 관리하지 않는다. 경계를 설정할 때 기본이 되는 것은 도메인 규칙과 요구.. 더보기 Gradle 멀티 모듈 Gradle Multi Module Q. 백엔드 신규 프로젝트를 구성해야 한다고 할 때 어떻게 프로젝트를 구성할 것인가? IDE는 IntelliJ 사용 빌드 자동화 도구로는 Gradle 프로젝트 구성은 멀티모듈 위의 내용들 말고도 시장에서 교통정리를 마친 기술들이 몇 가지 있지만 이 글에서는 Gradle 멀티 모듈에 대해 이야기를 해보겠다. 모듈 프로그램의 기능을 독립적인 부품으로 분리한 것을 모듈이라고 하며, 모듈화 프로그래밍이란 이러한 분리를 강조하여 유지 보수와 타 프로그램에서의 코드 재사용을 손쉽게 하는 소프트웨어 설계 기법을 말한다. 모듈은 일반적으로 서브루틴과 데이터 구조의 집합체로서, 그 자체로서 컴파일 가능한 단위이며, 재사용 가능하고 동시에 여러 다른 모듈의 개발에 사용될 수 있다. [네.. 더보기 Dirty Checking - Dirty Checking (변화감지) 란? 엔티티의 데이터를 변경하고자 할 때 update 쿼리에 대한 코드를 작성하지 않고 JPA에서 트랜잭션이 끝나는 시점에 엔티티 조회 상태의 스냅샷과 비교하여 변경이 있으면 자동으로 데이터베이스에 Update query를 날려주는 기능 - 예시 @Transactional public void String changeUsername(Long userId, String userName){ User user = userRepository.findUserbyId(userId); user.changeName(userName); } 더보기 Exception Exception 에러와 예외 먼저 예외란 입력값에 대한 처리가 불가능하거나, 값이 잘못되어 정상적인 프로그램 흐름에 어긋나는 거을 의미한다. 자바에서 예외는 개발자가 직접 처리할 수 있기 때문에 미리 예측하여 핸들링할 수 있다. 에러는 시스템에 비정상적인 상황에서 발생하기 때문에 개발자가 애플리케이션 코드에서 처리할 수 없는 경우가 많다. Java에서 모든 예외는 Exception 클래스를 상속받는다. 크게 두 가지로 나눌 수 있는데 Checked Exception과 Unchecked Exception이다. Checked Exception이란 컴파일 타임에 컴파일러가 예외를 미리 알려줄 수 있는 예외를 의미한다. 그렇기에 체크드 예외를 처리하지 않으면 컴파일 오류가 발생한다. UnChecked Exce.. 더보기 Mindfulness at 피크닉 평점 (4.5 / 5.0) 한줄평 : 여러 작가들의 작품들을 감상하는 것에도 많은 것을 느낄 수 있었고 명상의 여러 방법을 압축해서 체험할 수 있게 해줘서 좋았다. 한줄요약 : 바쁘게 살아가는 현대인들에게 잠깐 멈춰서서 자신을 돌아보게 해주는 전시, Mindfulness - Being with Dying 죽음과 함께하는 삶 작품 : 차웨이 차이 - 바르도, 미야지마 타츠오 - 다섯개의 마주하는 원 두 작품 모두 죽음에 대해 생각하게 한다. 우리는 삶에서 죽음을 생각하지 않을 때가 많지만 언제나 우리주변에는 죽음이 존재한다. 바르도는 죽음과 환생 사이의 중간계를 일컫는 말로 이라는 책으로 부터 영감을 받아서 제작되었다. 이 작품은 사자(죽은 자)의 여정을 추상적인 이미지로 표현해 내어 가상의 여안실 안, .. 더보기 그랜드 부다페스트 호텔 평점 : 4.5/5 한줄평 : 마담 D, 구스타프, 제로의 다이나믹한 이야기를 그리는 사랑, 스릴러, 액션 영화 - 웨스 앤더슨 감독의 영화를 처음 보는데 팬이 되어버린 인생 영화다. 2014년 개봉작인데 훨씬 오래된 영화처럼 보인다. 그러나 전혀 지루하거나 진부하지 않고 담백하고 참신하다. - 액자의 액자의 액자식 구성이 돋보인다. 처음에는 젊은 여자가 죽은 작가의 동상앞에 서서 죽은 작가를 떠올린다. 죽은 작가의 노년시절 자신의 젊었을 적(주드로)에 늙은 제로를 만난이야기를 해준다. 또 이 제로가 다시 젊은 시절의 작가에게 구스타프의 이야기를 풀어주는 방식으로 영화가 전개된다. - 각 시대별 영화의 프레임 비율이 다르다. 액자식 구성에서 가장 깊숙한 곳에서는 정사각형에 가까운 비율로 영화를 제작했다... 더보기 토비의 스프링 - #6.AOP #AOP는 스프링의 기술 중에서 가장 이해하기 힘든 난해한 용어와 개념을 가진 기술로 악명이 높다. #트랜잭션 코드의 분리 - 비즈니스 로직이 주인이어야할 메소드 안에 이름도 길고 무시무시하게 생긴 트랜잭션 코드가 더 많은 자리를 차지 해결책 1. 메소드를 이용한 분리 (비즈니스 로직을 메소드로 뺸다.) -> 여전히 트랜잭션 코드가 존재한다. 순수하게 비즈니스 로직을 담고 있는 코드만 놔두고 트랜잭션 경계설정을 담당하는 코드를 외부로 빼낼 수 없을까? 해결책 2. 트랜잭션 기능을 따로 구현한 클래스(분리) + DI 장점 : 비즈니스 로직을 담당하고있는 코드를 작성 할 때에는 트랜잭션과 같은 기술적인 내용에는 신경쓰지 않아도 된다. 또한 비즈니스 로직에 대한 테스트를 손쉽게 작성할 수 있다. #고립된 단위.. 더보기 토비의 스프링 #5. 서비스 추상화 5장 서비스추상화 5.1 사용자 레벨 관리 기능 추가 비즈니스 로직 추가 사용자의 레벨은 BASIC, SILVER, GOLD 세 가지 중 하나다. 사용자가 처음 가입하면 BASIC 레벨이 되며, 이후 활동에 따라서 한 단계식 업그레이드 될 수 있다. 가입 후 50회 이상 로그인을 하면 BASIC에서 SILVER 레벨이 된다. SILVER 레벨이면서 30번 이상 추천을 받으면 GOLD 레벨이 된다. 사용자 레벨의 변경 작업은 일정한 주기를 가지고 일괄적으로 진행된다. 변경 작업 전에는 조건을 충족하더라도 레벨의 변경이 일어나지 않는다. 5.1.1 필드 추가 (실습 진행) Level Enum User 필드 추가 UserDaoTest 테스트 수정 UserDaoJdbc 수정 5.1.2 사용자 수정 기능 추가(실.. 더보기 이전 1 ··· 5 6 7 8 9 10 11 다음 목록 더보기