본문 바로가기

제로베이스 BE 21기/면접을 위한 CS 전공지식 노트4

[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.
[CS] Ch.1 디자인 패턴과 프로그래밍 패러다임 : 싱글톤 패턴, 팩토리 패턴, 전략 패턴 1.1 디자인 패턴프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것 1.1.1 싱글톤 패턴하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴으로, 보통 데이터베이스 연결 모듈에 많이 사용된다. 장점 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어듦 단점 의존성이 높아짐   자바스크립트의 싱글톤 패턴자바스크립트에서는 리터럴 {} 또는 new Object로 객체를 생성하게 되면 다른 어떤 객체와도 같지 않기 때문에 이 자체만으로 싱글톤 패턴을 구현할 수 있다.const obj = { a: 27}const obj2 = { a: 27}con.. 2024. 5. 9.