본문 바로가기

CS Study44

[CS] Ch.2 네트워크 : 네트워크 기기 2.3.1 네트워크 기기의 처리 범위네트워크 기기는 계층별로 처리 범위를 나눌 수 있다. (e.g. 물리 계층을 처리할 수 있는 기기, 데이터 링크 계층을 처리할 수 있는 기기 등) 이 때 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가하다. 예를 들어 L7 스위치는 애플리케이션을 처리하는 기기로, 그 밑의 모든 계층의 프로토몰을 처리할 수 있다.애플리케이션 계층 : L7 스위치인터넷 계층 : 라우터, L3 스위치데이터 링크 계층 : 브리지, L2 스위치물리 계층 : NIC, 리피터, AP 2.3.2 애플리케이션 계층을 처리하는 기기L7 스위치스위치 : 여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비 .. 2024. 9. 8.
[객체지향] Ch.2 이상한 나라의 객체 객체지향 패러다임은 지식을 추상화하고 추상화한 지식을 객체 안에 캠슐화함으로써 실세계 문제에 내재된 복잡성을 관리하려고 한다. 객체를 발견하고 창조하는 것은 지식과 행동을 구조화하는 문제다.- 레베카 워프스브록 (Rebecca Wirfs-Brock)  객체지향과 인지 능력인간은 본능적으로 세상을 독립적이고 식별 가능한 객체의 집합으로 바라본다. 많은 사람들이 객체지향을 직관적이고 이해하기 쉬운 패러다임이라고 말하는 이유는 객체지향이 세상을 자율적이고 독립적인 객체들로 분해할 수 있는 인간의 기본적인 인지 능력에 기반을 두고 있기 때문이다. 인간이 직접적으로 지각할 수 있는 대부분의 객체는 물리적인 경계를 지닌 구체적인 사물이다. 그러나 인간의 인지 능력은 물리적인 한계를 넘어 개념적으로 경계 지을 수 있.. 2024. 6. 6.
[객체지향] Ch.1 협력하는 객체들의 공동체 객체지향의 목표는 실세계를 모방하는 것이 아니라 오히려 새로운 세계를 창조하는 것이다. 하지만 실세계에 대한 비유가 객체지향의 다양한 측면을 이해하고 학습하는 데 매우 효과적이기에 여전히 사용되고 있다.객체를 스스로 생각하고 결정하는 현실 세계의 생명체에 비유하는 것은 상태와 행위를 '캡슐화'하는 소프트웨어 객체의 '자율성'을 설명하는 데 효과적이다. 현실 세계의 사람들이 암묵적인 약속과 명시적인 계약을 기반으로 협력하며 목표를 달성해 나가는 과정은 '메시지'를 주고받으며 공동의 목표를 달성하기 위해 '협력'하는 객체들의 관계를 설명하는 데 적합하다. 실세계의 사물을 기반으로 소프트웨어 객체를 식별하고 구현까지 이어간다는 개념은 객체지향 설계의 핵심 사상인 '연결완전성(seamlessness)'을 설명하.. 2024. 5. 28.
[CS] Ch.2 네트워크 : 네트워크의 기초 2.1 네트워크의 기초네트워크 : 노드와 링크가 서로 연결되어 있거나 연결되어 있지 않은 집합 노드 : 서버, 라우터, 스위치 등 네트워크 장치링크 : 유선 또는 무선라우팅어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정최적의 경로는 주어진 데이터를 가장 짧은 거리로 또는 가장 적은 시간 안에 전송할 수 있는 경로라우터컴퓨터 네트워크 간에 데이터 패킷을 전송하는 네트워크 장치패킷의 위치를 추출하여, 그 위치에 대한 최적의 경로를 지정하며, 이 경로를 따라 데이터 패킷을 다음 장치로 전달간단히 말해, 서로 다른 네트워크 간에 최적의 경로를 찾아내는 알고리즘을 활용해 중계 역할을 해주는 장치게이트웨이의 역할을 수행하기도 함허브 (반이중 통신방식 지원)이더넷 네트워크에서 여러 대의 컴퓨.. 2024. 5. 21.
[CS] Ch.1 디자인 패턴과 프로그래밍 패러다임 : 프로그래밍 패러다임 1.2 프로그래밍 패러다임프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론 여러 패러다임을 지원하는 언어로는 C++, 파이썬, 자바스크립트가 있으며, 자바의 경우 jdk 1.8부터 함수형 프로그래밍 패러다임을 지원하기 위해 람다식, 생성자 레퍼런스, 메서드 레퍼런스를 도입했고 선언형 프로그래밍을 위해 스트림(stream) 같은 표준 API 등도 추가하였다. 프로그래밍 패러다임은 크게 선언형, 명령형으로 나누며, 선언형은 함수형이라는 하위 집합을 갖는다. 또한, 명령형은 다시 객체지향, 절차지향으로 나눈다.  1.2.1 선언형과 함수형 프로그래밍선언형 프로그래밍 (declarative programming)'무엇을' 풀어내는가에 집중하는 패러다임"프로그램은 함수로 이루어진 것이다." .. 2024. 5. 16.
[CS] Ch.1 디자인 패턴과 프로그래밍 패러다임 : 옵저버 패턴, 프록시 패턴, 이터레이터 패턴, 노출모듈, MVC 패턴, MVP 패턴, MVVM 패턴 1.1.4 옵저버 패턴주체가 어떤 객체(subject)의 상태 변화를 관찰하다가상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는옵저버들에게 변화를 알려주는 디자인 패턴 주체 = 객체의 상태 변화를 보고있는 관찰자옵저버들 = 이 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 '추가 변화 사항'이 생기는 객체들   주체와 객체를 따로 두지 않고 상태가 변경되는 객체를 기반으로 구축하기도 한다.옵저버패턴은 주로 이벤트 기반 시스템에 사용하며 MVC 패턴에도 사용된다.  자바에서의 옵저버 패턴import java.util.ArrayList;import java.util.List;interface Subject { public void register(Observer obj); p.. 2024. 5. 16.