스택 알고리즘-> 스택알고리즘은 주로 하노이 탑에서 많이 설명되었으며 FILO, LIFO 방식의 자료구조 이다. 가장 먼저 들어온 요소가 가장 마지막에 처리되는 형태FILO : Fisrt In Last OutLIFO : Last In First Out push는 배열에 아래에서 부터 하나씩 차곡차곡 담는다pop는 배열의 맨 위에 있는 값부터 꺼낸다. 실제로 배열객체에 push, pop이 있어서 해당 메소드를 사용해도 되지만 면접 때 자주나오는 질문이므로 개념이나 손코딩 정도는 꼭 알았으면 한다.
Ajax의 성능을 올리는 수 있는데에는 몇가지 방법이 있다 1) 데이터 캐시 서버측에서는 브라우저에서 응답을 캐시하도록 HTTP 헤더를 설정한다. 클라이언트 측에서 가져온 데이터를 로컬에 저장해서 다시 요청할 필요를 없게 한다. 2) 로컬에 데이터 저장 브라우저가 캐시를 다루도록 의존하지 않고, 서버에서 받아온 응답을 저장해서 좀 더 수동에 가깝게 캐시를 다룰 수 있다. 일반적으로는 헤더에 설정하는 것이 좋다.
Ajax에서 데이터 포맷을 고려할 때는 속도만 신경 쓰면된다. 크게 4가지가 있다. XML, JSON, HTML, 커스텀 포맷 1) XML Ajax가 처음 알려질 때는 XML이 데이터 포맷으로 널리 쓰였다. XML은 상호간의 운용성이 높아 서버와 클라이언트 모두 잘 지원한다. 엄격한 형식을 갖췄으며 유효성 검사도 쉽다. 다른 포맷과 비교하면 XML은 매우 장황하다. 개별 정보마다 구조가 필요하고 데이터 비율도 낮다. 보통 상위 노드를 복수형으로 감싸고 하위 노드를 단수형으로 하여 해당 요소들을 나열한다. 2) JSON 더글라스 크락포드가 형식화하고 널리 알려진 JSON은 객체와 배열문법만으로 가볍고 파싱하기 쉬운 데이터 포맷이다. JSON 포맷이 현재는 가장 빠르다. 위의 XML보다 코드가 간편하고 오히..
jQuery는 자바스크립트의 라이브러리 이다. jQuery로 실행되는 모든 함수는 자바스크립트로 구현이 가능하다. 단지 소스가 좀 길어질 뿐 이번에 자바스크립트 최적화를 공부하면서 알게 된 내용이다. 기본적으로 get, post의 구분은 기본적인 것은 대부분의 개발자가 알고 있을 내용이다. 모른다면 개발을 접고 다른 길을 찾길 바란다. ajax 사용시 get과 post의 최적화 사용법을 알아본다. get : 서버의 상태 변동의 없이 데이터만 가져올 때 get을 사용한다. 또한 ajax시 get 방식은 캐시화가 되어 2번 이상 처리시에는 속도가 올라간다. post : 큰 길이의 문자열을 전달 할 때 사용하며 서버의 변동이 있을 때 주로 post를 사용하는 것이 좋다. 서버의 변동이라 함은 ajax로 데이터..
자바스크립트는 인터프리터 언어이며 단일 스레드 이다. 자바스크립트에서 동적으로 UI변경 작업이 있을시에는 UI스레드 라는 공간에서 큐 방식으로 처리 순서를 담아 놓는다. 앱 워커는 멀티스레드 기능을 지원하며 워커가 생성될 때마다 자바스크립트를 실행할 수 있는 고유 스레드를 생성하여 속도 성능을 크게 향상시킬 수 있다. 워커에서 실행하는 코드는 브라우저 UI에도, 다른 워커에서 실행하는 코드에도 영향을 주지 않는다.즉 독립접으로 실행되는 멀티스레드 이다. 웹워커는 다음과 같은 상황에서 사용하기 적절하다.1) 매우 큰 문자열의 암호화/복호화2) 복잡한 수학계산(이미지/비디오 처리 포함)3) 매우 큰 배열의 정렬=> 즉 로딩과 실행이 오래 걸리는 자바스크립트 파일간단한 예제를 보자 ( 2개 파일을 생성 )wo..
다른 프로그래밍 언어와 마찬가지로 어떤 알고리즘을 선택하고 코드를 어떻게 분해했느냐에 따라 성능 차이는 확연히 달라진다. 1) for, while, do while 모두 성능은 비슷하다 빠른 루프도, 느린 루프도 없다. 2) 객체에 속성에 대해 모르는 상태에서는 for-in 구문을 쓰지 말것 3) 반복문의 성능을 올리기 위해서는 작업을 줄이고 반복 횟수를 줄이는 것 4) 참조테이블 사용 5) 브라우저의 콜 스택 크기에 따라 자바스크립트가 몇 번까지 재귀를 실행 할 수 있는지 다르다. 6) 스택오버플로우가 나면 재귀함수를 사용하지 말고 반복문 알고리즘을 사용하거나 메모이제이션을 사용하라