패러다임 선택 기준
패러다임 선택은 상태 수명과 변경 방식을 기준으로 한다
자바스크립트는 class, prototype, closure, 고차 함수를 모두 지원하므로 문제 성격에 맞춰 구조를 섞을 수 있습니다.
OOP
OOP
상태와 동작이 함께 오래 유지되는 도메인 객체를 모델링할 때 적합합니다.
FP
FP
입력을 받아 새 값을 만드는 데이터 변환 흐름에 강합니다.
Encapsulation
Encapsulation
private field나 클로저로 내부 상태 접근 경계를 세웁니다.
Immutability
Immutability
원본을 바꾸지 않고 새 객체를 만들어 변화 추적을 쉽게 합니다.
객체로 묶기
계좌, 사용자, 장바구니처럼 식별자와 수명 주기가 있는 대상에
유리합니다.
함수로 분리
배열 필터링, 포맷 변환, 검증처럼 입력과 출력이 뚜렷할 때
유리합니다.
혼합 기준
UI 상태는 객체로 보존하고 데이터 계산은 순수 함수로 분리할 수
있습니다.
설계 기준은 특정 패러다임을 고집하기보다 변경되는 상태와 계산 가능한 변환을 분리하는 데서 시작합니다.