네트워크 기초: TCP/IP 계층 모델
CS/네트워크
네트워크를 처음 공부하다 보면 계층이라는 개념이 나온다.계층 구조는 인터넷이 작동하는 핵심 원리로, 이 글에서는 네트워크의 기본 개념부터 TCP/IP 5계층 모델에 대해 다룬다. 왜 계층 구조가 필요할까?블랙박스 개념블랙박스는 기능은 알지만 작동 원리는 감춰진 시스템을 의미한다.예를 들어 `console.log()`를 사용할 때 내부에서 어떻게 화면에 출력되는지 우리는 전혀 알 필요가 없는 것처럼 말이다.특징입력이 없는 함수도 블랙박스이다 (입력이 없다는 것 자체가 입력)출력이 없는 함수도 블랙박스이다 (출력이 없다는 것 자체가 출력)블랙박스 안에는 또 다른 블랙박스들이 들어있을 수 있다.우리가 일상에서 사용하는 운영체제도 하나의 거대한 블랙박스로 볼 수있다.운영체제라는 블랙박스 안에 마우스 드라이버, ..
cat 명령어와 바이너리 파일: ASCII text vs data 파일의 차이
CS/운영체제
리눅스에서 파일을 읽기 위해 cat명령어를 사용하다 보면,어떤 파일은 정상적으로 읽히지만 어떤 파일은 터미널 화면이 깨지면서 이상한 문자들이 출력되는 경우가 있다.이런 현상은 구체적으로 왜 발생하는 걸까? 파일 타입 확인하기: file 명령어먼저 file 명령어를 통해 파일의 타입을 확인해보자.file 파일명위 이미지에서의 결과는 data로 나온다. 이 파일은 일반 텍스트 파일이 아닌 바이너리 파일이다.여러 파일 한 번에 확인하기디렉토리 내 모든 파일의 타입을 한 번에 확인하려면 와일드카드를 사용하면 된다.file ./*이미지 속 결과를 보면, 대부분은 data로 표시되지만 -file07만 ASCII text로 표시된다.이 ASCII text파일은 data으로 정상적으로 읽을 수 있다. cat이 바이너리..
공백이 포함된 파일명 여는 방법
CS/운영체제
리눅스에서 파일명을 확인했는데 공백이 포함되어 있다면, 파일을 읽으려 할 때 예상과 다르게 동작하는 경우가 있다.이는 셸이 공백을 해석하는 방식 때문이다. 공백이 포함된 파일명이 인식되지 않는 이유리눅스 셸은 공백을 인자를 구분하는 기준으로 사용한다.예를 들어 다음 명령어를 실행하면cat --spaces in this filename--셸은 이를 하나의 파일명이 아니라 아래와 같이 여러 개의 인자로 분리한다.--spacesinthisfilename-- 공백이 포함된 파일명 여는 방법1. 백슬래시로 공백 이스케이프 하기cat --spaces\ in\ this\ filename--\는 바로 뒤 문자를 특수 의미가 아닌 일반 문자로 처리하도록 만든다.공백이 인자 구분자가 아니라 파일명의 일부가 된다.2. 따옴..