습관/독서
자바스크립트 코딩 기법과 핵심 패턴 - Day 6
향포레스트
2023. 2. 1. 22:23
728x90
독서진행 : 88-95p (종이책)
오늘의 메모
- 전역 범위가 난잡해지지 않도록 보호하는 또 다른 방법을 앞서 설명한 즉시 실행 함수 패턴과 비슷한 즉시 객체 초기화 패턴이다. 이 패턴은 객체가 생성된 즉시 init() 메서드를 실행해 객체를 사용한다. init() 함수는 모든 초기화 작업을 처리한다.
- 문법적인 면에서 이 패턴은 객체 리터럴을 사용한 일반적인 객체 생성과 똑같이 생각하면 된다.
- 이 패턴의 장점은 즉시 실행 함수 패턴의 장점과 동일하다. 단 한 번의 초기화 작업을 실행하는 동안 전역 네임스페이스를 보호할 수 있다.
- 초기화 작업이 더 복잡하다면 전체 초기화 절차를 구조화하는 데 도움이 된다.
- 이 패턴의 단점은 대부분의 자바스크립트 압축 도구가 즉시 실행 함수 패턴에 비해 효과적으로 압축하지 못할 수 있다는 것이다. 비공개 프로퍼티와 메서드의 이름은 더 짧게 변경되지 않는데 압축 도구의 관점에서는 그런 방식이 안전하기 때문이다. 구글의 클로저 컴파일러의 고급 모드만이 즉시 초기화되는 객체의 프로퍼티명을 단축시켜 준다.
- 설정 객체 패턴은 좀더 깨끗한 API를 제공하는 방법이다. 라이브러리나 다른 프로그램에서 사용할 코드를 만들 때 특히 유용하다.
- 많은 수의 배개변수를 전달하기는 불편하다. 모든 매개변수를 하나의 객체로 만들어 대신 전달하는 방법이 낫다.
- 설정 객체의 장점은 다음과 같다. 매개변수와 순서를 기억할 필요가 없다. 선택적인 매개변수를 안전하게 생략할 수 있다. 읽기 쉽고 유지보수하기 편하다. 매개변수를 추가하거나 제거하기 편하다.
- 단점은 매개변수의 이름을 기억해야 한다. 프로퍼티 이름은 압축되지 않는다.
객체 초기화 패턴은 진짜 잘 생각해서 사용하면, 난잡하게 벌어져 있고 주석으로 덕지덕지 묻어있는 걸
깔끔하고 구조화할 수 있을 거 같다
좀 많이 생각하면서, 꼭 적용해봐야겠다
안 그래도 매개변수 길어지는 거에 있어서
너무 수정이 많아졌는데, 이렇게 객체를 전달할 생각을.. 전혀 못했다
그리고 함수 파악하기 힘들어서 내가 작성해도 코드 읽는 시간이 너무 길었는데,
이게 하나하나 다 시간을 잡아먹는다
앱 껍데기를 만드는 프레임워크 js 파일을 보는데
이러한 패턴이 많이 사용되는 게 보여서
좀 더 읽기 쉬워졌다
그렇지만.. 앱 패키지화를 못해서 유지보수를 못한다... 하하
728x90