본문 바로가기

Development Note

(69)
RTP : 1장. 이 책을 쓴 이유 1장은 전반적인 책에서 지양하고 지향하고자 하는 바에 대해서 서술이 되어있다. 과도한 설계 코드를 필요 이상으로 융통성 있게 또는 정교하게 만드는 것을 의미한다. 과도한 설계를 하게된다면, 필요 이상으로 크고 복잡한 코드를 기반으로 작업을 해야한다. 이를 해소하기 위해 시스템을 영역별로 설계 하지만, 자신이 맡은 영역에 대해서만 작업하기때문에 중복된 코드를 양산 할 수 있다. 과도하게 설계된 코드는 생산성에도 영향을 미친다. 유지보수를 하고 설계의 의미를 파악하는데 많은 시간이 필요하다. 이러한 설계는 프로그래머나 아키텍트가 인지 하지 못하는 상황에 발생하는 경우가 많고 패턴을 이용한 사전 설계에 빠지곤 한다. 패턴 만능주의 패턴은 객체지향 설계를 위한 융통성있고 정교한 방법이지만, 패턴을 지나치게 활용..
RTP : 어떻게 정리를 하게 될 것인가? 아래와 같은 목차로 책이 구성이 되어있다. 1~5장까지는 전체적인 책에 대한 기본 지식들을 전달하고 있으며, 실제 리팩토링 패턴에 대해서는 6장부터 나오게 된다. 한장씩 또는 연관성 있는 다른 장과 같이 읽고 소감 및 정리를 해보고자 한다. 1장. 이 책을 쓴 이유 과도한 설계 패턴 만능주의 미진한 설계 테스트 주도 개발과 지속적인 리팩터링 리팩터링과 패턴 발전적 설계 2장. 리팩터링 리팩터링이란? 리팩터링을 하는 이유 많은 눈 사람이 읽기 쉬운 코드 깔끔하게 유지하기 작은 단계 설계 부채 새로운 아키텍처 발전시키기 복합 리팩터링과 테스트 주도 리팩터링 복합 리팩터링의 장점 리팩터링 도구 3장 패턴 패턴이란? 패턴 중독 패턴을 구현하는 다양한 방법 패턴 목표, 패턴 지향, 패턴 제거 리팩터링 패턴은 코드..
RTP : Refactoring To Patterns (패턴을 활용한 리팩터링) Agile Java Network (이하, AJN) 에서 처음으로 시작하는 브랜드 Refactoring To Patterns(이하, RTP) 에 대해서 공부하기 시작한다. 먼저 책을 준비하는데에는 그렇게 큰 어려움이 있지 않았다. 하지만 책을 이해하는데 필요한 기본 지식들이 많이 요구 되었다. 일단 부족한 자바 실력이 그 첫번째가 되겠고 두번째는 패턴에 관한 지식이 '제로' 라는 점.. 평소에 Agile Java 라는 책을 공부하면서 그때그때 나오는 디자인 패턴에 대해서는 주먹구구식으로 학습을 해갔지만 몇몇 패턴 이외에는 문외한이다. 리팩토링에 관해서는 그다지 할말이 없다. 다만 리팩토링을 한다는 것 자체가 대단하다는 것만은 알고 있다. 코드를 작성한다는것은 어찌 보면 쉽지만 그걸 유도리 있게 도친다는 ..
Defining and Starting a Thread Defining and Starting a Thread An application that creates an instance of Thread must provide the code that will run in that thread. There are two ways to do this: * Provide a Runnable object. The Runnable interface defines a single method, run, meant to contain the code executed in the thread. The Runnable object is passed to the Thread constructor, as in the HelloRunnable example: 스레드 인스턴스를 만든..
Processes and Threads Processes and Threads 프로세스와 스레드 In concurrent programming, there are two basic units of execution: processes and threads. In the Java programming language, concurrent programming is mostly concerned with threads. However, processes are also important. 동시발생의 프로그래밍에서 프로세스와 스레드라는 두 가지의 기본적인 실행 단위가 있습니다. 자바 프로그래밍 언어에서는 동시 수행의 프로그래밍은 대부분 스레드와 관계가 있습니다. 하지만 프로세스도 또한 중요합니다. A computer system normally h..
PART 1 : Basic of Network (Chaper 5. MAC Address) IEEE 802 규약 IEEE (Institute of Electrical and Electronics Engineers)는 네트워크와 다른 분야에 관련된 기준을 제정하는 미국의 전문 기구입니다. IEEE 802.x 표준은 OSI 참조 모델의 하위 두 계층인 물리적 계층과 데이터 링크 계층을 중심으로 한 표준 시리즈입니다. No 범주 802.1 Internetworking 802.2 Logic Link Control(LLC) 802.3 CSMA/CD(Carrier Sense with Multiple Access / Collision Detection) 802.4 Token Bus LAN 802.5 Token Ring LAN 802.6 MAN(Metropolitan Area Network) 802.7 Br..
PART 1 : Basic of Network (Chaper 4. 프로토콜) 프로토콜(Protocol)이란? 네트워크 구조에서의 프로토콜의 정의는 "표준화된 통신규약으로서 네트워크 기능을 효율적으로 발휘하기 위한 약속" 입니다. 즉, 통신을 원하는 두 개체 간에 무엇을, 어떻게, 언제 통신할 것인가를 서로 약속한 규약이라고 보면 됩니다. 예를 들자면 두사람이 대화를 함에 있어 같은 사용하는 언어(한국어, 영어, 일어...)를 프로토콜이라고 할 수 있습니다. 인터넷에서는 TCP/IP라는 공통의 프로토콜을 사용해서 통신을 합니다. NetBEUI IBM과 Microsoft사가 개발한 NetBIOS의 기능을 강화한 프로토콜입니다. 이 프로토콜은 라우터가 없는 간단한 네트워크에 사용되며 전송 계층과 네트워크 계층에서 동작합니다. IBM과 MS 두 회사간의 네트워크가 목적이었기때문에 소규모..
PART 1 : Basic of Network (Chaper 3. OSI 7 Layer Model ②) 프로토콜 스택과 스택간의 통신 프로토콜(Protocol), 프로토콜 스택(Stack) 프로토콜이란 통신을 하는 두 노드 간의 상호약속으로서, 각 노드들은 서로 같은 프로토콜을 사용해야만 데이터를 주고 받을 수 있다. 프로토콜 스택은 OSI 참조모델에서 한 계층에 한개 이상의 프로토콜이 필요하게 되고 이들이 위치한 영역을 프로토콜 스택이라고 부릅니다. OSI 스택에서의 데이터의 이동 한 노드에서 데이터가 전송이 될때 이 데이터는 계층을 따라서 내려가면서 이동을 하고 전송을 받는 노드에서는 계층을 따라 올라가면서 데이터가 이동을 합니다. 특히, 전송 데이터가 계층을 따라서 이동할때에는 각 계층별로 특정한 정보를 담고 있는 헤더를 추가하면서 다른 계층으로 이동합니다. 반대로 수신 데이터가 계층을 따라서 이동할..