HOME

20
5월
2019

{ passive:true } 의 진정한 의미

addEventListener는 대상에 지정한 이벤트가 들어올 경우 호출할 함수를 등록하는 method입니다. 자바스크립트를 하는 사람이라면 누구나 아는 기초적인 method이죠. 하지만, 과거에는 addEventListener가 웹브라우저 별로 동작이 달랐고 버그도 많아서 jQuery 같은 라이브러리의 on(), off() method로 간단히 처리하는 경우가 많았습니다. 지금 많이 사용되는 react, vue.js 도 addEventListener를 직접 사용할 일은 많지 않습니다. 자바스크립트의 대표적인 method이지만 의외로 addEventListener를 직접 사용할 일은 점점 줄어들고 있는 것 같습니다. AddEventListener addEventListener는 세개의 인자를 받을 수 있습니다. 첫번째 인자는 type으로 target에 반응할 이벤트 유형 (예. click, focus, scroll, …)입니다. 두번째 인자는 listener 함수이며 지정한 이벤트가 발생할 경우 실행할 함수...

25
4월
2019

VS CODE extension for FE

전통적으로 Javascript 개발 환경은 java처럼 복잡한 IDE 대신에 매우 가벼운 에디터로도 충분했습니다. 하지만 현대에는 frontend 개발의 주축이 되면서 매우 복잡해졌기 때문인지 Webstorm과 같은 강력한 IDE로 개발하는 경우도 많아졌습니다. 개발자에 따라 자바스크립트의 개발환경은 새롭고 강력한 IDE를 사용하는 환경, 전통적인 간단한 에디터를 그대로 사용하는 환경… 이렇게 두 분류로 나눠져 있다고 생각하는데요, 물론 이것은 개발 상황, 조직의 상황, 그리고 개인의 취향으로 어떤 것이든 선택할 수 있죠. Webstorm이 IDE계의 왕좌에 있다고 한다면, Visual Studio Code(줄여서 vscode)는 가벼운 에디터를 선호하는 개발자에게 있어 끝판왕이라고 해도 과언이 아니라고 생각합니다. microsoft에서 개발하고 있으며, Update log에 소개되는 추가 기능을...

18
4월
2019

코드리뷰를 위한 좋은 코딩 – Javascript 편

코드리뷰(Code review)는 개발자가 작성한 코드를 다른 개발자가 리뷰어가 되어 코드를 검토하는 프로세스를 말합니다. 장점이 많아서 회사 개발 팀 등의 조직에서는 대부분 도입하고 있죠. 사실 혼자서 프로그래밍하고 유지보수를 하고 있다면 개발자 자신이 알아볼 수만 있다면 되는데요. 차후에 이 코드를 알아볼 수 있는지에 대해서는 별개 문제이지만, 어쨌든 다른 사람을 신경 쓸 필요 없이 자신이 편한대로 작업하면 될 일이죠. 하지만 회사에서 여려명이 협업을 하는 경우엔 다릅니다. 자신이 만들었던 코드는 다른 관계자도 모두 알아야 하고, 차후의 인수인계 등 얼마든지 그 코드는 자신을 떠날 수 있기 때문에 깨끗하고 읽기 쉬운 코드를 생산해야 합니다. 하지만 개발자...

11
4월
2019

React component updates in 2019.04

React와 함께 주로 사용되는 컴포넌트의 메이저 버전업이 2건 있었습니다. 상태관리를 위한 Redux를 React와 연결해주는 react-redux, 그리고 여러 화면으로 구성되어있는 single-page application 을 만들 경우 필수적으로 사용하게 되는 react-router 입니다. 두 컴포넌트 모두 react 프로그래밍에 있어 필수적으로 사용되는데, 다행히도 둘 다 이전의 메이저 버전과 호환됩니다. 주로 퍼포먼스 개선과 일부 편의성이 개선되었기 때문에, 주의사항만 참고한다면 별다른 migration 없이 package.json 에서 version-up 하면 됩니다. react-redux v7.0.1 버전 6에서 리포트되었던 속도 이슈를 개선하였습니다. 내부적으로는 connect() 함수에서 react 16.8에 추가되었던 Hooks를 사용합니다. 대부분 내부적 개선이 이루어졌고 기존 version 6의 public API와 호환되기 때문에 코드의 변경은...

09
4월
2019

타임타이머(Time Timer) 이야기

시간관리 전략, 뽀모도로 타이머 현대인에게 있어 시간관리의 중요성은 삶의 질이 달라질 정도로 중요합니다. 시간관리에 대해서는 많은 전략이 있지만, 업무용으로 유명한 것 중에 뽀모도로 타이머를 사용하는 뽀모도로 전략이라는 것이 있습니다. “뽀모도로 타이머”라는 아날로그 타이머를 활용하여 업무의 효율성을 극대화시키는 기법입니다. 25분 동안 Task에 집중 + 5분 휴식 이를 4번 반복한 후 30분을 휴식 여담으로 파스타 요리 좋아하시는 분들은 아시겠지만 “뽀모도로”는 이탈리아어로 “토마토”인데요, 이 아이템의 원래 용도는 요리에 사용하는 주방용 타이머입니다. 개인적으로는 뽀모도로 전략에 대해서는 처음 알았을 때엔 사실 매력적으로 느끼지 못했습니다. 그 이유는 쉬는 시간이 많음에도 불구하고 빡빡한 시간표로 인해 심리적 압박이...

04
4월
2019

HTTP/3 (HTTP-over-QUIC)

QUIC은 Quick UDP Internet Connections 의 약자이며, 전송계층 프로토콜인 UDP 를 기반으로 TCP + TLS + HTTP 의 기능을 모두 구현하는 프로토콜입니다. QUIC 은 “quick”과 동일하게 “퀵”으로 발음합니다. Google에서 2012년에 최초로 개발했는데, 여담이지만 구글에서 개발했던 SPDY 기술이 HTTP/2의 기반 기술이었는데 역시 구글에서 개발한 QUIC이 HTTP/3의 기반 기술이 되었습니다. gQUIC vs QUIC-over-HTTP 현재는 IETF의 quicwg에서 관리하는 QUIC-over-HTTP 와 구글에서 자체 개발한 gQUIC이 분리되어 있습니다. 구글의 gQUIC에서 사용하는 암호화 기술은 TLS 1.3이 아닌 자체 암호화 기술이라는 점이 다른데요, IETF에서 표준화 작업이 진행되는 동안 구글에서도 IETF의 세부 명세를 받아들여 gQUIC을 발전시키고 있습니다. QUIC-over-HTTP...

26
2월
2009

모바일을 위한 DTD의 종류와 특징

모바일 기기는 다음과 같은 특성을 가집니다. 적은 메모리 용량, 적은 저장 공간, 작은 스크린 사이즈, 느린 CPU, 입력방법의 제한, 전원(밧데리)의 시간 제한 초기의 모바일 기기들은 웹을 사용하기에는 성능이나 메모리, 스크린사이즈가 매우 조악하였기 때문에 모바일 기기에 특화된 언어로 WML(wireless Markup Language)를 사용했습니다. 현재 쓰이는 HTML 과는 차이가 있으며, XML기반으로 만들어졌기 때문에 문법 검사에 매우 엄격합니다. Deck, Card 라는 특이한 개념(페이지와 유사하여, 하나의 WML문서에 여러개의 card를 만들어 여러페이지의 문서를 만들 수 있음)을 제외하면 사용되는 태그는 HTML 과 유사한 면이 있지만, 문법검사가 XHTML과 비슷하여 xml 문법을 따르기 때문에 문법 오류가 자동 수정되지 않습니다....

18
2월
2009

웹사이트 최적화 : 8bit PNG 활용하기

21세기가 시작된 지 거의 10년이 다 되어가는 2009년에 이르러 네트워크와 인터넷은 놀라운 발전을 이뤄왔습니다. 웹브라우저 시장은 MS의 Internet Explorer가 독점하는 상황을 벗어나서, 지금은 파이어폭스, 사파리, 오페라, 크롬, … 기타 등등 수많은 브라우저가 서로 웹표준을 향해 경쟁하는 행복한(?) 시대가 되었지요. 하지만, 이런 상황에서도 웹브라우저가 공식적으로 지원하는 이미지 형식은 아직까지는 GIF, JPG, PNG 세 가지 뿐입니다. (BMP는 논외) 그 중에서 가장 돋보이는 포맷은 바로 PNG 인데요… 하지만, 이전에 작성했던 나를 미치게 하는 PNG 라는 포스트에서도 밝혔듯이.. IE6 의 점유율이 10% 이하로 떨어지지 않는 한, PNG의 혜택을 누리기에는 무리가 있습니다. 이런 상황에서 갑자기 8bit...

19
6월
2008

IE6 의 CSS 다중선택자 버그에 대해

CSS에서 사용하는 다중 선택자(Multi Class)란 동일 엘리먼트에 여러개의 선택자(id, class)를 동시에 적용하기 위한 목적으로 여러개의 선택자를 사용하는 것을 말합니다. CSS1에서 선택자의 개념이 사용된 후, CSS2에서 다중 선택자가 추가되어 사용되고 있는데요, CSS를 사용해 웹사이트를 개발하다 보면 다중선택자는 매우 편리한 존재임을 알 수 있습니다. 위의 코드는 다중 선택자를 적용하여 foo 클래스와 bar 클래스의 속성을 하나의 엘리먼트에 동시에 적용한 예제입니다. 또한 클래스를 붙여서 선언하게 되면 평소에는 적용되지 않다가 두 클래스가 동시에 적용될 경우에만 별도의 효과를 주는 것도 가능합니다.이렇게 여러 개의 클래스를 하나의 엘리먼트에 적용하여 서로 다른 효과를 동시에 적용할 수 있고, 이 다중...

19
5월
2008

마이크로포맷을 사용해볼까요?

1989년, 팀 버너스 리(Tim Berners-Lee)는 네트워크에서 정보를 전달하고 서로 연결하기 위하여 WWW(world wide web)라는 시스템을 고안하고, 이를 구현하기 위해 URL, HTTP, HTML 규약을 만들었습니다. HTML은 그 단순함과 범용성, 호환성을 바탕으로 현재까지도 인터넷에서 정보의 전달을 위한 포맷으로서의 역할을 훌륭히 수행하고 있지요. 하지만 WWW가 탄생된 지 20년이 되어가는 현재 시점에서는 폭발적인 정보 증가량, 멀티미디어화 된 정보, 새로운 기술의 욕구 등으로 인해 HTML 만으로는 정보 전달에 있어 역부족인 상황이 되었습니다. 이 문제를 해결하기 위해 새로운 기술과 이론이 계속 발표되고 있으며, Flash, Silverlight, Javascript, 웹표준, 그리고 UX, RIA, Web 2.0, 시멘틱 웹 등등 많은...