분류 전체보기 63

네트워크 데이터 단위 및 네트워크 인터페이스

파일 입출력 (File I/O) 에서는, data의 단위가 stream data 이다. Stream data : 시작은 정해져 있으나, 끝은 정해지지 않아 연속성을 가지는 데이터 / 패킷 / 비트 등의 흐름을 의미한다 TCP: Segment IP: Packet Driver/NIC: Frame ✅ 네트워크 데이터 전송 흐름User mode 수준(= Socket 수준) : Application Process가 Socket(Device File)에 "Stream Data"를 write한다Kernel 수준 : Transport 계층에서 Stream Data에 대해 MSS(Maximum Segment Size)를 기준으로 잘라 "Segment"로 만든다. (이 행위를 "Segmentation"이라 한다)Kerne..

Port 번호

운영체제에서 어떤 프로그램을 실행시키면 그 순간 process가 존재. OS 구성요소 내부에는 TCP/IP, 디바이스 Driver, NIC 존재 TCP/IP는 커널 수준에서 구현되어 있는데, user mode application이 접근할 수 있도록 인터페이스가 제공됨. 이 인터페이스의 본질은 File이나, 프로토콜을 추상화했기 때문에 File이라 하지 않고 Socket이라 한다. 소켓을 생성할 때 TCP 소켓인 경우에 소켓에 할당되는 정보 중 하나가 바로 Port 번호. 이미 사용 중인 포트는 중복 사용될 수 없으므로 포트 번호를 지정할 때는 해당 포트가 사용 중인지 확인해야 함. cmd창에 netstat -ano 명령어를 입력해 해당하는 포트에 어떤 프로그램이 할당되어 있는지 확인할 수 있다. -a ..

카테고리 없음 2025.02.13

IP 주소

IP 주소 -> Host에 대한 식별자 IPv4 -> 32bit 2^32 = 전체 경우의 수 대략 43억 (unsigned int) IPv6 -> 128bit IP주소는 networkID와 hostId로 나뉨 ex) 192.168.60.14 192.168.60 -> networkID (24 bit) 14 -> hostId (8 bit) "netmask" ip주소 = networkId + hostId (32 bit) 192.168.60.14 AND 255.255.255.0 =  11000000 = 192.168.69.0 (networkId) 넷마스크 표기 192.168.69.0/24 -> 서브넷 서브넷 마스크 = 255.255.255.0 서브네팅 서브넷팅은 IP 주소 낭비를 방지하기 위해 원본 네트워크를 ..

네트워크 기초

Socket이란, (TCP/IP) 소켓이라고 했을 때, Kernel에서 작동하는 TCP, IP를 User Application에서 어떻게 제어 할지를 추상화한 파일 User  OSI L7~5, Application, Process --------------------------------- Kernel OSI L4~3, Transport, Network, TCP, IP  식별자: TCP - Port 번호 IP - IP 주소 --------------------------------- H/W OSI L2~1, Access, NIC 식별자:  MAC 주소MAC 주소: NIC (Network Interface Card) (유/무선 LAN카드) 에 대한 식별자 NIC이 어떤 역할을 하는지? 컴퓨터가 네트워크와 ..

2. OS Overview

운영체제의 역할User Interface (편리성)- CUI- GUI- EUCI Resource management (효율성)- HW resource (processor, memory, I/O devices, etc)- SW resource (file, application, message, signal, etc) Process and Thread management System management (시스템 보호)컴퓨터 시스템의 구성 Kernel사용자가 kernel을 직접 접근하면, OS가 하드웨어를 제어하는 데 문제가 생길 수 있음. 따라서 직접 요청하는 것이 아닌, 필요한 기능이 있다면 OS(kernel)에 요청을 하는 통로가 System Call Interface(보통 함수 형태) System ca..

Computer System Overview

OS란 무엇인가?컴퓨터 시스템 자원(HW)를 효율적으로 관리해서 사용자/응용 프로그램에게 서비스를 제공하는 소프트웨어. 컴퓨터 하드웨어 종류프로세서CPU그래픽카드 (GPU) 연산처리를 위한 하드웨어 메모리주 기억장치 (SSD, HDD)보조 기억장치 (RAM, DRAM) 저장을 위한 하드웨어 주변장치키보드/마우스모니터, 프린터 그 외 장치 프로세서중앙처리장치 (컴퓨터 두뇌)- 연산 수행- 컴퓨터의 모든 장치의 동작 제어 CPU- 레지스터, 연산장치 (데이터 부분)- 제어장치 (제어 부분) 레지스터: 프로세서 내부에 있는 메모리- 프로세서가 사용할 데이터 저장- 컴퓨터에서 가장 빠른 메모 레지스터의 종류용도에 따른 분류전용 레지스터, 범용 레지스터 변경 가능 여부에 따른 분류사용자 가시 레지스터, 사용자 불..

Git 이미 원격 저장소에 push한 커밋 메세지 수정하기

1. git log 명령어를 통해 수정하고자 하는 커밋의 전 커밋 commit id를 복사한다2.  git rebase -i [commit id] 명령어를 통해 커밋 수정 작업을 실시한다2.1 편집기 화면에서 변경하고자 하는 commit을 edit에서 pick으로 변경한다3. git commit --amend 명령어를 통해 커밋 메세지를 수정한다4. git rebase --continue 명령어를 통해 종료 이 후의 commit id 가 없어지고 새로운 commit id 가 생겼으므로 upstream repo 와 commit history 가 차이가 있으므로 강제로 push가 필요함5. git push origin [branch] -f 를 통해 강제 push

Programming/Git 2024.10.27

정규표현식 (Regular Expression)

문자 집합패턴의미a-zA-Z알파벳ㄱ-ㅎ가-힣한글0-9숫자.모든 문자열 (줄바꿈 제외)\d숫자\D숫자 제외\w밑줄 문자 포함 영,숫자 = [a-ZA-Z0-9_]\W\w 제외\sspace 공백\Sspace 공백 제외\특수문자특수문자 (메타문자 \ ^ $ . | [ ] ( ) * + ? { })\b문자 경계 (사용 예제 참고)\B\b 제외\b 사용 예제수량자수량자의미a{n,m}a가 n번이상 m번이하 반복a{n,}a가 n번 이상a{n}a가 n번a?a가 없거나 1개 = a{0,1}a+a가 1번 이상 반복 = a{1,}a*a가 0번 이상 반복 = a{0, }a*?a가 0개 = a{0}a+?a가 1개 = a{1}그룹기호의미()감싼 문자열 그룹화, 캡쳐링(?: 패턴)그룹화, 캡쳐링 x(?=)앞쪽 일치(?!)!앞쪽 일치..