함수
SPR : 함수의 역할은 하나만 할당한다.
하나의 함수에 역할이 많아지면 오류 발생 가능성이 커지고, 가독성이 떨어지며 테스트를 진행하기 어렵다.
따라서 하나의 함수에 많은 로직을 넣지 말자.
DRY (Don’t repeat yourself) : 반복하지 말자
반복되는 코드가 많아지면, 전체 코드가 많아진다.
특정 부분에 변경사항이 생기면, 공통적인 모든 부분을 변경해줘야한다.
이에 관심사를 잘 분리하고 의존성을 줄이기 위해 반복되는 코드를 하나의 함수로 만들어서 사용하자.
파라미터 수는 적게 유지하자
사이드 이펙트를 잘 핸들링하자
사이드 이펙트란? (Side Effect)
함수가 실행되었을 때, 함수 이외의 어떤 것들에 변화를 주는 것을 의미한다.
이를 잘 다루지 못하면 예측하지 못하는 문제가 발생할 수 있다.
A, B, C, D라는 함수가 있을 때, A 실행시 B또는 C함수에도 영향을 주는 경우가 Side Effect라고 한다.
사이드 이펙트 핸들링하는 방법
코드를 통해 사이드이펙트를 예측할 수 있도록 네이밍을 잘 해야한다.
update, set 등 직관적인 prefix를 붙여 암시한다.
함수의 사이드 이펙트가 있는 부분과 없는 부분으로 나누어 관리한다.
명령과 조회를 분리하는 CQRS 방식이 존재한다.
명령(Command) : 사이드이펙트가 존재
조회(Read) : 사이드 이펙트가 없다
하나의 함수에 명령과 조회 모두가 실행된다면, 사이드이펙트 덩어리가 된다. 이를 함수나 클래스로 영역을 나누어 분리시킨다.
순수함수 형태로 사용하여 직관적으로 표현하고, 에러를 방지한다.
update 함수를 남발하지 않는다.
Last updated