내가 그린

오브젝트: 합성과 유연한 설계로 상속의 문제점 해결하기

11장 합성과 유연한 설계 0. 합성은 전체를 표현하는 객체가 부분을 표현하는 객체를 포함해서 부분 객체의 코드를 재사용한다. 두 객체 사이의 의존성은 런타임 시점에서 결정된다. 내부에 포함되는 객체의 구현이 아닌 퍼블릭 인터페이스에 의존한다 코드 재사용을 위해서는 객체 합성이 클래스 상속보다 더 좋은 방법이다 1. 상속을 합성...

모비닥-EMR 연동 프로젝트 개발 경험: 외부 시스템 연동 설계와 구현

병원은 의료법 제22조에 따라 환자의 진료 기록을 작성하고 보관해야 합니다. EMR(Electronic Medical Record)시스템은 환자의 의료 정보를 전자적으로 관리하여 수기 작업을 최소화하고 문서 관리 비용을 절감 하는 등 병원 운영에 필수적인 시스템입니다. 모비닥 통합 클라이언트를 사용하는 대부분의 병원은 모비닥과 EMR을 함께 사용합...

읽기 좋은 코드 작성법: 추상화, 논리적 사고, 객체지향 원칙 실전 적용기

박우빈님의 Readable Code: 읽기 좋은 코드를 작성하는 사고법에서 학습한 내용을 정리한 글입니다. 1. 추상 클린 코드를 추구하는 이유는? 코드가 잘 읽히기 위해서 = 유지보수 하기가 수월하다 = 시간 & 자원이 절약 된다. 추상과 구체 추상이란 중요한 정보는 가려내어 남기고, 덜 중요한 정보는 생략하여 버리는 것이다...

재고 시스템으로 배우는 동시성 이슈 해결 전략: Synchronized, DB Lock, Redis 비교 분석

최상용님의 재고시스템으로 알아보는 동시성이슈 해결 방법에서 학습한 내용을 정리한 글입니다. 1. 쓰레드를 사용하여 재고 감소 테스트 하기 동시성을 고려하지 않고 재고 감소 기능을 구현할 할 경우, 경쟁상태 문제가 발생한다 @DisplayName("동시에 재고 감소를 요청한다.") @Test void decreaseWi...

실용적인 테스트 코드 작성법: 스프링 애플리케이션 테스트 전략

박우빈님의 Practical Testing: 실용적인 테스트 가이드 를 정리한 내용입니다. 테스트는 왜 필요할까 테스트 코드를 작성하지 않고 수동으로 테스트를 하면 아래와 같은 단점들이 있다. 테스트에 누락이 있을 수 있다. 경험과 감에 의존한다. 피드백이 늦다 소프트웨어의 신뢰도가 낮아진다 테스트 코드 작성도 중요하지...