일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- CORS
- autosize
- webpack
- 리터럴 타입
- RTK Query
- tailwind
- 타입 좁히기
- CI/CD
- 결정 알고리즘
- 반공변성
- 인터섹션
- 투포인터
- app router
- dfs
- 호이스팅
- SSR
- Cypress
- 공변성
- useAppDispatch
- async/await
- 이분 검색
- 무한 스크롤
- recoil
- 태그된 유니온
- ESlint
- React
- TS
- map
- Jest
- Promise
- Today
- Total
목록CS (25)
짧은코딩
ARP(Address Resolution Protocol) 컴퓨터는 IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC를 기반으로 통신한다. 즉 ARP는 IP 주소로부터 MAC 주소를 구하는IP와 MAC 주소의 다리 역할을 하는 프로토콜이다. ARP: 가상 주소인 IP -> 실제 주소인 MAC로 변환 RARP: 실제 주소인 MAC -> 가상 주소인 IP 주소로 변환 -ARP의 주소 찾기 ARP Request 브로드캐스트를 보냄 -> 원하는 IP 주소를 가진 장치를 찾음 -> 찾아진 장치에서 APR reply 유니캐스트를 이용해 MAC 주소를 반환 -> 원하는 MAC 주소 얻음 브로드캐스트: 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식 유니캐스트: 고유 주소로 식별된 하..
트랜잭션 트랜잭션은 DB에서 하나의 논리적 기능을 수행하기 위한 작업 단위이다. 즉 DB에 접근하는 방법은 쿼리라서 이 여러 개의 쿼리를 하나로 묶는 단위이다. ACID 특징이 있고 원자성, 일관성, 독립성, 지속성을 의미한다. 원자성(atomicity) 원자성은 "all or nothing"이다. 즉 모두 수행되었거나 되지 않았거나이다. 따라서 트랜잭션을 커밋했는데 문제가 발생하면 롤백을 해 아무것도 수행되지 않는다. -예시 강아지 잔고: 500만원, 고양이 잔고 0원, 이 때 강아지가 고양이에게 300만원을 보낸다. 강아지 잔고 조회 -> 강아지 잔고 -300만원 -> 고양이 잔고 +300만원 이 경우에 작업을 취소하면 다시 강아지는 500만원, 고양이는 0원을 가져야 한다. 그렇기에 모든 작업을 실..
프로세스 프로세스: 컴퓨터에서 실행되고 있는 프로그램, CPU 스케줄링의 대상이 되는 작업(task) 스레드: 프로세스 내 작업의 흐름 프로그램이 메모리에 올라감 -> 인스턴스화 -> OS 스케줄러에 따라 CPU가 프로세스 실행 프로세스와 컴파일 과정 프로세스: 프로그램으로부터 인스턴스화된 것 ex) exe 확장자를 가진 프로그램을 실행하면 프로세스가 된다. 또한 프로그램은 컴파일러가 컴파일하여 컴퓨터가 이해하는 기계어로 번역되는 파일이 되는 것을 의미한다. C 언어 기반의 프로그램은 컴파일을 거쳐야 하지만 파이썬 같은 인터프리터 언어는 컴파일 과정 필요 없이 한줄씩 읽어서 실행한다. -전처리 코드에서 주석을 제거하고 #include 같은 헤더 파일을 병합해 매크로를 치환한다. -컴파일러 오류 처리, 코..
네트워크 기기의 처리 범위 네트워크 기기는 계층별로 처리 범위가 다르다. 상위 계층의 기기는 하위 계층을 처리할 수 있지만 반대로는 불가능하다. 애플리케이션 계층: L7 스위치 인터넷 계층: 라우터, L3 스위치 데이터 링크 계층: 브리지, L2 스위치 물리 계층: NIC, 리피터, AP 스위치: 여러 장비를 연결하고 데이터 통신을 중재해 목적지 포트로만 전기 신호를 보내는 통신 네트워크 장비이다. 애플리케이션 계층을 처리하는 기기 L7 스위치 L7 스위치는 로드밸런서라고 불리며 서버 부하를 분산한다. 클라이언트로 오는 요청들을 여러 서버로 나누고 시스템이 처리할 수 있는 트래픽 증가를 목표로 한다. URL, 서버, 캐시, 쿠키 기반으로 트래픽을 분산한다. 바이러스, 불필요한 외부 데이터를 걸러 필터링도..
ERD(Entity Relationship Diagram)는 DB 구축의 뼈대이며 릴레이션 간의 관계를 정의한 것이다. 서비스를 구축할 때 ERD를 고려하지 않으면 큰일날 것이다. ERD의 중요성 ERD는 시스템 요구 사항을 기반으로 작성된다. 그리고 이를 기반으로 DB 구축한다. DB 구축 후에도 디버깅, 리팩토링 등에 유용하다. 하지만 이런 ERD도 정형 데이터는 구성할 수 있지만 비정형 데이터는 표현할 수 없다. 예시 -승원 영업부서의 ERD 요구 사항 1. 영업 사원은 0~n명의 고객 관리 2. 고객은 0~n개의 주문 넣을 수 있다. 3. 주문에는 1~n개의 상품이 들어간다. 정규화 과정 정규화 과정은 릴레이션 간의 잘못된 종속 관계로 인해서 DB에 이상 현상이 일어나는 것을 막아준다. 그 뿐만 ..
가상 메모리(virtual memory) 가상 메모리는 컴퓨터가 실제로 사용 가능한 메모리 자원을 추상화해서 사용자들에게 매우 큰 메모리로 보이게 하는 메모리 관리 기법이다. -가상 주소(logical address) 가상적으로 주어진 주소이며 가상 주소는 메모리 관리 장치(MMU)에 의해 실제 주소로 변환된다. 따라서 실제 주소를 의식하지 않고 프로그램 구축이 가능하다. 가상 메모리에는 가상 주소와 실제 주소가 매핑되어 있어 프로세스 주소 정보가 들어있는 페이지 테이블로 관리된다. 속도 향상을 위해 TLB를 사용한다. TLB: 메모리와 CPU 사이에 있는 주소 변환을 위한 캐시이다. 페이지 테이블에 있는 리스트를 보관해서 CPU가 페이지 테이블까지 가지 않고 TLB에서 찾아 속도가 향상된다. -실제 주..
계층 간 데이터 송수신 과정 HTTP를 통해 웹 서버에 요청을 하면 일어나는 과정을 그림으로 표현한 것이다. -과정 1. 애플리케이션 계층에서 전송 계층으로 요청(request) 값들이 캡슐화 과정을 거쳐 전달 2. 링크 계층을 통해 서버와 통신 3. 해당 서버의 링크 계층으로부터 애플리케이션까지 비캡슐화 과정을 거쳐서 데이터 전달 -캡슐화 과정 캡슐화 과정은 상위 계층의 헤더와 데이터를 하위 계층 데이터 부분에 포함하고 해당 계층의 헤더를 삽입하는 과정이다. 애플리케이션 계층 -> 전송 계층: 데이터가 전달되면서 세그먼트 혹은 데이터그램화 되어 TCP(L4) 헤더가 붙는다. 전송 계층 -> 인터넷 계층: IP(L3) 헤더가 붙여져 패킷화된다. 인터넷 계층 -> 링크 계층: 프레임 헤더, 프레임 트레일러..
Internert Protocol Suite Internert Protocol Suite는 프로토콜의 집합이다. 이를 TCP/IP 4계층 모델이나 OSI 7계층 모델로 설명한다. TCP/IP(Transmission Control Protocol/Internet Protocol) 4계층은 프로토콜의 네트워킹 범위에 따라 네 개의 추상화 계층으로 구성된다. 계층 구조 위에서 설명했듯이 TCP/IP 4계층 모델과 OSI 7계층 모델이 있다. OSI 7계층은 애플리케이션을 3개로 쪼개고, 네트워크 계층을 2개로 쪼갠 것이 다르다. 그리고 인터넷 계층을 네트워크 계층이라고 부르는 것도 다르다. 이 계층들은 특정 계층이 변경되어도 다른 계층에 영향을 받지 않는다. 이 사진은 각 계층을 대표하는 스택을 정리한 그림이..
패킷 교환 방식 -데이터 패킷 교환 방식 데이터를 전송하기 전 논리적 연결이 되어 있지 않고 패킷이 독립적으로 간다. 패킷을 수신한 라우터는 최적의 경로로 패킷을 전송하는데 분할된 여러 패킷은 서로 다른 경로로 전송될 수도 있다.(비연결 지향형) => 이 말은 송신 측에서 전송한 순서와 도착한 순서가 다를 수도 있다. 그리고 경로 설정을 여러 번 할 수 있다. -가상회선 패킷 교환 방식 데이터를 전송하기 전 논리적 연결이 설정된다.(연결 지향형) 각 패킷에 가상회선 식별 번호(VIC)가 포함되고 패킷이 전송한 순서대로 도착한다. 가상회선 방식은 경로 설정을 한 번만 한다. TCP(Transmission Control Protocol) TCP는 인터넷상에서 데이터를 메시지 형태로 보내기 위해 IP와 함께 ..
관계 DB에는 여러 테이블이 있고 테이블끼리 서로 관계가 정의되어 있고 관계화살표로 나타낼 수 있다. -1 : 1 관계 예를 들면 유저당 이메일은 한 개씩 있다. 이런 경우 1 : 1 관계이다. 1 : 1 관계는 테이블을 2개로 나눠서 테이블 구조 이해가 쉽다. -1 : N 관계 예를 들면 쇼핑몰에서 유저가 여러 개의 상품을 장바구니에 넣을 수 있다. 이런 경우 1 : N 관계가 된다. 하나도 넣지 않는 0개의 경우도 있으니 이런 경우에는 화살표를 통해 표현해야 한다. 한 개체가 다른 여러 개체를 포함하는 관계이다. -N : M 관계 예를 들면 학생과 강의의 관계를 보면 학생은 여러 강의를 들을 수 있고 강의도 여러 명의 학생이 포함될 수 있다. 이런 경우 N : M이 된다. N : M 관계는 테이블을 ..