본문 바로가기

성능3

#반복문 #중요 #매우중요 #매우매우중요 프로그래밍은 반복문과 조건문, 2가지만 있으면 할 수 있다. 그만큼 중요한게 반복문 이다. 먼저 결론부터 얘기하겠다. for-in 사용하지 마 for-in을 제외한 반복문에 관한 문법은 모두 허용이다. 물론 통일성 있게 작성하면 더 좋고. 그럼 왜 사용하지 말라는 건가? for-in 반복문은 목적 자체가 객체의 속성 탐색이다. 그러므로 내부적으로 탐색 알고리즘이 일반 반복문과 다르다. 그리고 객체의 속성 탐색도 미리 배열 또는 객체로 색인을 구성해놓고 탐색하는 방식을 이용하라. 아! 그리고 한 가지 더! 기존에 컴파일러가 존재하는 환경에서 프로그래밍을 했다면 반복문의 탈출 조건을 사용할 때 메소드 또는 속성 length를 많이 사용하는데 이것도 캐싱하라. // C++에서는 굳이 필요없는 지역변수지만 자바.. 2018. 7. 28.
스코프 체인, 흑마법같은 자바스크립트에는 다른 언어(C, C++, Java, C#, Python, PHP)에는 없는 개념인 스코프 체인 이라는 개념이 있다. 처음 스코프 체인 개념을 봤을 때는 놀라웠다. 이런 편리성이라니! 하지만 편리함 뒤에는 역시나 어두운 면이 존재한다. 프로그래밍에는 마법 같은 일이란 없다. 마법 같이 보일 뿐이지 내가 항상 기억하는 문장이다. 개발자가 사용하기 더 편하게, 쉽게 해주는 메소드나 속성, 개념 등은 겉으로는 마법처럼 보인다. 와! 이런것도 지원해줘? 이게 되네? 하지만 결국 내부 코드를 들여다보면 마법 같은 일이란 없다. 스코프 체인도 그 개념 중 하나다. 잘못 사용하게 되면 성능 상 문제가 될 수 있는 개념 한가지만 기억하자. 제1활성 객체에 없는 변수나 객체는 캐싱해서 접근 하라. 단순 1.. 2018. 7. 27.
NHN은 이렇게 한다! 자바스크립트 성능 이야기 단순하지만 정말 효과 좋은 최적화 "최적화 어렵지 않아요!" 당신의 주언어가 무엇이냐? 한다면 바로 나올 답변은 C++다. 학생시절부터 입사 후 최근까지도 사용했던 언어라서 애착도 많다. 그래서 다른 언어로 코딩을 하게 되어도 코딩 스타일은 C++다. 근데 이 스타일이 자바스크립트와 안맞는 점이 있다. C++로 코드를 작성할 때 최대한 지역변수를 사용안하는 방식을 선호 했다. 지역변수를 선언하면 실수 할 여지도 생기고 굳이 필요없는 곳에 사용하면 코드만 길어져서 별로 안좋아했다. 그래서 자바스크립트로 코드를 작성 할 때도 그렇게 했는데 그러면 안되는 것이었다... 간단한 조건문,반복문부터 좋은 코드를 작성하는 방법이 C++와 다른점이 많다. 특히나 DOM에 관련된 코드는 무조건 캐싱을 해야한다. 이 책을.. 2018. 7. 27.