DIP - 의존 역전 원칙(Dependency inversion principle) 고차원 모듈은 저차원 모듈에 의존하면 안 된다. 이 두 모듈 모두 다른 추상화된 것에 의존해야 한다. 추상화된 것은 구체적인 것에 의존하면 안 된다. 구체적인 것이 추상화된 것에 의존해야 한다. 로버트 C. 마틴은 DIP에 대해 이렇게 말했다. 이것만 보면 이 말이 의존 역전 원칙이라는 용어와 잘 맞물리지 않는다. 고차원 모듈은 뭐고 저차원 모듈은 뭐지? 먼저 이것부터 알아보자. 고차원 모듈(High Level Module) : Interface/abstraction 같이 저차원 모듈을 조종하는 모듈 저차원 모듈(Low Level Module) : 고차원 모듈이 일을 할 수 있게 도와주는 작은 모듈들 예를 들어 고차원 모..
객체 지향 설계 5원칙 - SOLID SOLID란? SOLID란 용어는 로버트 C.마틴(aka Uncle Bob)가 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙으로 제시한 원칙을 마이클 페더스가 앞글자만 따서 만들어진 용어이며. 다섯가지 원칙은 다음과 같다. SRP(Single Reponsibility Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존 역전 원칙 SOLID는 기존의 높은 응집도..
[인터넷의 재료 2탄] IP위에서 돌아가는 TCP/UDP 프로토콜 인터넷의 재료 1탄: 네트워크, IP란? 저번 시간에서는 인터넷의 정의와 네트워크, 컴퓨터와 컴퓨터가 데이터 통신을 하기 위해 만들어둔 프로토콜에 대하여 살펴보았었다. 가장 중요했던 것은 장치를 고유하게 식별할 수 있게 주소를 사용하며, 보내려는 메시지를 패킷으로 잘게 나누어 목적지에 잘 도착하도록 하는 인터넷 프로토콜에 관련된 것들이었다. 그리고 끝에서 이런 얘기를 했었다. 이러한 IP가 패킷의 모든 결과를 처리해주지 않는다고 말이다. 보내려는 패킷이 오염되고, 손실되고, 순서없이 도착했을 경우 IP가 해줄 수 있는 일은 없기때문에 IP 위에서 더 높은 수준의 프로토콜을 사용해아한다. 그 프로토콜들을 이제부터 알아보자. UDP (User..