본문 바로가기

dependency3

Go - mocking - 출처: https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/mocking - 개요 mocking에 대해 알아보고 mocking를 사용할 때 장점에 대해 알아본다. - Countdown 프로그램 3부터 하나씩 줄어드는 숫자를 출력하는 프로그램을 만들어보자. 단 각 숫자를 출력하기전에 1초를 멈추고 나서 출력한다. 0에 도달할 때는 0대신 Go!를 출력한다. package main func main() { Countdown() } 사실 프로그램이 맞나 싶을 정도로 보잘 것 없는 요구사항이지만 언제나 작은 단계의 성공적인 소프트웨어를 구축한 후, 이를 점차 반복적인 테스트 접근법을 통해 구축해야 한다. 이렇게 하려면 요구사항을 가능한 잘게 쪼갠 후 동.. 2022. 1. 2.
Go - dependency injection - 출처: https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/dependency-injection - 개요 Go의 표준 라이브러리의 인터페이스인 Writer를 이용하여 Dependency injection(이하 'DI')에 대해 알아본다. DI를 이용하면 test에 얼마나 많은 도움이 되는지 이해한다. - Dependency injection 한국의 국룰 프레임워크인 Spring을 써본적이 있다면 DI 라는말을 들어본적이 있을것이다. 용어도 멋있기 때문에 오해가 있는데 DI에 관한 약간의 오해를 줄이고자 한다. 우선 DI를 하기 위해 반드시 프레임워크가 필요한것은 아니다. 또한 코드나 디자인을 복잡하게 하지 않는다. test를 용이하게 하고, 함수.. 2021. 12. 31.
UML - 클래스 다이어그램과 의존 - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 의존 한 요소가 다른 요소에게 영향을 미칠 때 두 요소 사이에는 의존이 존재한다고 얘기한다. 한 클래스가 다른 클래스에 메시지를 보내거나, 다른 클래스를 매개변수로 사용하거나, 다른 클래스 데이터의 일부를 갖고 있을 수 있다. 어플리케이션의 규모가 커질수록 의존에 신경을 써야한다. 의존을 제어하는데 실패하면 프로젝트 초반에는 별 영향이 없겠지만, 후반부로 갈수록 기능 하나를 개발하거나 변경하는데 드는 공수가 걷잡을 수 없이 커진다. 위 다이어그램은 어플리케이션에서 흔히 볼 수 있는 의존구조이다. Benefits Window는 Employee 클래스에 의존하고 있다. Benefits Window 는 표현 (presenta.. 2021. 2. 10.