본문 바로가기

분류 전체보기176

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.
2019년 7월 5주차 - "8590원 최저시급 왜따져요?"…800원 '건당인생' 1. "8590원 최저시급 왜따져요?"…800원 '건당인생' 작년에 이어 올해도 플랫폼 경제가 뜨거운 감자로 다루어지고 있습니다. 가장 논란이 되는 것은 플랫폼 택시 사업입니다. 쏘카로 시작된 차량 공유 서비스는 작년 10월 카카오가 카풀 서비스를 출시하면서 논란의 중심에 섰는데, 최근에는 타다가 바통을 이어받아 논란의 중심에 서 있습니다. 이렇듯 플랫폼 경제라는 단어가 조금 낯설어도, 이미 우리의 생활에 깊숙이 들어와 있습니다. 우리에게 익숙한 플랫폼 서비스 몇 가지를 예로 들면 아래와 같습니다. 쿠팡 플렉스 : 일반인이 건당 수수료를 받고 배달 배달 앱(배달의 민족, 요기요 등) : 음식 배달 및 결제뿐만 아니라 편의점 결제나 직접 조리식품도 배달 배달 대행 앱(부릉, 생각대로 등) : 음식점이 자체.. 2020. 10. 21.
[Javascript] 실행 컨텍스트 1) 실행 컨텍스트(Execution Context)란? ECMAScript 스펙은 실행 컨텍스트를 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념이라고 정의합니다. 즉, 실행 가능한 코드가 실행되기 위해 필요한 환경이라고 할 수 있는데, 추상적인 개념이다 보니 확 와 닿지는 않습니다. 좀 더 단순하게 말하자면, 자바스크립트는 내부적으로 하나의 콜 스택을 가지는데, 이 콜 스택 내에 쌓이는 함수에 대한 정보를 실행 컨텍스트라고 합니다. 여기서 쌓이는 함수, 즉 실행 가능한 코드는 전역 코드 : 전역 영역에 존재하는 코드 => 전역 실행 컨텍스트 Eval 코드 : eval함수로 실행되는 코드 함수 코드 : 함수 내에 존재하는 코드 => 함수 실행 컨텍스트 를 말합니다. 그러나 eval 코드는 사용을 .. 2020. 10. 21.
2019년 7월 4주차 - "엘라스틱, '엘라스틱 스택 버전 7.2' 출시" 1. 엘라스틱, ‘엘라스틱 스택 버전 7.2’ 출시 엘라스틱이 엘라스틱 스택(Elastic Stack) 7.2 버전을 출시했습니다. 이번 버전에서는 많은 기능이 도입되었고, 그중 엘라스틱이 강조하는 기능은 아래와 같습니다. Elastic SIEM 도입 : 네트워크 기반의 데이터 수집 범위를 확장하기 위해 보안 정보 및 사건관리 기능을 도입했습니다. observability(관측 가능성) 기능 제공 : 시스템, 서비스, 애플리케이션 상태 등과 관련된 로그나 메트릭 등을 더 쉽게 조회할 수 있고, Metrics Explorer가 도입되므로 인프라 메트릭을 신속하게 시각화할 수 있습니다. (Elastic은 Kubernetes 및 컨테이너 모니터링 기능을 추가하여 클라우드-네이티브 생태계를 쉽게 모니터링할 수 .. 2020. 10. 21.
[Javascript] Scope 앞선 글에서 함수 레벨 스코프, 블록 레벨 스코프라는 단어가 사용되었는데, 이 글에서는 여기서 말하는 스코프란 무엇인지에 대해 다루어보도록 하겠습니다. (1) 스코프란? 스코프란 유효 범위를 의미하는 단어로, 변수 및 매개변수의 접근성과 생존기간을 말합니다. 스코프는 자바스크립트뿐만 아니라 대부분의 프로그래밍 언어의 주요 개념이므로, 개념을 잘 이해하고 있어야 합니다. (2) 전역 스코프 전역 스코프는 자바스크립트에서 가장 바깥 범위(함수 내부에 포함되지 않은), 즉 window 객체(Node.js에서는 global 객체)에 포함된 객체가 가지는 스코프를 의미합니다. 스크립트 내 어느 곳에서든 참조됩니다. 지난 글에서 다루었듯 전역 스코프를 만드는 일은 최대한 지양해야 합니다. ([requireJS] 전.. 2020. 10. 21.
2019년 7월 3주차 - "'스마트폰으로 본인 증명'..7개사, 블록체인 기반 모바일 전자증명 뭉쳤다" 1. "스마트폰으로 본인 증명"..7개사, 블록체인 기반 모바일 전자증명’ 뭉쳤다 지난 23일 통신 3사(SK텔레콤, KT, LG 유플러스)와 삼성전자, 코스콤, 우리은행, KEB 하나은행 등 7개 사가 블록체인 기반 모바일 전자 증명 서비스 공동 사업 협약을 체결했습니다. 이는 위·변조가 불가능한 블록체인을 이용해 개인이 자신의 개인정보를 스스로 관리할 수 있도록 '자기 주권 신원 지갑(Self-Sovereign Identity)' 서비스를 제공하겠다는 의미입니다. 모바일 전자 증명 서비스는 출범 후, 전국 주요 대학 제증명(졸업, 성적 증명 등) 발행과 코스콤의 비상장 주식 마켓 플랫폼에 우선 적용될 예정입니다. 향후 더 많은 기업의 참여를 유도해 병원 및 보험사의 제증명 서비스나 금융권의 전자서명 .. 2020. 10. 21.
[ES6+] var vs let vs const prerequisite javascript scope javascript closure javascript hoisting Javascript에서 변수를 선언할 때 var를 사용하는 것은 익숙한 일이지만, let이나 const는 조금 낯설게 느껴집니다. 두 키워드가 ES6에서 새롭게 추가되었기 때문이라고 생각되는데, 이 글에서는 세 가지 키워드가 어떻게 다른지, 언제 어떤 키워드를 사용해야 하는지 알아보도록 하겠습니다. (1) var var는 아래와 같은 특징을 가지고 있습니다. 함수 레벨 스코프 변수의 유효 범위가 블록({}) 단위가 아닌 함수 단위입니다. 전역 함수 외부에서 변수를 생성하게 되면 이는 전부 전역 변수로 관리됩니다. [함수 레벨 스코프] var i, x, y; for (i = 0; i .. 2020. 10. 21.
2019년 7월 2주차 - "매장 문 닫으니 장사 더 잘 돼... 온라인으로 가는 패션 브랜드들" 1. 매장 문 닫으니 장사 더 잘 돼... 온라인으로 가는 패션 브랜드들 무신사, 29cm 등 온라인 패션 플랫폼이 등장하여 인기를 끌면서, 온라인 채널 강화가 선택이 아닌 필수가 되었습니다. 이는 특히 패션 업계에서 두드러지고 있으며, 몰에 입점하는 것을 넘어 온라인 전용 브랜드를 론칭하거나 온라인 전용 상품을 만드는 등 변화가 이루어지고 있습니다. 아직까지 새로운 온라인 전용 브랜드를 선보이기보다는, 기존의 오프라인 브랜드를 온라인 전용 브랜드로 전환하는 추세를 보이고 있습니다. 오프라인에서 온라인 전용으로 전환된 대표적인 브랜드로는 '빈폴키즈(삼성물산)', '덱케(한섬)', '스파소와 헤드(코오롱)' 등이 있습니다. 온라인 채널로만 유통하게 되면 매장 임대료나 인건비, 백화점 입점 수수료 등의 비용.. 2020. 10. 21.
[requireJS] 전역 변수 오염을 어떻게 방지할까? prerequisite Javascript Object Javascript Scope 일반적으로 전역 변수가 오염되는 것을 막기 위해 네임스페이스 패턴을 많이 이용합니다. $.namespace("listgrid1.eventhandler"); listgrid1.eventhandler = { bindButtonEvent : function(){ ...생략 } } 위 코드에서 보이는 namespace plugin의 구현부는 다음과 같습니다. $.namespace = function() { var a = arguments, o = null, i, j, d; for (i = 0; i < a.length; i = i + 1) { d = a[i].split("."); o = window; for (j = 0; j <.. 2020. 10. 21.