오픈소스 라이선스 배경 및 연혁 안녕하세요 기술전략팀 조영준입니다. 요즘 많은 기업에서 회사 내부에서 개발중인 프로젝트를 오픈소스로 공개하는 케이스가 많습니다. (우분투 OS에서부터 DB인 MySql, 큐브리드, 마리아DB, 기타 앵귤러JS, 테서플로, 제플린 등등.. 너무나 많은 프로…
자바스크립트 프레임워크 소개 4 - React 최근에 팀 내에서 진행했던 스터디 내용을 정리하는 의미에서, 4회에 걸쳐 자바스크립트 (프론트엔드) 프레임워크를 소개하는 시리즈를 연재할 예정입니다. 금주부터 아래와 같은 목차로 진행되니 많은 관심 부탁드립니다. - Cycle.js - An…
자바스크립트 프레임워크 소개 3 - Vue.js 최근에 팀 내에서 진행했던 스터디 내용을 정리하는 의미에서, 4회에 걸쳐 자바스크립트 (프론트엔드) 프레임워크를 소개하는 시리즈를 연재할 예정입니다. 금주부터 아래와 같은 목차로 진행되니 많은 관심 부탁드립니다. - Cycle.js - A…
자바스크립트 프레임워크 소개 2 - Angular2 최근에 팀내에서 진행했던 스터디 내용을 정리하는 의미에서, 4회에 걸쳐 자바스크립트 (프론트엔드) 프레임워크를 소개하는 시리즈를 연재할 예정입니다. 아래와 같은 목차로 진행되니 많은 관심 부탁드립니다. - Cycle.js - Angul…
자바스크립트 프레임워크 소개 1- Cycle.js 최근에 팀내에서 진행했던 스터디 내용을 정리하는 의미에서, 4회에 걸쳐 자바스크립트 (프론트엔드) 프레임워크를 소개하는 시리즈를 연재할 예정입니다. 금주부터 아래와 같은 목차로 진행되니 많은 관심 부탁드립니다. - Cycle.js - A…
오픈소스 Moloch을 소개합니다. 목차 - 들어가기 전에 - Moloch이란? - Moloch 활용 - 결론 - 참고자료 들어가기 전에 요즘 많은 IT기업들이 고가의 상용 솔루션을 대체하기 위해 오픈소스를 적극적으로 활용합니다. 오픈소스로 사용할 경우 비용도 절감할 수 있지만, 사용자…
Anti-OOP: if를 피하는 법 목차 쇼핑몰 할인정책 Step 1. 메서드 추출 Step 2. 핵심 인터페이스 추출 Step 2-2. Factory enum 기반 리팩토링 Step 3. 도메인 객체(Entity) 기반 리팩터링 Bonus Step 3-2. With Mybatis 결론…
Generator in Practice [1부] 기본 속성과 Runner 목차 서론 기본 속성 Runner Promise Runner 결론 서론 근래에 자바스크립트 프로그래밍의 패러다임에 큰 변화를 준 명세는 바로 Generator 명세다. 올해 2월 미국 샌프란시스코에서 열렸던 FOR…
REST API 제대로 알고 사용하기 REST API 제대로 알고 사용하기 목차 - REST API의 탄생 - REST 구성 - REST 의 특징 - REST API 디자인 가이드 - HTTP 응답 상태 코드 어느 날 뜬금없이 대학교 친구에게 전화가 왔습니다. 그러더니 ‘야, REST…
개발자를 힘들게 하는 애플의 IPv6 검수 통과하기 개발자를 힘들게 하는 애플의 IPv6 검수 통과하기 목차 IPv6에 대해서 최소한도로 알아보기 Apple에서 공지한 iOS 앱에 대한 검수 내용 살펴보기 개발자들이 주의해야 할 사항 IPv6 로 인한 App Reject 사례와 참고 자…
클로저, 그리고 캡슐화와 은닉화 클로저, 그리고 캡슐화와 은닉화 목차 클로저와 객체 카운터 구현 정리 참고 클로저와 객체 클로저를 처음 접했을 때 전혀 이해가 되지 않았던 기억이 난다. 클로저를 제대로 이해하려면 자바스크립트 코어에 대한 지식이 적지 않게 필요하기 때문이다. 개인적으로는…
자바스크립트와 이벤트 루프 자바스크립트와 이벤트 루프 목차 ECMAScript에는 이벤트 루프가 없다 단일 호출 스택과 Run-to-Completion 태스크 큐와 이벤트 루프 비동기 API와 try-catch setTimeout(fn, 0) 프라미스(Promise)와 이벤트 루프 마치…
JPA N+1 쿼리 문제와 해결 JPA N+1 쿼리 문제와 해결 목차 들어가기 전에... JPA N + 1 쿼리 문제 JPQL 실행 시 N + 1 쿼리 문제에 대한 해결방안 들어가기 전에... 이러한 고객/주문 ERD가 있다고 했을 때 JPA Entity로 표현해보면 OrderEntit…
자바스크립트의 스코프와 클로저 자바스크립트의 스코프와 클로저 목차 스코프 호이스팅 클로저(Closure) Reference Overview 기본적으로 자바스크립트는 ECMAScript 언어 명세를 따르고 있다. 이 명세 8장의 실행코드와 실행컨텍스트 부분에서 스코프에 관한 동작 방식을…
지금 바로 시작하는 ES6 목 차 서론 Transpiler Babel은 무엇인가? Babel 하위지원을 위한 설정 - Polyfill Babel 하위지원을 위한 설정 - Plugins 사용법 결론 및 요약 서론 매일 쏟아져 나오는 ES6에 대한 글을 보면 그저 한낱 먼 미래의 이야기라는…
디스플레이 광고의 이해 디스플레이 광고의 이해 목차 디스플레이 광고란? 이 글에서 등장하는 용어 디스플레이 광고의 발전 디스플레이 광고 생태계 안녕하세요. NHN엔터테인먼트 크리에이티브플랫폼팀 신재열입니다. 시스템을 개발하는데 있어서 기술만큼 중요한 것이 도메인 지식입니다. 광고 시스템…
TOAST UI Grid를 소개합니다 TOAST UI Grid를 소개합니다 웹개발을 하면서 가장 많이 하게 되는 작업 중 하나는 바로 데이터를 다루는 일입니다. 특히 관리도구를 만들 때는 많은 양의 복잡한 데이터를 화면에 표시하고 편집하는 기능이 필수인데요, 아시다시피 웹에서 그런 기능…
TOAST UI 차트를 소개합니다 TOAST UI 차트를 소개합니다 목차 - 소스코드 다운받기 - 차트 생성하기 - 디자인 변경하기 - 옵션 사용하기 - 범례 기능 살펴보기 - 브라우저 지원범위 살펴보기 - 마치며 웹 서비스를 개발하다 보면 데이터를 차트로 표현해야 하는 경우가 종종 있…
oEmbed를 소개합니다 oEmbed를 소개합니다 목 차 - 들어가기전에 - oEmbed란? - Provider 가 되기 - Consumer로써 oEmbed를 활용하고 싶다면 안녕하세요. NHN엔터테인먼트 이수민입니다. 회사내 기술교육의 일환으로 프로젝트를 진행하던 중 웹 콘텐츠를 더욱…
CodeSnippet과 함께하는 JavaScript 프로그래밍 CodeSnippet과 함께하는 JavaScript 프로그래밍 목 차 기존의 방식과 문제점 defineNamespace 실무 예제 요약 및 결론 웹 서비스에서 자바스크립트의 의존도는 계속 증가하는 추세다. github에 등록…
ES6의 제너레이터를 사용한 비동기 프로그래밍 ES6의 제너레이터를 사용한 비동기 프로그래밍 목 차 제너레이터란? 콜백 지옥 소환 프라미스의 구원 비동기 코드를 동기식 코드처럼 작성하기 제너레이터와 프라미스의 만남 co Koa One More Thing 마치며 자바스크립트가 다른 언어들…
자바스크립트 엔진의 최적화 기법 (2) - Hidden class, Inline Caching 자바스크립트 엔진의 최적화 기법 (2) - Hidden class, Inline Caching 목 차 - Prototype vs Class - Hidden classes - 하지만 성능이 문제…
[서비스 기획/디자인 시 고려해야할 UX 기법] 2편 - 사용자 피드백(User feedbacks) 목 차 - 서비스 제품 연구 - 전략적 연구 - 서비스의 라이프 사이클에 대한 연구 - 보조적인 디지털 연구 - 사용자 조사 방법론 소개 - 사용자 피드백을 정리하며 An introduc…
MySQL 5.7의 새로운 기능에 대해서 소개합니다. - 2편 연재 MySQL 5.7 에 대해서 소개합니다. - 1편 MySQL 5.7의 새로운 기능에 대해서 소개합니다. - 2편 안녕하세요. NHN엔터테인먼트 김성훈 입니다. 저번에 썼던 글을 잊어버리기 전에 올리자! 라는 생각에 부랴…
MySQL 5.7 에 대해서 소개합니다. - 1편 연재 MySQL 5.7 에 대해서 소개합니다. - 1편 MySQL 5.7의 새로운 기능에 대해서 소개합니다. - 2편 안녕하세요. NHN엔터테인먼트 김성훈입니다. 10/21 에 드디어 MySQL 5.7 GA(General Availabi…
리눅스 서버의 TCP 네트워크 성능을 결정짓는 커널 파라미터 이야기 - 3편 연재 리눅스 서버의 TCP 네트워크 성능을 결정짓는 커널 파라미터 이야기 - 1편 리눅스 서버의 TCP 네트워크 성능을 결정짓는 커널 파라미터 이야기 - 2편 목차 - 3편 5. TIME_WAIT socket…
리눅스 서버의 TCP 네트워크 성능을 결정짓는 커널 파라미터 이야기 - 2편 연재 리눅스 서버의 TCP 네트워크 성능을 결정짓는 커널 파라미터 이야기 - 1편 리눅스 서버의 TCP 네트워크 성능을 결정짓는 커널 파라미터 이야기 - 3편 목차 - 2편 4. 네트워크 capacity 관련…
UDP를 사용할 때 고려해야 할 것들 안녕하세요. NHN엔터테인먼트 권오범입니다. 그 동안 TOAST Cloud 의 Real-Time Multiplayer 서비스를 개발하며, 경험한 부분에 대해서 간단히 정리 해보려고 합니다. 몇 년 전부터 UDP에 대한 언급이 많아진 것 같습니다. 사…
리눅스 서버의 TCP 네트워크 성능을 결정짓는 커널 파라미터 이야기 - 1편 연재 리눅스 서버의 TCP 네트워크 성능을 결정짓는 커널 파라미터 이야기 - 2편 리눅스 서버의 TCP 네트워크 성능을 결정짓는 커널 파라미터 이야기 - 3편 목차 - 들어가기 전에 - 준비 - TCP 대역폭(…
Objective-C Generics 안녕하세요. 모바일기술개발팀 김태경 입니다. 얼마전에 WWDC를 통해 OS X 10.11 베타 와 iOS 9 베타가 공개되면서 XCode 7 베타 버전도 함께 공개되었는데요. XCode 7 베타 버전 부터 추가된 Objective-C의 Generic…
Spring Interceptor(혹은 Servlet Filter)에서 POST 방식으로 전달된 JSON 데이터 처리하기 POST 방식으로 전달된 "application/json" 타입의 데이터를 Servlet의 Filter나 Spring의 Interceptor에서 모종의 처리를 하기…
Sparse file 소개 안녕하세요. NHN엔터테인먼트 이진우입니다. 업무 상 iSCSI - Disk Image를 다루면서 알게된 Sparse file에 대해 소개를 해보려고 합니다. * 도움말) iSCSI : IP기반의 스토리지 네트워킹 표준 보통 사람들은 컴퓨터에 운영체제를 설치할…
Java Exception 생성 비용은 비싸다. Creating an exception in Java is very slow Exception이 성능에 영향을 주는 것에 대해 살펴보겠습니다. 예외를 적절하게 쓰면 비지니스 명확성을 높여주기 때문에 각 서비스 성격에 맞게 Custom Ex…
안드로이드 M(마시멜로) 특징 안녕하세요 NHN엔터테인먼트 정주영입니다. 새로운 안드로이드 버전 마시멜로의 특징에 대해 알아보겠습니다. 앱 권한 설정 - 권한 목록 기존에는 앱 접근 권한을 세세하게 나누었던 터라 권한을 이해하기 어렵고 복잡하였습니다. 마시멜로 버전에서는 위치, 카메라,…
Deview 2014 강연 정리: Clustered computing with CoreOS, fleet and etcd 안녕하세요! NHN엔터테인먼트 정성환입니다. 오랜만에 글로 인사드립니다. 이번 DEVIEW 2014의 주요 이슈를 정리하여 보았습니다. 0. 들어가기 전에 이번에 DE…
em1, p2p1 같은 이더넷 이름을 변경하기 안녕하세요. NHN엔터테인먼트 장재완입니다. 기본적으로 리눅스의 이더넷 이름은 eth0, eth1 과 같이 eth 를 prefix로 사용했었습니다. 그런데 몇 해 전부터 리눅스 배포판들이 eth0 과 같은 전통적인 ethernet namin…
한글 인코딩 관련 간단 정리 Image Source: http://www.aboutletters.com/ 안녕하세요. NHN엔터테인먼트 정성환입니다. 그동한 문자셋과 인코딩과의 관계를 정리한 내용을 공유드립니다.궁금하신분께 많은 도움이 되었으면 좋겠습니다. 문자셋과 인코딩 방법의 관계에…