본문 바로가기

Dev.World/Tool

(6)
[개발상식] 24. 각종 DevOps Tool - Jenkins / Travis CI / Docker / Ansible with YAML Continuous Integration Tool Jenkins란젠킨서버란 오픈 소스 CI(Continuous Integration) Tool 로 Java로 만들어졌다. CI란 팀 구성원들이 작업한 내용을 정기적으로 통합하는 것을 의미한다. 만약 github을 통해 협업 중이라면 각각의 version controller 에 각자 작업한 내용을 commit을 하게 되는데, 이렇게 commit된 소스코드들을 정기적으로 통합시켜주는 것을 도와준다. 지속적으로 코드의 퀄리티를 관리할 수 있으며, 소프트웨어의 질적 향상과 소프트웨어를 배포하는데 걸리는 시간을 줄이는데 그 목적이 있다. 현재 csv, svn, git 등의 소스 툴들을 지원하고 ant와 maven 등의 빌드 툴을 지원하며 배포 형태는 war 파일을 ..
Linter란 무엇인가? - Webstorm에서 ESLint 설정하기 자바스크립트 코딩 Tool Linter linter란 정적 타입 분석 도구를 말한다. 자바스크립트의 언어적 특성상, 런타임 시에 JSLint 더글라스 크락포드가 만든 Javascript 정적 분석 도구이다. 너무 엄격한 규칙 때문에, 이 규칙을 조금 완화한 Hint를 많이 사용한다. JSHint 위에서 언급했듯이, JSLint에서 파생되었으며, 안톤 코발료프가 관리하고 있는 툴이다. 대부분의 옵션을 켜고 끌 수 있다는 장점이 있다. JSCS 코드 스타일 linter이다. 프로그래밍적으로 코딩 스타일을 가이드 해주는 역할을 한다. JS Hint와 JS Lint는 Best coding pratice를 제공하는데 주력하고 있지만 코딩 스타일을 체크하고 수정하는 방법은 제공하지 않는다. ESLint 자카스라는 ..
AMP ( Accelerated Mobile Pages ) AMP ( Accelerated Mobile Pages ) AMP는 우리나라말로는 빠른 게재 모바일 페이지로 Accelerated Mobile Pages의 줄임말이다. 모바일 웹의 중요성이 증대되는 가운데, 빠른 UX를 제공하기 위한 웹페이지를 만드는 오픈소스이다. 웹이 애플과 페이스북의 플랫폼으로 종속되는 현상을 막고자 구글이 주도하여 개발한 새로운 플랫폼이다. 컨텐츠가 어느 특정 플랫폼으로 종속될수록, 오픈 웹은 죽어가게 된다. 최근들어서 모바일의 영향력이 증대되면서, 페이스북 같은 특정 플랫폼으로 컨텐츠가 집중되고 있다. 왜? 빠르니까. 모바일에서의 웹은 그리 빠른 성능을 보이지 못한다. 반면 Native App들은 모바일 환경에서 태어났기 때문에 빠른 성능을 자랑한다. 이 점을 앞세워 특정 플랫폼..
Common JS, AMD Common JS 의존성 관리 문제에는 단지 어떤 의존성 관리 시스템을 이용할 수 있느냐의 문제 뿐만 아니라 성능 문제도 끼어있다. 브라우저는 모든 자바스크립트 파일을 HTTP 요청을 보내야 하는 것이다. 각 연결을 이용하려면 HTTP 헤더, 쿠키, 다른 TCP 핸드셰이크 시작 등의 오버헤드가 따른다. 애플리케이션이 SSL을 이용한다면 상황은 더 심각해진다 Common JS 모듈을 선언하는 방법은 상당히 직관적이다. 기본적으로 명칭 공간을 이용하며 각 모듈은 인터프리터가 정의한 exports 오브젝트에 변수를 추가하여 외부에 공개할 수 있다 모듈에 명칭 공간을 적용했으므로 Node.js 같은 모든 CommonJs 호환 자바스크립트 인터프리터에서 이 코드를 사용할 수 있는 것이다. AMD AMD는 동적로딩..
Web Component - Ploymer Web Component 재사용 가능한 컴포넌트를 만들 수 있는 표준 기술들의 모음 구성요소 Custom Elements커스텀 태그를 통한 요소 생성 새로운 HTML 요소를 생성하여 다른 요소에 확장한다. HTML ImportsHTML 페이지 로딩 HTML/CSS/JS를 묶음 형태로 사용한다. 단일 URL로 호출한다. 다른 도메인의 리소스를 로딩하기 위해서 CORS 활성화가 필요하다. HTML Templates템플릿 태그 내 태그들은 사용되기 전까지는 파싱은 되나 렌더링되지 않는다. 비활성화 상태의 복제 가능한 DOM chunk Shadow DOMDOM과 스타일의 캡슐화 별도의 스코프를 갖는 DOM을 말한다. 폴리머에서 생성하는 모든 요소들은 shadowDOM으로 처리한다. Polymer Polymer는..
JavaScript Module bundler Webpack, 자바스크립트 모듈 번들러 웹팩 등장배경 Javascript가 많은 곳에서 쓰이게 되면서 모듈화의 필요성 증대되었다.범용적인 목적으로 JavaScript를 사용하기 위해 필요한 선결 조건은 모듈화이다. 모듈화는 세 부분으로 이루어진다. 스코프(Scope) 모든 모듈은 자신만의 독립적인 실행 영역이 있어야 한다. 자바스크립트의 언어적인 특성상 전역변수와 지역변수를 분리하는 것이 매우 중요하다. 정의(Definition) 모듈 정의는 exports 객체를 이용한다. 사용(Usage) 모듈 사용은 require 함수를 이용한다. 브라우저에는 모듈화를 지원하기 위해 Common JS or AMD(Asynchronous Module Definition)의 스펙을 구현한 많은 라이브러리가 있다.그 중 대표적으로 널리 쓰이는 것이 Require J..