본문 바로가기

Dev.World

(61)
#DEVIEW 2016 React vs Angular 2 , Angular 2 vs React 2016 DEVIEW 후기! - Angular 2 vs React 강연!http://www.slideshare.net/deview/114angularvs-react개발환경언어 생산성컴포넌트 / 템플릿데이터 동기화비동기처리 1. 개발 환경 Setting ( ? )Angular 2 개발환경 구축하기React 개발환경 구축하기Vue.js 개발환경 구축하기 ( ? ) 2. 언어 생산성 - TypeScript ( 영향력 : ✭✭☆☆☆ )그 정체는 무엇인가 TypeScript는 유연함이 장점인 언어인 JavaScript를 잘못 사용하게 되면, 큰 버그를 발생시킬 수 있는 부분을 보안하기 위한 언어이다. ( 굳이 예를 들자면, 인자를 넘겨받을 때 해주는 타입체크라던지…) 일단 여기서 한 가지 짚고 넘어가자. Angu..
[개발상식] 25. Web RTC에 대해서, WebRTC(Web Real-Time Communication) 웹 실시간 커뮤니케이션 기술로 Google, Mozilla 웹 브라우저 간에 플러그인의 도움없이 실시간으로 영상, 음성 데이터 등을 서로 통신할 수 있도록 설계된 API이다. 이 기술을 통해 음성 통화, 비디오 채팅 및 파일 공유를 위한 브라우저 애플리케이션이 원활하게 구현될 수 있다. 현재 지원되는 코덱은 VP8이다. 대다수의 서비스들은 클라이언트-서버 간의 데이터 통신을 통해 기능을 제공하고 있지만 어떤 경우는 클라이언트 간의 빠른 데이터 교환이 중요하게 되는데 이러한 경우 WebRTC가 중요한 기반 기능을 제공한다. 서버를 중계할 이유가 없어지는 것이다. 현재 지원하는 브라우저로는 Chrome, Opera, Firefox 이다. 일반적..
[개발상식] 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 파일을 ..
[개발상식] 23. DevOps란 무엇이며, CI는 무엇인가? DevOps에 대해서,하나의 소프트웨어를 개발하기 위해서는 여러 명이 동시에 개발할 수 있는 환경도 필요하며, 수천명의 사용자를 상대로 내놓으려면 서버와 스토리지, 운영체제 등 뒷단에서 관리해줘야 하는 인프라 환경도 갖춰야 한다. 이러한 역할을 수행하는 것이 Ops의 역할이다. 개발자(Dev)는 고객에게 제공한 변경을 빠르게 보길 원하고 운영자(Ops)는 제공하는 서비스 또는 소프트웨어의 안정성에 더 관심을 두게 된다. 또한 개발자는 개발 생산성을 향상시킬 수 있는 새로운 프레임워크를 도입하고 싶어하지만 Ops는 안정성이 보장되지 않는다는 이유로 이를 꺼려한다. 서로 다른 목적을 갖고 다른 프로세스로 다른 도구를 사용하여 개발을 진행하는 것이다. 이런 차이점 때문에 Dev와 Ops간에 충돌이 발생한다. ..
[개발상식] 22. 테스트 주도 개발에 대하여 - TDD와 BDD 그리고 DDD TDD Test-Driven Development(TDD)는 매우 짧은 개발 서클의 반복에 의존하는 소프트웨어 개발 프로세스이다. 우선 개발자는 요구되는 새로운 기능에 대한 자동화된 테스트케이스를 작성하고 해당 케스트를 통과하는 가장 짧고 가독성이 좋고 유지보수성이 뛰어난 코드를 작성한다. 일단 테스트 통과하는 코드를 작성하고 상황에 맞게 리팩토링하는 과정을 거치는 것이다. 말 그대로 테스트가 코드 작성을 주도하는 개발방식인 것이다. Add a test 테스트 주도형 개발에선, 새로운 기능을 추가하기 전 테스트를 먼저 작성한다. 테스트를 작성하기 위해서, 개발자는 해당 기능의 요구사항과 명세를 분명히 이해하고 있어야 한다. 이는 사용자 케이스와 사용자 스토리 등으로 이해할 수 있으며, 이는 개발자가 코드..
개발 입문자를 위한 짤막한 안내서 - Hello Coding World 이 글은 Coding의 C자도 모르는 분들을 위한 안내서입니다. 독자적으로 작성한게 아닌, 여러 선배 개발자분들의 글들을 읽어가면서 현재 상황에 맞게 ‘새로고침’도 하고, 제 개인적인 의견도 붙이면서 작성했습니다. 최대한 비 개발적인 언어를 사용하기 위해 노력했으며, 소프트웨어 개발에 대해 조금이라도 알아가게 되는 글이 되었으면 합니다. 0. Intro 1. 어떤 분야가 존재하는가 2. 무엇을 공부해야 하는가 3. 어떻게 공부해야 하는가 #0. Intro 막연하게 '난 소프트웨어 개발을 해야지' 하고 시작하는 사람은 없을 것이라고 생각한다. 스마트폰 보급이 대중화되면서 자주 사용하는 모바일 앱을 보고, 앱을 만들고 싶어져서 개발을 하고 싶을 수도 있고, 나만의 웹 사이트를 만들고 싶거나 커뮤니티를 기반으..
[개발상식] 23. 프로비저닝 프로비저닝 ( Provisioning ) 무엇인가 여럿 중에 최적인 것을 찾기 위해 필요한 지식을 미리 준비해놓고 요청에 맞게 공급하는 절차와 행위를 말한다. 즉, 미리 정의된 정책이나 서비스를 사용자에게 지원해주는 것을 말한다. IT 인프라 자원을 사용자 또는 비즈니스의 요구사항에 맞게 할당, 배치, 배포해서 시스템을 사용할 수 있도록 만들어 놓는 것이다. 프로비저닝에는 약 다섯 가지의 종류가 존재한다. 서버 자원 프로비저닝 서버의 CPU, Memory 등의 자원을 할당 또는 적절하게 배치해서 운영할 수 있도록 준비해 놓는 것을 서버 자원 프로비저닝이라 한다. OS 프로비저닝 OS를 서버에 설치하고, 구성 작업을 해서 OS가 기동되도록 준비해 놓는 것을 OS 프로비저닝이라 한다. 소프트웨어 프로비저닝 ..
Linter란 무엇인가? - Webstorm에서 ESLint 설정하기 자바스크립트 코딩 Tool Linter linter란 정적 타입 분석 도구를 말한다. 자바스크립트의 언어적 특성상, 런타임 시에 JSLint 더글라스 크락포드가 만든 Javascript 정적 분석 도구이다. 너무 엄격한 규칙 때문에, 이 규칙을 조금 완화한 Hint를 많이 사용한다. JSHint 위에서 언급했듯이, JSLint에서 파생되었으며, 안톤 코발료프가 관리하고 있는 툴이다. 대부분의 옵션을 켜고 끌 수 있다는 장점이 있다. JSCS 코드 스타일 linter이다. 프로그래밍적으로 코딩 스타일을 가이드 해주는 역할을 한다. JS Hint와 JS Lint는 Best coding pratice를 제공하는데 주력하고 있지만 코딩 스타일을 체크하고 수정하는 방법은 제공하지 않는다. ESLint 자카스라는 ..