본문 바로가기

전체 글179

[Javascript] Debounce & Throttle 자바스크립트 개발에 있어서 이벤트는 빠질 수 없는 요소입니다. 과장을 보태 자바스크립트 개발을 해 본 개발자 중에 이벤트 처리를 해 보지 않은 개발자는 없다고 말해도 과언이 아닐 것입니다. 디바운스(Debounce)와 스로틀(Throttle)은 이러한 이벤트를 제어하는 방법으로, 과도한 이벤트의 발생이 성능 저하를 초래하지 않도록 하기 위해 사용합니다. 대표적으로 디바운스와 스로틀을 이용하여 이벤트 발생을 제어하는 기능은 아래와 같습니다. 스크롤 휠을 이용한 지도 확대/축소 검색어 입력시 자동완성 혹은 연관검색어 노출 피드 방식의 데이터 노출 (스크롤링을 통한 데이터 노출) 이벤트 오버클럭(Overclock - 과도한 이벤트 발생)은 리소스 사용량을 과도하게 증가시키기 때문에 성능 문제를 야기하고 사용자.. 2020. 10. 21.
2019년 8월 3주차 - "페이코, 간편 금융 플랫폼 도약…오프라인 강점 살린다" 1. 페이코, 간편 금융 플랫폼 도약…오프라인 강점 살린다 간편 결제 서비스가 편리한 결제수단으로 자리 잡으면서, 네이버와 카카오 등 이커머스를 제공하는 대형 업체들이 직접 간편 결제 서비스를 제공하고 있습니다. 위 자료에 따르면 온오프라인과 모바일 모두에서 페이코의 시장점유율은 그리 높지 않습니다. 오프라인의 경우 페이코 결재액 비중이 5%가 채 되지 않으며, 그중 절반 이상이 삼성 페이와 제휴해 결제됩니다. 이를 탈피하기 위함인지, 페이코는 시장에서 살아남기 위한 차별화 전략으로 '오프라인'을 꺼내 들었습니다. 최근 페이코는 '페이코오더(오프라인 매장에서 QR코드 스캔을 통한 결제 혹은 페이코 앱 또는 매장 앱을 이용한 간편 주문 결제가 가능한 서비스)'를 출시하며 오프라인 전략의 첫 발을 디뎠습니다.. 2020. 10. 21.
[Javascript] 자바스크립트에서 메모리 누수의 4가지 형태 이전 글에서 Closure를 다루면서 메모리 누수에 대해 언급한 바가 있습니다. 이 글에서는 자바스크립트에서 발생하는 4가지 형태의 메모리 누수를 살펴보고, 이러한 코드를 어떻게 제거할 수 있는지 알아보도록 하겠습니다. 자바스크립트에서 메모리 누수가 발생하는 경우는 크게 4가지로 아래와 같습니다. 우발적으로 생성된 전역 변수 잊혀진 타이머 또는 콜백 함수 DOM 외부에서 참조 특정한 경우의 Closure 각각 경우에 대해 살펴보기에 앞서, 자바스크립트에서 메모리를 어떻게 관리하는지 알아두는 것이 좋습니다. 자바스크립트는 자바와 마찬가지로 Garbage Collected 언어입니다. 즉, 개발자가 메모리 관리에 있어 신경을 덜 쓰더라도, GC(Garbage Collector)가 주기적으로 할당된 메모리를 .. 2020. 10. 21.
2019년 8월 1주차 - "'마켓컬리'에 숨어있는 IT" 1. '마켓컬리'에 숨어있는 IT (편집자 주: 이 글은 마켓컬리가 어떻게 자사 서비스를 업그레이드했는가에 대한 홍보 글입니다. 하지만 웹 서비스에 대한 다양한 최신 기술들이 적용되어 있고 EC기술연구소에서도 이와 관련하여 업무를 진행하고 있기에 다루게 되었습니다) 마켓컬리의 업그레이드 내용은 크게 '머신러닝(케라스) 기반 후기 선별', '머신러닝 기반 상품 수요 예측', '커머스 및 물류 시스템 AWS 클라우드로 이관', '테라폼을 이용한 자체 백업 시스템' 등 4가지이며, 이들은 크게 신기술 적용과 시스템 안정성 확보를 위한 고도화 두 가지 측면으로 나눌 수 있습니다. 먼저 신기술 적용 측면으로 머신러닝 기반 서비스 도입을 들 수 있습니다. 사업이 급격하게 커지면서, 적립금 지급을 위한 구매 후기 선.. 2020. 10. 21.
[Javascript] Closure 1) 클로저란? 함수가 선언된 렉시컬 스코프를 기억해서, 함수가 스코프 밖에서 실행되어도 해당 스코프에 접근할 수 있도록 해주는 것을 클로저라고 말합니다. 함수 안에 함수가 있는 형태로 외부(outer) 함수가 실행 후 종료되어도 내부(inner) 함수에서 outer 함수의 지역변수를 참조할 수 있는 것이 특징입니다. 더 정확히 말하자면 outer 함수는 종료된다고 할 지라도 inner 함수가 실행되는 상태이면 outer 함수는 닫히지 못합니다. 클로저는 일반적으로 아래와 같은 조건을 충족합니다. 내부 함수는 익명 함수로, 외부 함수의 return 값으로 사용 반환된 내부 함수는 외부 함수의 실행컨텍스트에서 실행됨 내부 함수에서 사용되는 변수는 외부 함수의 변수 스코프에 있어야 함 코드를 예로 들어 자세.. 2020. 10. 21.