본문 바로가기

Dev.

(341)
[개발상식] 23. 프로비저닝 프로비저닝 ( Provisioning ) 무엇인가 여럿 중에 최적인 것을 찾기 위해 필요한 지식을 미리 준비해놓고 요청에 맞게 공급하는 절차와 행위를 말한다. 즉, 미리 정의된 정책이나 서비스를 사용자에게 지원해주는 것을 말한다. IT 인프라 자원을 사용자 또는 비즈니스의 요구사항에 맞게 할당, 배치, 배포해서 시스템을 사용할 수 있도록 만들어 놓는 것이다. 프로비저닝에는 약 다섯 가지의 종류가 존재한다. 서버 자원 프로비저닝 서버의 CPU, Memory 등의 자원을 할당 또는 적절하게 배치해서 운영할 수 있도록 준비해 놓는 것을 서버 자원 프로비저닝이라 한다. OS 프로비저닝 OS를 서버에 설치하고, 구성 작업을 해서 OS가 기동되도록 준비해 놓는 것을 OS 프로비저닝이라 한다. 소프트웨어 프로비저닝 ..
[TodoMVC] Step 7. ECMAScript2015 Refactoring Step 7. ECMAScript 2015 로 Refactoring하기 Intro ES6 문법이 자리를 잡아가면서, 그 필요성이 증대됬습니다. 이를 연습하기 위해 VanilaJS TodoMVC를 ES6 문법에 맞게 Refactoring 해봤습니다. 이전의 포스팅 단계로 봤을 때, Step 3. RemoveItem 에 해당하는 단계까지만 진행해봤습니다. 그 다음 단계는 똑같은 refactoring의 반복이기에 생략했습니다. 기존의 코드와 비교하면서 보시면 더 이해가 잘 되실겁니다.문법적은 내용에 대한 설명은 이 포스팅에서는 생략하겠습니다.아직 ES6 문법이 익숙하지 않으신 분들은 아래 포스팅을 통해 확인하는 것도 좋을 것 같습니다.>> TodoMVC Project VanilaJS version 포스팅으로 ..
[iOS] Swift란? Swift란 스위프트는 애플의 iOS와 OS X을 위한 프로그래밍 언어이다. 기존의 애플 운영체제용 언어인 Objective-C와 함께 공존할 목적으로 만들어졌다. 오브젝티브 C와 마찬가지로 LLVM 으로 빌드되고 같은 런타임을 공유한다. 클로저, 다중 리턴 타입, 네임스페이스 제네릭스, 타입 유추 등 오브젝티브 C에는 없던 현대 프로그래밍 기능을 포함시켰다. 조금 자세히 살펴보자. 해시 테이블 - 자바스크립트 자바스크립트 프로그래머들은 전통적으로 대괄호를 사용해서 정수를 전통적인 배열로 취하거나 문자열을 받는데, 이것이 해시 테이블 역할을 한다. 이제 스위프트 프로그래머들도 똑같이 할 수 있다. 애플은 해시 테이블을 "사전(Dictionaries)"이라고 부르며, 이를 초기화하기 위한 깔끔한 구문을 제..
Linter란 무엇인가? - Webstorm에서 ESLint 설정하기 자바스크립트 코딩 Tool Linter linter란 정적 타입 분석 도구를 말한다. 자바스크립트의 언어적 특성상, 런타임 시에 JSLint 더글라스 크락포드가 만든 Javascript 정적 분석 도구이다. 너무 엄격한 규칙 때문에, 이 규칙을 조금 완화한 Hint를 많이 사용한다. JSHint 위에서 언급했듯이, JSLint에서 파생되었으며, 안톤 코발료프가 관리하고 있는 툴이다. 대부분의 옵션을 켜고 끌 수 있다는 장점이 있다. JSCS 코드 스타일 linter이다. 프로그래밍적으로 코딩 스타일을 가이드 해주는 역할을 한다. JS Hint와 JS Lint는 Best coding pratice를 제공하는데 주력하고 있지만 코딩 스타일을 체크하고 수정하는 방법은 제공하지 않는다. ESLint 자카스라는 ..
[ES6] 부록. ECMAScript 2015 개발환경 Setting with Webpack, ESLint ECMAScript 2015 개발환경 Setting with Webpack and ESLint ES6 문법으로 자바스크립트 코드를 작성하는 것이 간결하지만, 현재 모든 브라우저에서 완벽하게 ES6 문법을 지원해주지 못하고 있다. 그렇기에 개발자들은 ES6로 작성된 코드를 이전의 문법인 ES5 문법으로 transpile하여 배포해야하는 경우가 발생했다. 이를 도와주는 것이 babel 이라는 npm이 있다. 하지만 여기서 한 발짝 더 나아가 bundle 기능까지 함께 제공하는 ( 원래 주가 bundle 기능이다. ) webpack을 활용하여 transpile 하자. webpack은 이 두 가지 기능 이외에도 정말 다양한 기능을 갖고 있다. 또한 ESLint를 이용하여 보다 우아한 ES6에 맞는 자바스크립트 ..
[iOS] iOS Application Development Intro iOS Application Development Intro Objective - C 표준 C 언어를 포함하는 확장된 언어이다. 하지만 C가 컴파일러에 의존하는 정적인 언어라면, Objective-C는 런타임이라고 불리는 기능에 의존하는 동적인 언어이다. 즉 실행했을 때, 결정되는 언어라는 것이다. 동적이라는 것은, 세가지의 의미를 갖는다. Dynamic typing : 코드에서 다루는 오브젝트의 type이 무엇인지 실행 도중에 결정된다. Dynamic binding : 코드 상의 statement가 어떤 메소드를 실행시킬지 실행 도중에 결정된다. Dynamic loading : 어떤 모듈이 실행 도중 언제 메모리에 불려올지 실행 도중에 결정된다. cf) cocoa 애플 환경에서 애플리케이션을 제작하기 ..
[ES6] 7. Module system Chater 7. Module System Module이란ES6의 모듈은 Javascript 코드를 담고 있는 파일을 말한다. global scope에서의 변수명 충돌을 방지하기 위해 모듈화 방식을 사용한다.ES6 모듈은 모듈안에서 자동적으로 strict 모드로 처리되며 모듈안에서는 import, export 키워드로 모듈을 노출시키거나 불러올 수 있다. 모든 import와 export 구문은 모듈의 작성된 코드의 top level에만 올 수 있다. 조건적으로 import하거나 export할 수 없으며 import 구문을 함수 스코프에서 사용할 수도 없다. export 구문은 명시적인 이름으로 export 되어야 한다. 배열을 순회한다던가의 방법은 사용할 수 없다. 단 중괄호 안에 한꺼번에 여러 개의 모..
[ES6] 6. Class sugar syntax and Template Strings Chapter 6. Class sugar syntax and Template Strings 기존의 자바스크립트에서는 캡슐화를 하기 위해 constructor function을 사용하였다. 이를 보완하기 위해 class 문법이 등장하였다. class라는 키워드로 말 그대로 클래스를 생성할 수 있게 된 것이다. 이것은 새로운 객체 모델이 아니라 기존에 사용했던 프로토타입 객체 지향의 문법을 class 기반인 것처럼 wrapping 한 문법이다. sugar syntax라고도 한다. ES5>>12345678function SponsorWidget(name, description, url){ this.name = name; this.description = description; this.url = url;}Sp..