![[CS] IP주소(APR, 홉바이홉통신, 주소체계, 주소를 이용한 위치정보)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmaDXY%2FbtrNMGfLoWQ%2FcDHj7Wkemtcc0cDY1sY6k1%2Fimg.jpg)
IP(Internet Protocol) : 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약 1. ARP(Address Resolution Protocol)란? - IP주소(가상주소)로부터 MAC주소(실제주소)를 구하는, IP와 MAC 주소의 다리역할을 하는 프로토콜. RARP(Reverse Address Resolution Protocol) : MAC주소를 IP주소로 변환 - 호스트가 ARP Request 브로트캐스트를 보내, IP주소에 해당하는 MAC주소를 찾음. 이후 해당하는 장치가 ARP reply 유니캐스트를 통해 MAC 주소를 반환하여 IP주소에 해당하는 MAC주소 찾음. 더보기 * 프로토콜 : 복수의 컴퓨터 사이나 중앙 컴퓨터와 단말기 사이에서 데이터 통신을 원활하..
![[CS] 네트워크의 기초(처리량, 지연 시간, 토폴로지, 병목, 명령어, 프로토콜 표준화,. )](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB4I5Y%2FbtrM8f4Af6L%2F9vWWz8VLEYFkIkzaxJfKgK%2Fimg.png)
네트워크(Network)란? 네트워크 : 컴퓨터 등의 장치들이 통신기술을 이용하여 구축하는 연결망을 지칭하는 용어. - 노드(node)와 링크(link)가 서로 연결되어있거나 연결되어있지 않은 집합체를 의미. 더보기 * 노드 : 서버, 라우터, 스위치 등 네트워크 장치를 의미. * 링크 : 유선 또는 무선을 의미. 1. 처리량과 지연 시간 네트워크 구축시 중요한 것은 '좋은' 네트워크로 만드는 것이 중요. 좋은 네트워크 처리량 지연 시간 장애 빈도 보안 상태 많음 짧음 적음 좋음 처리량(throughput) 처리량 : 링크를 통해 전달되는 단위 시간당 데이터양을 말함. ㄴ 단위 : bps(bits per second). 초당 전송 또는 수신되는 비트의 수를 의미. ㄴ 처리량에 영향을 주는 요소 : 트래픽..
![[CS] 네트워크 기기(처리 범위, 애플리케이션, 인터넷, 데이터 링크, 물리 계층)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrJ0wj%2FbtrNb0e8so6%2FKVTJaC4qsKI3i41iNqMae0%2Fimg.jpg)
네트워크 기기 : 네트워크 구축의 기반이 되는 기기 1. 네트워크 기기의 처리 범위 - 네트워크 기기는 계층별로 처리 범위를 나눌 수 있음. - 상위(애플리케이션쪽에 가까운) 계층을 처리하는 기기는 하위 계층 처리 가능.(반대는 불가능) 각 계층별 네트워크 기기 : • 애플리케이션 계층: L7 스위치 • 인터넷 계층: 라우터, L3 스위치 • 데이터 링크 계층: 브리지, L2 스위치 • 물리 계층: NIC, 리피터, AP 2. 애플리케이션 계층을 처리하는 기기 L7 스위치 - 로드밸런서라고도 하며, 서버의 부하는 분산하는 기기. - 클라이언트로부터 오는 요청들을 뒤쪽의 여러 서버로 나누는 역할. - 시스템이 처리할 수 있는 트래픽 증가가 설치 목표. - URL, 서버, 캐시, 쿠키들을 기반으로 트래픽을 ..
![[CS] OSI 7계층, TCP/IP 4계층 모델이란?(계층 구조, PDU)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbi6IOe%2FbtrNcBZTguC%2FDJWzmfCxSJvnNiMW5KjAD1%2Fimg.jpg)
OSI 7계층 모델이란? 1계층 - 물리계층(Physical Layer) : 통신 케이블, 리피터, 허브 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다. 2계층 - 데이터 링크계층(DataLink Layer) : 스위치 브릿지나 스위치를 통해 맥주소를 가지고 물리계층에서 받은 정보를 전달 프레임(데이터 통신단위)에 주소부여(MAC - 물리적주소) 에러검출/재전송/흐름제어 3계층 - 네트워크 계층(Network Layer) : 주소부여(IP), 경로설정(Route) 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅) 신뢰성(에러제어) 및 흐름제어 기능이 전혀 없음(TCP에 있음) 4계층 - 전송 계층(Transport Layer) : TCP, UDP 패킷 생성(Assem..
네트워크 : 컴퓨터 등의 장치들이 통신기술을 이용하여 구축하는 연결망을 지칭하는 용어. - 노드(node)와 링크(link)가 서로 연결되어있거나 연결되어있지 않은 집합체를 의미. 더보기 * 노드 : 서버, 라우터, 스위치 등 네트워크 장치를 의미. * 링크 : 유선 또는 무선을 의미. 1. 네트워크의 기초 2. TCP/IP 4계층모델 3. 네트워크 기기 4. IP주소 5. HTTP
![[CS] 옵저버 패턴 (observer pattern)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2RnYS%2FbtrMDpsEZ4a%2FTsOBTkXIdgdZFkewRykgpK%2Fimg.png)
옵저버 패턴(observer pattern)이란? - 주체가 어떤 객체의 상태 변화를 관찰하다가, 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴. - 주체과 관찰 대상 객체가 합쳐진 패턴 또한 존재. - 주로 이벤트 기반 시스템에 사용하며, MVC(Model-View-Controller)패턴에도 사용됨. ㄴ 주체(모델)에서 변경사항이 생겨 update()메서드로 옵저버인 뷰에 알려주고, 이를 기반으로 컨트롤러 작동. //옵저버 패턴 예시 public interface Subject { public void registerObserver(Observer o); public void removeObserver(Observer o); public voi..
![[CS] 노출모듈 패턴, MVC 패턴, MVP 패턴, MVVM 패턴](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfxQJz%2FbtrMC8EKzBn%2FYGZJkpmDU9g7Yk5jfZhP2K%2Fimg.png)
노출 모듈 패턴(Revealing Module Pattern) 이란? - 즉시 실행 함수를 통해 private, public 같은 접근 제어자를 만드는 패턴. - 자바스크립트는 private나 public 같은 접근 제어자가 존재하지 않고 전역 범위에서 스크립트가 실행. ㄴ노출모듈 패턴을 통해 private와 public 접근 제어자를 구현. 코드 위치: ch1/12.js const pukuba = (() => { const a = 1 const b = () => 2 const public = { c : 2, d : () => 3 } return public })() console.log(pukuba) console.log(pukuba.a) // { c: 2, d: [Function: d] } // un..
![[CS] 싱글톤 패턴(singleton pattern)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fct98ir%2FbtrMC0UfUVo%2FAosOvwUH1uwaEQTczJwgs1%2Fimg.png)
싱글톤 패턴(singleton pattern)이란? - 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴. ㄴ 하나의 인스턴스를 만들어 놓고, 해당 인스턴스를 다른 여러 모듈들이 공유하며 사용. 더보기 인스턴스 : 객체지향 프로그래밍에서 어떤 클래스에 속하는 각 객체를 의미. -> 붕어빵 틀 = Class / 각각의 붕어빵 = Instance / 붕어빵 = Object 싱글톤 : 붕어빵 틀로 붕어빵을 하나 만들어서, 여럿이서 그 붕어빵을 보고 따라그리는데 사용. - 주로 데이터베이스 연결 모듈에 많이 사용. - 장점 : 인스턴스를 생성 할 때 드는 비용이 줄어듬. (하나의 인스턴스를 만들어 다른 모듈들이 그 인스턴스 사용) - 단점 : 의존성이 높아짐. 1. 자바스크립트의 싱글톤 패턴 - 리터럴 {} ..
전략 패턴(strategy pattern)이란? - 객체의 행위를 바꾸고 싶은 경우 '직접 수정하지 않고' 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴. 더보기 컨텍스트 : 프로그래밍에서 상황, 맥락, 문맥을 의미하며 개발자가 어떤 작업을 완료하는데 필요한 모든 관련정보를 말함. //전략 패턴 예시 변화되는 로봇의 이동방식, 공격방식을 캡슐화 하여 필요할 때마다 변경이 가능하게 함. // 로봇 클래스 public abstract class Robot { private String name; private MovingStrategy movingStrategy; private AttackStrategy attackStrategy; public Robo..
![[CS] 프록시 패턴(proxy pattern)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHNeT6%2FbtrMDhhfU5A%2FZpZWRGekM1JXIpPJIAqXQK%2Fimg.png)
프록시 패턴(proxy pattern)이란? - 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 객체 앞단의 인터페이스 역할을 하는 디자인 패턴 ㄴ 객체의 속성, 변환 등을 보완하며 보안, 데이터 검증, 캐싱, 로깅에 사용. 더보기 프록시 서버에서의 캐싱 : 캐시 안에 정보를 담아두고, 캐시 안에 있는 정보를 요구하는 요청에 대해 다시 저 멀리 있는 원격 서버에 요청하지 않고 캐시 안에 있는 데이터를 활용하는 것을 말함. 불필요하게 외부와 연결하지 않기 때문에 트래픽을 줄일 수 있음. //프록시 코드 예시 package com.programmers.java.proxyPattern; public interface Subject { String request(); } package com.progra..
이터레이터 패턴(iterator pattern)이란? - 이터레이터(반복자)를 사용하여 컬렉션의 요소들에 접근하는 디자인 패턴 ㄴ 여러가지 자료형의 구조와는 상관 없이 이터레이터라는 하나의 인터페이스로 순회 가능. 더보기 이터러블한 객체 : 반복 가능한 객체로 배열을 일반화한 객체 const mp = new Map() mp.set('a', 1) mp.set('b', 2) mp.set('c', 3) const st = new Set() st.add(1) st.add(2) st.add(3) for (let a of mp) console.log(a) for (let a of st) console.log(a) /** * ['a', 1] * ['b', 2] * ['c', 3] * 1 * 2 * 3 */ ㄴ다른 자..
프로그래밍 패러다임(Programming paradigm)이란? - 프로그래머에게 프로그래밍의 관점을 갖게 해주는 개발 방법론. - 선언형 - 함수형 | 명령형 - 객체지향, 절차지향 으로 나뉨 선언형과 함수형 프로그래밍 1) 선언형 프로그래밍(declarative programming) : ㄴ ‘무엇을’ 풀어내는가에 집중하는 패러다임. “프로그램은 함수로 이루어진 것이다.”라는 명제가 담겨 있는 패러다임 2) 함수형 프로그래밍(functional programming) : 선언형 패러다임의 일종 ㄴ 작은 ‘순수 함수’들을 블록처럼 쌓아 로직을 구현하고 ‘고차 함수’를 통해 재사용성을 높인 프로그래밍 패러다임 자바스크립트는 단순하고 유연한 언어이며, 함수가 일급 객체이기 때문에 객체지향 프로그래밍보다는 ..