Home
잔다리 블로그
Cancel

한번 듣고 평생 써먹는 코드 리뷰 노하우

소개 이번 포스트는 한번 듣고 평생 써먹는 코드 리뷰 노하우를 시청하고 정리하는 포스트입니다. 목차 왜 코드 리뷰를 해야 하나? 우리가 살고 있는 시대 개발생산성 / SW 공학의 특성 / 장인정신 코드 리뷰의 정의 / 목적 코드 리뷰의 절차 왜 코드 리뷰가 어려운가 코드 리뷰...

8장. 경계 간 매핑하기

소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 경계 간 매핑하기 늘상 겪는 문제인 각 계층의 모델을 매핑하는 것에 대해서는 거의 다뤄지지 않는다. 여러분도 매퍼 구현을 피하기 위해 두 계층에서 같은 모델을 사용하는 것에 대해 논의 해 본적이 있을 것이다. 매핑에 찬성하는 개발자 : 두 계층 간...

7장. 아키텍처 요소 테스트하기

소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 아키텍처 요소 테스트하기 많은 프로젝트의 자동화된 테스트는 규칙에 따라 작성되지만 테스트 전략을 물었을 때 제대로 답변하는 이가 없었다. 이번 포스트에서는 육각형 아키텍처에서의 테스트 전략에 대해 이야기 합니다. 테스트 피라미드 테스트 피라미드에 따...

6장. 영속성 어댑터 구현하기

소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 영속성 어댑터 구현하기 전통적인 계층형 아키텍처의 경우 영속성 계층에 의존하게 되어 데이터베이스 주도 설계가 된다고 이야기 했었다. 이번 포스트에서는 이러한 의존성을 역전시키기 위해 영속성 계층을 애플리케이션 계층의 플러그인으로 만드는 방법에 대해 살펴본다. ...

5장. 웹 어댑터 구현하기

소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 웹 어댑터 구현하기 UI나 다른 시스템에서 애플리케이션을 호출하는 방식으로 상호작용하는 HTTP API가 웹 어댑터에 해당 됩니다. 의존성 역전 아래의 그림은 웹 어댑터와 관련된 아키텍처 요소(어댑터 자체와 애플리케이션 코어와 상호작용 하는 포트)에 조금 더...

4장. 유스케이스 구현하기

소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 유스케이스 구현하기 이전 포스트에서 만든 육각형 아키텍처에서 애플리케이션, 웹, 영속성 계층이 현재 아키텍처에서 아주 느슨하게 결합돼 있기 때문에 필요한 대로 도메인 코드를 자유롭게 모델링할 수 있다. DDD를 할 수 있고, 풍부하거나(rich), 빈약한(an...

3장. 코드 구성하기

소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 코드 구성하기 코드를 보는 것만으로도 아키텍처가 파악 된다면 굉장히 좋을 것입니다. 이번 포스트는 BuckPal 예제 코드를 구조화 하기 위해 육각형 아키텍처를 직접 레이아웃을 구성하도록 하겠습니다. 아래는 사용자가 본인의 계좌에서 다른 계좌로 돈을 송금할 ...

2장. 의존성 역전하기

소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 의존성 역전하기 단일 책임 원칙(SRP, Single Responsibility Principle) 우리가 잘 알고 있는 정의는 하나의 컴포넌트는 오로지 한 가지 일만 해야하고, 그것을 올바르게 수행해야 한다. 하지만 실제 정의는 컴포넌트를 ...

1장. 계층형 아키텍처의 문제는 무엇일까?

소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 계층형 아키텍처의 문제점 웹 계층, 도메인 계층, 영속성 계층으로 구성된 전통적인 웹 애플리케이션 구조 계층형 아키텍처는 맨 위의 웹 계층에서 요청을 받아 도메인 계층에 있는 서비스로 요청을 보낸다. 서비스에서는 필요한 비즈니스 로직을 수행하고, 도...

.NET Serilog 사용법

Serilog https://serilog.net/ 아래의 예제는 .NET Worker Service 프로젝트에서 사용하는 방법에 대해 소개하도록 하겠습니다. Serilog란? 파일, 콘솔 등의 다양한 저장소의 로깅을 지원합니다. 그리고 설정하기 쉬운 API로 되어 있으며 다양한 플랫폼에 이식이 가능합니다. 또한 구조화 된 로깅으로 다른 플랫...