[면접을 위한 CS 전공지식 노트] CHAPTER 2 네트워크 - SECTION 4 IP 주소 / SECTION 5 HTTP
·
💻
SECTION 4 IP 주소1. ARP(Address Resolution Protocol)IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜IP 주소에서 ARP ~> MAC 주소 찾아 MAC 주소를 기반으로 통신가상 주소인 IP 주소 -> 실제 주소인 MAC 주소로 변환RARP: 실제 주소 MAC 주소 -> 가상 주소인 IP 주소*브로드캐스트: 송신 호스트가 전송한 데이터 -> 네트워크에 연결된 모든 호스트에 전송/ 유니캐스트: 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 데이터 전송2. 홉바이홉(hop by hop) 통신IP 주소 ~> 통신하는 과정홉(hop): 건너뛰는 모습통신망에서 각 패킷이 여러 개의 라우터를 건너가는 모습을 비유적으로 표현서브 네트워크 ..
[면접을 위한 CS 전공지식 노트] CHAPTER 2 네트워크 - SECTION 1 네트워크의 기초 / SECTION 2 TCP/IP 4계층 모델 / SECTION 3 네트워크 기기
·
💻
SECTION 1 네트워크의 기초네트워크: 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있으며 리소스를 공유하는 집합노드: 서버, 라우터, 스위치 등 네트워크 장치링크: 유선 or 무선 1. 처리량과 지연 시간좋은 네트워크: 처리량 ↑ 처리, 지연 시간 ↓, 장애 빈도 ↓, 좋은 보안 갖춘 네트워크처리량(throughput)링크 ~> 전달되는 단위 시간당 데이터양단위: bps(bits per second) - 초당 전송 or 수신되는 비트 수사용자들 ↑ 접속 -> 트래픽 ↑/ 네트워크 장치 간의 대역폭/ 네트워크 중간에 발생하는 에러/ 장치의 하드웨어 스펙 영향 받음대역폭: 주어진 시간 동안 네트워크 연결 ~> 흐를 수 있는 최대 비트지연 시간(latency)요청이 처리되는 시간어떤..
[면접을 위한 CS 전공지식 노트] CHAPTER 1 디자인 패턴과 프로그래밍 패러다임
·
💻
공통으로 사용될 수 있는 특정한 기능들을 모듈화라이브러리: 폴더명, 파일명 등에 대한 규칙 X, 프레임워크에 비해 자유로움ex. 무언가 자를 때 '도구'인 '가위' 사용해서 '내가' 직접 컨트롤프레임워크: 폴더명, 파일명 등에 대한 규칙 O, 라이브러리에 비해 엄격ex. 다른 곳으로 이동할 때 '도구'인 비행기를 타고 이동 -> '비행기'가 컨트롤, 나는 앉아 있어야 함 SECTION 1 디자인 패턴프로그램을 설계할 때 발생했던 문제점-> 객체 간의 상호 관계 등 이용해 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것 1. 싱글톤 패턴(singleton pattern)하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴(하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있음)데이터베이스..
Redis
·
💻/데이터베이스
Redis 동시성 처리동시성 이슈데이터 불일치여러 스레드가 동시에 동일한 데이터를 수정데드락 (Deadlock)두 개 이상의 스레드가 서로의 자원을 기다리다가 멈추는 상태라이브락 (Livelock)스레드가 락을 반복적으로 획득하려다 아무런 진전이 없는 상태경쟁 조건동시에 자원에 접근하여 예상하지 못한 결과가 발생하는 상태=> 동시성 제어(: 멀티스레드 환경에서 일관된 데이터 처리를 보장하는 방법) 필요동시성 제어 기법락(Lock)한 스레드가 자원을 사용하는 동안 다른 스레드가 해당 자원에 접근하지 못하도록 막는 기법Mutex (Mutual Exclusion): 가장 기본적인 락/ 하나의 스레드만 자원에 접근할 수 있도록 보장Reentrant Lock: 동일한 스레드가 여러 번 락을 획득할 수 있는 락세마..
Memcached vs. Redis
·
💻/데이터베이스
Memcached(멤캐시드)사용이 간편한 고성능 인 메모리 데이터 스토어 장점1밀리 초 미만의 응답 시간서버의 주 메모리에 모든 데이터를 유지PostgreSQL, Cassandra 및 MongoDB와 같은 데이터베이스: 데이터 대부분을 디스크 또는 SSD에 저장인 메모리 데이터 스토어: 반복해서 디스크를 왕복할 필요 X → 더 ↑ 작업 처리 + 더 빠른 응답 지원단순성 및 사용 편의성간단하고 일반적이 되도록 설계되었으므로 애플리케이션 개발에 사용하기에 쉬우면서 강력다수의 오픈 소스 클라이언트를 사용지원되는 언어: Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, Go 등확장성분산 및 다중 스레드 아키텍처를 사용하면 손쉽게 확장여러 노드 간에 데이터를 ..
Kubernetes/ Helm
·
☁️
Kubernetes(쿠버네티스)구글이 컨테이너 운영을 위해 출시한 오픈소스 라이브러리컨테이너 오케스트레이션 플랫폼 여러 IT 자동화 태스크 또는 프로세스를 조정하여 실행하는 것다수의 Docker 컨테이너 관리, 자동으로 배포 및 스케일링, 장애 복구 기능 제공여러 대의 서버(노드)에서 컨테이너 → 클러스터로 묶어 애플리케이션 분산, 필요할 때마다 리소스 할당 → 자동으로 확장 or 축소⇒ Docker: 컨테이너 하나하나 관리/ Kubernetes: 그 컨테이너들 효율적으로 배치하고 관리순서코드 푸시 → CI/CD 파이프라인 트리거(Github Actions)Docker 이미지 빌드 → 이미지 레지스트리에 업로드(Docekr Hub, ECR 등)Kubernetes 클러스터에 배포(kubectl, Helm ..
kimmeoww
빙글빙글 돌아가는 Debug 하루