ssung_끄적끄적/CS지식_끄적 10

HTTP

HTTP/1.0 - HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계 - 이는 RTT의 증가를 가져옴 (RTT : 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간) - 서버로부터 파일을 가져올 때마다 TCP의 3-way handshake를 계속해서 열어야 하기 때문에 RTT 증가의 단점 RTT의 증가를 해결하기 위한 방법 - 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩을 사용 이미지 스플리팅 - 이미지가 합쳐 있는 하나의 이미지를 다운받고, 이를 기반으로 background-image의 position을 이용하여 이미지 표기하는 방법 코드 압축 - 코드를 압축하여 개행 문자, 빈칸을 없애서 코드의 크기를 최소화하는 방법 이미지 Ba..

IP주소

ARP (Address Resolution Protocol) - IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜 - ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환 - 이와 반대로, RARP를 통해 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환 홉바이홉 통신 (hop by hop) - IP 주소를 통해 통신하는 과정 (hop = 영어 뜻 자체로 건너뛰는 모습을 의미) - 통시남ㅇ에서 각 패킷이 여러 개의 라우터를 건너가는 모습을 비유적으로 표현한 것 - 각각의 라우터에 있는 라우팅 테이블의 IP를 기반으로 패킷을 전달하고 다시 전달해 나감 - 통신 장치에 있는 '라우팅 테이블'의 IP를 통해 시작 주소부터 시작하여 다음 IP로 계속해..

네트워크 기기

01. 네트워크 기기의 처리 범위 - 애플리케이션 계층 : L7 스위치 - 인터넷 계층 : 라우터, L3 스위치 - 데이터 링크 계층 : 브리지, L2 스위치 - 물리 계층 : NIC, 리피터, AP 02. 애플리케이션 계층을 처리하는 기기 L7 스위치 (스위치란? - 여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비) 로드밸런서라고도 하며, 서버의 부하를 분산하는 기기 클라이언트로부터 오는 요청들을 뒤쪽의 여러 서버로 나누는 역할 시스템이 처리를 할 수 있는 트래픽 증가를 목표로 함 (URL, 서버, 캐시 쿠키들을 기반으로 트래픽 분산) 바이러스, 불필요한 외부 데이터 등을 걸러내는 필터링 기능 응용 프로그램 수준의 트래픽 모니..

TCP/IP 4계층 모델

- 인터넷 프로토콜 스위트 (internet protocol suite)는 인터넷에서 컴퓨터들이 정보를 주고받는데 쓰이는 프로토콜의 집합 - 이를 TCP/IP 4계층 모델 또는 OSI 7계층 모델로 불림 계층 구조 - TCP/IP 계층은 네개의 계층을 가지고, OSI 7계층과 많이 비교 TCP/IP 계층 더보기 - 애플리케이션 계층 - 전송 계층 - 인터넷 계층 - 링크 계층 OSI 7계층 더보기 - 애플리케이션 계층 - 프레젠테이션 계층 - 세션 계층 - 전송 계층 - 네트워크 계층 - 데이터 링크 계층 - 물리 계층 - TCP/IP 계층과 달리 OSI 계층은 애플리케이션 계층을 세 개로 쪼개고 링크 계층을 데이터 링크 계층, 물리 계층으로 나눠서 표현한 것이 다르며, 인터넷 계층을 네트워크 계층으로 ..

네트워크 기초

네트워크란? 노드 (node)와 링크 (link)가 서로 연결되어 있거나 연결되어 있지 않은 집합체 노드란? - 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미 처리량과 지연시간 - 네트워크 구축 시 '좋은' 네트워크를 만드는 것이 중요! 좋은 네트워크 - 많은 처리량을 처리할 수 있고 지연 시간이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크 처리량 (throughput) - 링크를 통해 전달되는 단위 시간당의 데이터량 (단위시간 = bps) - 처리량은 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙에 영향을 받음 (대역폭 - 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최..

프로그래밍 패러다임 (Programming paradigm)

프로그래밍 패러다임이란? - 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론 - 그로그래밍 패러다임은 크게 선언형, 명령형으로 나누며, 선언형은 함수형이라는 하위 집합을 갖고, 명령형은 객체지향, 절차지향으로 나뉜다. 선언형 프로그래밍과 함수형 프로그래밍 선언형 프로그래밍 (declarative programming) '무엇을' 풀어내는가에 집중하는 패러다임 '프로그램은 함수로 이루어진 것이다' 라는 명제가 담겨있는 패러다임 함수형 패러다임 (functional programming)은 선언형 패러다임의 일종 함수형 프로그래밍 '순수 함수'를 블록처럼 쌓아 로직을 구현하고 '고차 함수'를 통해 재사용성을 높인 프로그래밍 패러다임 순수 함수 - 출력이 입력에만 의존하는 것을 의미 고..

이터레이터 패턴, 노출모듈 패턴, MVC 패턴, MVP 패턴, MVVM 패턴

이터레이터 (Iterator pattern) - 이터레이터 (iterator)를 사용하여 컬렉션 (collection)의 요소들에 접근하는 패턴 - 순회할 수 있는 여러 가지 자료형의 구조와는 상관없이 이터레이터 하나의 인터페이스로 순회 가능 노출모듈 패턴 (revealing module pattern) - 노출모듈 패턴은 즉시 실행 함수를 통해 private, public 같은 접근 제어자를 만드는 패턴 - 자바와 달리 자바스크립트는 private, public 같은 접근 제어자가 존재하지 않고 전역 범위에서 스크립트가 실행 - 따라서, 노출모듈 패턴을 위와 같은 접근 제어자를 구현 (Ex - CJS (CommonJS) 모듈) MVC 패턴 (Model, View, Controller) - 모델 (Mod..

전략패턴, 옵저버 패턴, 프록시 패턴 (프로시 서버)

전략 패턴 (Strategy pattern) - 정책 패턴 (Policy pattern)이라고 부르기도 함 - 객체의 행위를 바꾸고 싶은 경우 직접 수정하는 것이 아닌, '전략' 이라고 부르는 '캡슐화한 알고리즘프'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만든 패턴 (컨텍스트 - 상황, 맥락, 문맥을 의미하여 개발자가 어떠한 작업을 완료하는데 필요한 모든 관련 정보를 말함) - Ex) 결제를 할 때, 결제 방식에 대한 '전략'을 카드, 현금, 입금 등의 다양한 방법으로 결제하는 것과 비슷 옵저버 패턴 (Observer pattern) - 주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 패턴..

싱글톤 패턴, 팩토리 패턴

싱글톤 패턴 (Singleton pattern) - 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 - DB 연결 모듈에 많이 사용 - 인스턴스를 하나만 만들어 놓고 이 인스턴스를 다른 모듈이 공유하며 사용하여 인스턴스를 생성할 때 드는 비용 감소 - 하지만, 의존성이 높아진다는 단점이 발생 - 싱글톤 패턴은 모듈간의 결합을 강하게 만들 수 있음 - 이때, 의존성 주입을 통해 모듈간의 결합을 조금 느슨하게 만들어 해결 가능 (이를 '디커플링 된다' 라고 부르기도 함) - 싱글톤 패턴의 단점 TDD (Test Driven Development)의 방해요소 - TDD는 단위 테스트를 주로 하는데, 단위 테스트는 독립적이어야 하고, 테스트를 어떤 순서로든 실행할 수 있어야 함 - 하지만, 하나의 인스턴스를..

728x90