Refactoring 1편 컴퓨터가 인식 가능한 코드는 바보라도 작성할 수 있지만, 인간이 이해할 수 있는 코드는 실력있는 프로그래머만 작성할 수 있다. What, 리팩토링이란 무엇인가 정의 리팩토링이란 겉으로 드러나는 기능은 그대로 둔 채, 아랑보기 쉽고 수정하기 간편하게 소프트웨어 내부를 수정하는 작업을 말한다. 리팩토링 기법을 연달아 적용해서 겉으로 드러나는 기능은 그대로 둔 채 소프트웨어 구조를 변경한다. 목적 첫째, 리팩토링은 소프트웨어를 더 이해하기 쉽고 수정하기 쉽게 만드는 것이다. 둘째, 리팩토링은 겉으로 드러나는 소프트웨어 기능에 영향을 주지 않는다. Why, 리팩토링은 왜 필요한 것인가 1) 소프트웨어의 설계를 보다 더 나아지게 한다. 2) 코드를 더 이해하기 쉽게 만든다. 3) 코드에..
blocking, non-blocking and AsyncBlocking I/O Model일단 I/O작업은 User Level(application)에서 직접 수행할 수 없다. 실제 I/O작업은 Kernel Level(OS)에서 일어나는 과정이다. 따라서 유저 프로세스(applicatioin)는 커널(OS)에게 I/O 작업에 대한 요청을 해야 한다. I/O 작업을 처리하기 위해 User Level에 있던 Application이 시스템 함수를 호출한다.(system call) 이 때 context-switching 이 발생한다. 그리고 Kernel Level에서 해당 I/O 작업이 끝나고 데이터를 반환하게 되면 그 때가 되서야 애플리케이션 단의 스레드에 걸렸던 block이 풀린다. 애플리케이션 관점에서 보..
개발 공부를 시작할 때, 객체 지향이란 무엇인가, 객체 지향적인 설계는 어떻게 해야 하는 것인가에 대한 포스팅을 한 적이 있다. 이쯤에서 이 개념들을 다시 한 번 짚고 넘어가봐야 할 것 같아서 다시 한 번 정리해봤다. #다시 보는 객체 지향객체 지향의 시작 우리가 주변에서 사물을 인지하는 방식대로 프로그래밍할 수 있지 않겠는가 하는 것이 객체지향의 출발이다. 객체 지향에서 객체를 다음과 같이 정의한다. 세상에 존재하는 모든 것은 객체이며 각각의 객체는 고유하다. 또한 객체는 어떠한 속성을 갖고 어떠한 행위를 한다. 이에 따라 객체의 속성을 property로 정의하고 행위를 method로 정의한다. 객체 지향은 어떤 특성을 갖고 있는가? 캡슐화 : 정보은닉 상속 : 재사용 추상화 : 모델링 다형성 : 사용..
로드밸런싱과 클러스팅로드밸런싱(Loadbalancing)로드 밸런싱이란 부하 분산을 위해서 가상(virtual) IP를 통해 여러 서버에 접속하도록 분배하는 기능을 말한다. 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도 저하 등을 고려하여 적절히 분산처리하여 해결해 주는 서비스이다. 로드밸런싱을 해주는 소프트웨어 혹은 하드웨어 장비를 로드밸런서라고 한다. 로드밸런서의 주 목적은 동시에 오는 수 많은 커넥션을 처리하고 해당 커넥션이 요청 노드 중의 하나로 전달될 수 있게 하는 것이다. 그리고 단지 노드를 추가하는 것만으로 서비스가 확장성을 가질 수 있도록 한다. 오픈 소스 로드 밸런서 중 많이 사용되고 있는 것은 HAProxy 이다. >..
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..
- Total
- 1,373,458
- Today
- 37
- Yesterday
- 529