전체 글

데이터를 숨겨라객체 - 속성(데이터) /기능(메서드)캡슐화에서 가장 필수로 숨겨야 하는 것은 속성(데이터)내부 데이터까지 직접 사용할 필요가 없고 조작하게 해서도 안된다. 기능 숨기기    - 객체에서 내부에서만 사용하는 기능은 모두 감추는 것이 좋다.즉, 데이터는 모두 숨기고, 기능은 꼭 필요한 기능만 노출하는 것이 캡슐화이다
전략패턴알고리즘 군을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해줍니다전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있습니다.옵저버 패턴한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의합니다데코레이터 패턴객체에 추가 요소를 동적으로 더할 수 있습니다.데코레이터를 사용하면 서브클래스를 만들 때보다 훨씬 유연하게 기능을 확장할 수 있습니다.팩토리 메소드 패턴객체를 생성할 때 필요한 인터페이스를 만듭니다.어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정합니다.팩토리 메소드 패턴을 사용하면 클래스 인스턴스 만드는 일을 서브클래스에게 맡기게 됩니다.추상 팩토리 패턴구상 클래스에 의존하..
디자인 원칙애플리케이션에서 달라지는 부분을 찾아내고 달라지지 않는 부분과 분리한다. 구현보다는 인터페이스에 맞춰서 프로그래밍한다. 상속보다는 구성을 활용한다. 느슨한 결합객체들이 상호작용할 수는 있지만, 서로르 잘 모르는 관계주제는 옵저버가 특정 인터페이스를 구현한다는 사실만 앎옵저버는 언제든지 새로 추가할 수 있음새로운 형식의 옵저버를 추가할 때도 주제를 변경할 필요가 전혀 없음 주제와 옵저버는 서로 독립적으로 재사용할 수 있음 주제나 옵저버가 달라져도 서로에게 영향을 미치지는 않음상호작용하는 객체 사이에는 가능하면 느슨한 결합을 사용해야 함 클래스는 확장에는 열려 있어야 하지만 변경에는 닫혀 있어야 함 추상화된 것에 의존하게 만들고 구상 클래스에 의존하지 않게 만들어야 함
디자인 패턴 패턴 - 특정 컨텍스트 내에서 주어진 문제의 해결책컨텍스트 - 패턴이 적용되는 상황문제 - 컨텍스트 내에서 이뤄야 하는 목표를 뜻함해결책 - 제약조건 속에서 누가 적용해도 목표를 이룰 수 있는 일반적인 디자인  생성패턴 싱클턴추상팩토리 팩토리 메서드 프로토타입 빌더    구조데코레이터프록시 퍼사드 컴포지트 어댑터 플라이웨이트 브리지 행동템플릿 메소드 싱글턴 반복자 옵저버 상태 전략 비지터 중재자 인터프리터 메멘토 클래스 템플릿 메소드 펙토리 메소드 어댑터 인터프리터  객체  (나머지) 패턴으로 생각하기 최대한 단순하게이 문제에 어떻게 패턴을 적용할 수 있을까가 아니라 어떻게 하면 단순한게 해결할 수 있을까에 초점을 맞춰야함  디자인 패턴은 만병통치약이 아님패턴을 사용할 때는 그 패턴이 설꼐한..
· CS/Network
https://github.com/l2yujw/JavaNetwork/tree/main
· CS/Network
Thread Process와 Thread Process에서 실제로 작업을 수행하는 것은 Thread이다. Process Program을 실행하면 Operating System (OS)은 실행에 필요한 자원을 할당받아 Process가 된다.Process의 자원을 이용해서 실제로 작업을 수행하는 것은 Thread이다.모든 Process는 최소한 하나 이상의 Thread가 존재한다.Process가 가질 수 있는 Thread의 개수는 제한되어 있지 않다.Thread가 작업을 수행하는 데 개별적인 Memory 공간인 Call Stack을 필요로 하기 때문에 Memory에 의존적이다. Thread 구현Thread Class를 상속받아 구현하는 방법Java는 단일 상속을 지원하기 때문에 Thread Class를 상속..
· CS/Network
Socket Socket Programming java.net package를 이용하면 Network Application을 쉽게 작성할 수 있다.하지만 Network 관련 지식이 필요하다!TCP/IP Networking Model에 대한 이해 TCP/UDP가 Network Application 개발하는데 중요하다 Socket API Flow[Server]                           [Client]Socket()                           Socket() bind() listen() accept() read()/write()    write() / read() //Stream을 잘 다뤄야 한다 close()                            close..
· CS/Network
Router Architecture   Input PortRouter의 Physical Link 종단에서 Physical Layer 기능을 수행한다.Input Link의 반대편에 위치한 Link Layer와 상호 운용 (Interoperability)하기 위해 필요한 Link Layer 기능을 수행한다.Input Port에서 Lookup 기능을 수행하는 점이 가장 중요하다. ☑ Forwarding Table을 참조하여 Switch Fabric를 통해 전달되는 Packet의 Router Output Port를 결정한다.☑ Control Packet은 Input Port에서 Routing Processor로 전달된다. Switching FabricRouter의 Input Port와 Output Port를 연..
· CS/Network
Network Layer=> 송신 Host에서 수신 Host로 Packet을 전달하는 역할을 수행한다.Forwarding☑ Packet이 Router의 Input Link에 도착했을 때 Router는 Packet을 적절한 Out Link로 이동시켜야 한다.☑ Network Layer의 Data Plane에서 실행된다. Routing☑ 송신자가 수신자에게 Packet을 전송할 때 Network Layer은 Packet의 경로 (Route or Path)를 결정해야한다.☑ 이러한 경로를 계산하는 Algorithm을 Routing Algorithm이라고 한다.☑ Network Layer의 Control Plane에서 실행된다. Network Layer에서 Forwarding과 Routing의 의미가 혼용되기도..
· CS/Network
Internet ProtocolDatagram Format => TCP/IP Protocol에서 Network Layer의 Packet을 Datagram이라고 한다.        [Version] [Header] [Type of Service ] [      Datagram Length (bytes)      ]         [       16-bit Identifier           ] [  Flags  ] [   13-bit Fragmentation offset   ]         [Time-to-live] [Upper-layer protocol] [           Header checksum             ]         [                               ..
· CS/Network
Java IO Stream        Java에서 입출력을 수행하기 위해서는 Stream을 이용한다.Stream이란 Data를 운반하는데 사용되는 연결통로이다.Stream은 단방향통신만 가능하기 때문에 하나의 Stream으로는 입력과 출력을 동시에 처리할 수 없다.Stream은 연속적으로 Data를 주고 받는다.Queue와 같은 FIFO (First In First Output) 구조로 동작한다고 생각하면 이해하기 쉽다. Stream은 Byte단위로 Data를 전송하며 입출력 대상에 따라 각기 다른 Stream을 사용한다.File]      => FileInputStream / FileOutputStream[Memory]    => ByteArrayInputStream / ByteArrayOutputS..
· CS/Network
TCPApplication Process가 Data를 다른 Process로 전송하기 전에 Handshake를 수행해야 한다.Handshake를 수행해야 하므로 Connection-oriented라고 한다. FDM (Frequency Division Multiplexing)Link의 Frequency Spectrum을 공유한다.각 연결에 대해 고정된 Frequency Band를 제공한다.FM 라디오 방송도 Frequncy Spectrum을 공유한다.MBC: 91.9MHzSBS: 107.7MHzTDM (Time Division Multiplexing)시간을 일정 주기의 Frame으로 구분한다.각 Frame은 고정된 개수의 Slot으로 나눈다.TDM 회선에서의 전송률☑ Link: 초당 8,000 Frame 전..
류가든
장난감정원