JavaScript 에서도 getter, setter 를 지원한다. 사용하는 방법에 대한 설명은 어디에서나 찾을 수 있었는데, 언제 그리고 왜 사용해야하는지는 찾을 수 없어서 직접 케이스를 만들어 보았다. Use case: 자료구조형 클래스 선언 // 기본 클래스 선언 class Bounds { constructor(southWest, northEast) { this.south = southWest.south; this.west = southWest.west; this.north = northEast.north; this.east = northEast.east; } } southWest, northEast 값을 한 번에 얻고 싶다는 요구 사항이 들어온다면? class Bounds { constructor..
TIF: Today I Failed실패담입니다. 아직 해결하지 못한 문제입니다. - 설명 내부 로직에서만 공유되어야하는 값의 경우, private 변수 선언을 통해 외부에서 접근할 수 없도록 해야합니다. 하지만, JavaScript 에서는 private 변수를 지원하지 않습니다. 따라서, 기괴한? 방법을 사용해 이를 우회해 구현해야 합니다. - 시도_(언더바) 로 private 변수 구분 후, 난독화 처리(옛날 방식). 효과: 난독화되면 해당 값이 무엇을 의미하는지 알 수 없으므로, 의도적인 사용을 방지할 수 있다. 단점: 여전히 접근은 가능하다. 난독화 라이브러리와 babel 과의 호환문제로, ES6+ 에서는 사실상 사용이 불가하다. (참고: https://github.com/terser-js/ters..
이슈에 대한 해결이나 한 가지 기능에 대한 커밋이 여러 개로 분산되어 있으면, 히스토리를 확인하는 측면과 버전 관리 측면에서 효율적이지 않다. 따라서 동일 이슈나 동일 기능성에 대해서는 해당하는 내용에 대한 커밋을 하나로 합치는 작업을 하는 것이 좋은데, 이를 squash 라고 한다. Squash 는 Git 의 일반적인 사용과는 약간 다르다. 한마디로 어렵다. 경험으로 터득하지 않으면 할 수 없는 자전거 타기와 같다. 방법:1. squash 할 커밋이 놓여있는 branch 로 이동한다. 만약 로컬의 master 브런치에서 작업중이라면, 원격 master 와 비교해야 하므로 브런치명은 origin/master 가 된다. # git checkout 브런치명2. rebase # git rebase -i 브런치..
- Total