[면접을 위한 CS 전공지식 노트] CHAPTER 3 운영체제 - SECTION 1 운영체제와 컴퓨터 / SECTION 2 메모리
·
Computer Science
운영체제(OS; Operating System): 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스펌웨어(firmware): 운영체제와 유사하지만 소프트웨어를 추가로 설치 X1. 운영체제의 역할과 구조역할CPU 스케줄링과 프로세스 관리: CPU 소유권을 어떤 프로세스에 할당할지, 프로세스 생성/삭제, 자원 할당/반환 관리메모리 관리: 한정된 메모리를 어떤 프로세스에 얼마큼 할당해야 하는지 관리디스크 파일 관리: 디스크 파일 어떠한 방법으로 보관할지 관리I/O 디바이스 관리: I/O 디바이스들인 마우스, 키보드, 컴퓨터 간의 데이터를 주고받는 것 관리 구조시스템콜: 운영체제가 커널에 접근하기 위한 인터페이스유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수 호출할 때 사용I/O 요청 -> 유저 프로그램..
[면접을 위한 CS 전공지식 노트] CHAPTER 2 네트워크 - SECTION 4 IP 주소 / SECTION 5 HTTP
·
Computer Science
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 네트워크 기기
·
Computer Science
SECTION 1 네트워크의 기초네트워크: 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있으며 리소스를 공유하는 집합노드: 서버, 라우터, 스위치 등 네트워크 장치링크: 유선 or 무선 1. 처리량과 지연 시간좋은 네트워크: 처리량 ↑ 처리, 지연 시간 ↓, 장애 빈도 ↓, 좋은 보안 갖춘 네트워크처리량(throughput)링크 ~> 전달되는 단위 시간당 데이터양단위: bps(bits per second) - 초당 전송 or 수신되는 비트 수사용자들 ↑ 접속 -> 트래픽 ↑/ 네트워크 장치 간의 대역폭/ 네트워크 중간에 발생하는 에러/ 장치의 하드웨어 스펙 영향 받음대역폭: 주어진 시간 동안 네트워크 연결 ~> 흐를 수 있는 최대 비트지연 시간(latency)요청이 처리되는 시간어떤..
[면접을 위한 CS 전공지식 노트] CHAPTER 1 디자인 패턴과 프로그래밍 패러다임
·
Computer Science
공통으로 사용될 수 있는 특정한 기능들을 모듈화라이브러리: 폴더명, 파일명 등에 대한 규칙 X, 프레임워크에 비해 자유로움ex. 무언가 자를 때 '도구'인 '가위' 사용해서 '내가' 직접 컨트롤프레임워크: 폴더명, 파일명 등에 대한 규칙 O, 라이브러리에 비해 엄격ex. 다른 곳으로 이동할 때 '도구'인 비행기를 타고 이동 -> '비행기'가 컨트롤, 나는 앉아 있어야 함 SECTION 1 디자인 패턴프로그램을 설계할 때 발생했던 문제점-> 객체 간의 상호 관계 등 이용해 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것 1. 싱글톤 패턴(singleton pattern)하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴(하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있음)데이터베이스..
Redis
·
Computer Science/데이터베이스
Redis 동시성 처리동시성 이슈데이터 불일치여러 스레드가 동시에 동일한 데이터를 수정데드락 (Deadlock)두 개 이상의 스레드가 서로의 자원을 기다리다가 멈추는 상태라이브락 (Livelock)스레드가 락을 반복적으로 획득하려다 아무런 진전이 없는 상태경쟁 조건동시에 자원에 접근하여 예상하지 못한 결과가 발생하는 상태=> 동시성 제어(: 멀티스레드 환경에서 일관된 데이터 처리를 보장하는 방법) 필요동시성 제어 기법락(Lock)한 스레드가 자원을 사용하는 동안 다른 스레드가 해당 자원에 접근하지 못하도록 막는 기법Mutex (Mutual Exclusion): 가장 기본적인 락/ 하나의 스레드만 자원에 접근할 수 있도록 보장Reentrant Lock: 동일한 스레드가 여러 번 락을 획득할 수 있는 락세마..
Memcached vs. Redis
·
Computer Science/데이터베이스
Memcached(멤캐시드)사용이 간편한 고성능 인 메모리 데이터 스토어 장점1밀리 초 미만의 응답 시간서버의 주 메모리에 모든 데이터를 유지PostgreSQL, Cassandra 및 MongoDB와 같은 데이터베이스: 데이터 대부분을 디스크 또는 SSD에 저장인 메모리 데이터 스토어: 반복해서 디스크를 왕복할 필요 X → 더 ↑ 작업 처리 + 더 빠른 응답 지원단순성 및 사용 편의성간단하고 일반적이 되도록 설계되었으므로 애플리케이션 개발에 사용하기에 쉬우면서 강력다수의 오픈 소스 클라이언트를 사용지원되는 언어: Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, Go 등확장성분산 및 다중 스레드 아키텍처를 사용하면 손쉽게 확장여러 노드 간에 데이터를 ..
kimmeoww
빙글빙글 돌아가는 Debug 하루