tags / clean-code

3 post(s)

자가 위임, 자가 캡슐화 - DDD에서 생성자를 정의하는 방법

DDD에서는 생성자를 정의할 때 자가 위임(self-delegation)과 자가 캡슐화(self-encapsulation)를 사용할 것을 권장한다. 이 두 가지 개념을 통해 어떻게 생성자를 정의해야 하는지 알아보자.

Python의 enum으로 dynamic value 정의하기

Python의 enum은 일종의 alias라고 생각할 수 있다. 어떤 값을 미리 정의한 다른 이름으로 대체해서 참조할 수 있다. 이 별명과 값들은 enum을 정의하는 시점에 결정되고, 이후 값을 변경할 수 없는 "불변"의 속성을 가진다. 그렇다면 만약 enum에 정의된 다른 값들을 활용하여 동적으로 만들어야 하는 값이 있다면 어떻게 해야 할까?

Python으로 private 변수, getter와 setter를 만드는 방법은 없을까? - Python property decorator

Python으로 객체지향 프로그래밍을 하려고 하는가? Java같은 객체지향 언어를 학습하다보면 public, private 등의 접근제어자, 그리고 getter와 setter에 대해 자연스럽게 접하게 된다. 그런데, python 언어 학습을 할 때는 "쉽다"는 명목하에 곧바로 흥미를 유발하는 예제 프로그램부터 만드는 식으로 진행하는 경우가 많은 것 같다. 객체지향 개념을 python으로 접할 기회가 적어서 모르고 지나치는 부분이 많다. Python에도 private같은 접근제어자 기능을 사용할 수 있다는 사실을 알고 있는가? Getter와 setter를 만들 수 있는 built-in 기능이 있다는 것을 알고 있는가? 생소하다면 빠르게 훑어보자.