
- 라이브러리는 하나 이상의 프로그램에서 공통으로 사용할 수 있는 함수들을 모듈로 만들어 놓은 집합을 말한다. 라이브러리를 사용하면 프로그램을 만들 때 기존에 만들어진 기능을 활용하여 프로그램 제작 시간과 노력을 줄일 수 있다. 라이브러리에 대해 더 알고 싶다면 p289
- 해커는 컴퓨터와 프로그래밍에 대한 전문 지식을 가진 사람이고, 크래커는 이를 범죄에 활용하는 사람이다. 보안 업계에 종사하는 해커를 화이트 해커, 크래커는 블랙 해커라는 표현을 쓴다.
- 프로그램과 소프트웨어 둘 중에는 소프트웨어가 더 넓은 개념이다. 프로그램은 최종 결과물 뿐만 아니라 소스 코드도 포함하는데, 소프트웨어와 크게 다른 점은 순서가 있다는 것이다. '행사', '훈련'이라는 단어에 '프로그램'이라는 단어를 붙이면 '행사 프로그램', '훈련 프로그램'이 되어 '순서'의 의미가 붙는 것과 같다. 여기서 말하는 프로그램은 '실행 순서대로 작성한 명령어 모음'이다.
대표적인 컴파일 언어 | 대표적인 인터프리터 언어 |
C, C++, C#, 자바, 타입스크립트, 코틀린, 스위프트, 스칼라, Go, 리스트 |
자바스크립트, 파이썬, 루비, PHP, 펄, R |
- 코딩 컨벤션은 변수의 이름을 짓는 법, 코드 줄을 맞추는 법과 같이 팀 또는 회사 내에서 정한 코딩 스타일 규약이다. 같은 팀 내에서 개발자마다 코드를 작성하는 스타일이 다르면 협업 시 다른 사람의 코드를 이해하고 코드의 일관성을 유지하는 데 어려움이 발생한다. 이를 방지하기 위해 규칙을 정하는 것을 코딩 컨벤션이라고 한다.
- 개발자 사이에서 서버는 '컴퓨터에게 서버 역할을 시키는 소프트웨어'를 지칭하는 단어로 널리 쓰인다. 예를 들어서 아파치 HTTP 서버와 같이 컴퓨터의 특정 폴더에 담긴 HTML 파일로 웹사이트를 띄울 수 있도록 하는 프로그램을 웹 서버라고 한다. 그리고 웹 서버(소프트웨어)를 설치 해 놓고 실행하는 컴퓨터(하드웨어) 또한 '웹 서버'로 정의한다.
- 온프레미스는 서버에 관한 모든 것을 직접 구성하고 통제할 수 있다는 장점이 있지만, 그만큼 서버에 대한 해박한 지식과 경험이 있는 인력을 필요로한다. 자체 서버를 두기 위한 물리적 공간과 환경 또한 갖춰야 한다. 서버 호스팅을 이용하면 이와 같은 한계로 인해 발생하는 비용을 절감할 수 있지만, 유출되어서는 안 되는 정보를 외부 컴퓨터에 둔다는 리스크가 있다.
- AWS는 아마존에서 제공하는 클라우드 컴퓨팅 서비스이다. 네트워킹을 기반으로 가상 컴퓨터와 스토리지, 네트워크 인프라 등의 다양한 서비스를 제공한다.
- 변수는 데이터를 담는 주머니로, 그 내용물을 바꿔서 담을 수 있는 주머니를 말한다. 자바스크립트 코드의 경우 let count 라는 변수 안에 숫자 0을 담고, 클릭 버튼을 클릭할 때마다 숫자가 1씩 커지면서 count 변수에는 증가된 새로운 숫자가 담기도록 할 수 있다.
- 하드디스크나 SSD는 책상 여러개를 보관 해 놓을 수 있는 '창고'와 같아서 메모리보다 저장 공간이 훨씬 넓지만, 저장된 정보를 꺼내는 데 시간이 오래 걸린다. 그렇기 때문에 빠르고 많이 들어오는 요청에 맞게 세션 아이디를 찾아 확인하는 작업에는 용량은 적지만 더 빨리 이용할 수 있는 메모리가 적합하다. 서버는 요청마다 함께 딸려 오는 세션 아이디를 바로바로 확인 할 수 있도록 로그인한 사용자의 아이디를 '메모리'라는 책상에 올려 놓기 때문에 데이터를 빠르게 확인 할 수 있다는 장점이 있는 대신 공간이 한정되어 있다. 서버에 동시 접속하는 사용자가 많아지면 메모리 공간이 부족해져서 서버에 부하가 걸리고 화면에 움직이지 않는 등의 문제가 발생할 수 있다. 메모리 공간을 많이 차지하는 세션 방식의 대안은 로그인한 사용자에게 세션 아이디 대신 토큰을 발급해 주는 것이다.
- 우리는 유튜브, 게임 등에서 대량의 데이터를 서버로 전송받는다. 이러한 데이터 전송에는 시간이 소요되고 통신비도 지출된다. 그러나 한 번 받은 데이터는 저장해놨다가 다시 사용할 때 꺼내 쓴다면 반복적으로 서버에 데이터 전송을 요청하지 않아도 된다. 이 때 사용되는 기술이 캐시이다. 컴퓨터의 하드웨어 안에서도 메모리 안에 들어 있는 정보를 더 빨리 가져올 수 있도록 하는 CPU 캐시가 있다.
- 프로그램마다 API 설계 방식이 다르다면 개발자들은 새로운 서비스를 만들 때마다 새로운 API를 고안하거나 다른 팀에 합류할 때마다 기존 API를 읽히는 데 어려움을 겪게 된다. 자동차의 운전 수칙이 전 세계적으로 비슷한 것처럼 개발자 사이에도 보편적으로 공유되는 방식이 있는데, 이를 REST API 라고 한다. REST API를 사용함으로써 개발자들은 '이 기능은 이렇게 요청하는 거네?'라고 짐작할 수 있기 때문에 보다 쉽게 개발에 참여할 수 있다.
- IP는 Internet Protocol의 약자로 인터넷 상에서 데이터를 주고 받기 위한 통신 규약이다. IP 주소는 이 통신을 위해 사용하는 식별 번호이다. IP 주솔르 줄여서 IP라고 부르기도 하지만, IP는 규약 자체를 가리키는 말이기 때문에 두 단어는 다른 의미이다.
- 공인 IP 주소는 지구상 어느 것과도 중복되지 않는 고유 IP주소로, 인터넷 서비스 제공업체에 의해 회사나 개인에게 부여된다. 공인 IP는 다른 어떤 IP와도 중복되지 않기 때문에 웹사이트같은 서버를 찾기위한 용도로 사용된다. 또한 외부에 공개된 주소이기 때문에 검색 엔진에서 IP를 검색해 확인 가능하다.
- 사설 IP 주소는 IPv4 방식의 공인 IP주소가 부족해지면서 기기에 서로 다른 주소를 할당할 수 없기 때문에 생긴 개념이다. 가정집이나 회사 사무실에서 쓰는 여러 가지 기기에 공인 IP를 부여할 수 없으니 공유기로 하나의 공인 IP 주소를 여러 기기가 함께 사용하도록 하는 것이다. 하지만 공인 IP를 공유하는 기기의 주소도 중복되면 안되기 때문에 공인 IP를 공유한 기기에도 각각 구분할 수 있는 주소를 할당하는데, 이 때 쓰는 주소를 사설 IP주소라고 한다. 사설 IP 주소는 로컬IP, 가상IP라고도 불린다.
- URL은 네트워크상에서 특정 자료가 어디에 있는지 나타내는 주소이다.
- 하이퍼텍스트란 꼭 전체 글자를 순서대로 읽지 않아도 되는 문서이다. 블로그나 포털 사이트에서 링크만 클릭하면 언제든지 원하는 페이지로 자유롭게 이동이 가능한 이유이다. 한 문서에서 다른 문서로 즉시 접근할 수 있도록 비선형적으로 연결된 텍스트를 하이퍼 텍스트라고 부른다.
HTTP 상태코드
서버의 응답에는 세 자리 숫자 형식을 가진 응답 코드가 찍힌다. 100의 자리 숫자로 각 요청이 대략 어떤 결과를 반환하는지 알 수 있다.
1XX
요청을 성공적으로 받았으며 서버가 해당 작업을 진행중
2XX
요청을 성공적으로 받았으며 요청이 이루어짐
- 200: 요청이 성공적으로 처리됨. 가장 흔히 사용
- 204: 성공적으로 처리되었지만, 답장에 적어 보낼 내용은 없음
- 요청에서 지정한 대로, 일부 컨텐츠만 보냄
3XX
요청을 수행하기 위해서는 해당 요청을 다른 주소로 보내는(redirection) 등 추가 조치가 필요하다. 자료의 위치가 변경되어 새 URL로 자동 이동시켜줄 때 사용한다.
⭐ 4XX
클라이언트 요청에 문제가 있기 때문에 수행할 수 없는 상태
- 401: Unauthorized - 로그인이 필요한 요청인데 로그인이 안 되어 있음
- 403: Forbidden - 로그인 되어 있지만 요청을 보낼 권한이 없음
- 404: Not Found - 요청에 해당하는 데이터가 없음 또는 URL이 잘못되었을 때
⭐ 5XX
요청에는 문제가 없지만, 서버에 이상이 있어 응답할 수 없는 상태
- 500: 서버 내부에 오류 발생
- 502: 서버 과부하 또는 기타 네트워크 문제로 통신이 제대로 되지 않음
DNS에서 구글 IP를 찾는 과정

www.google.com 의 IP주소를 찾는 과정
- 브라우저는 www.google.com을 로컬 DNS 서버에 보내 IP를 요청한다. 로컬 DNS에 이 주소의 IP가 담긴 캐시가 있다면 곧바로 넘어 간다.
- 만약 www.google.com의 정보를 갖고 있지 않다면 로컬 DNS 서버는 루트 네임 서버에 이 주소를 문의한다.
- 루트 네임 서버는 최상위 도메인 주소만 관리하기 때문에 www.google.com 에서 .com만 확인한 다음 com 주소를 관리하는 com 담당 네임 서버로 안내한다. com담당 네임 서버는 .com 또는 .net 등 URL의 마지막 점 뒤에 오는 최상위 도메인 정보를 관리하는 서버이다. TLD(최상위 도메인) DNS 서버라고도 한다.
- 로컬 DNS 서버는 반환된 IP 주소를 보고 com 담당 네임 서버를 찾아가 www.google.com을 문의한다
- 이 네임 서버는 www, mail, map 같은 호스트명과 google.com이 연결된 조합의 IP 주소를 알고 있는 마지막 네임 서버의 IP를 알려준다.
- 로컬 DNS 서버는 해당 네임 서버에 www.google.com 의 IP 주소를 물어본다.
- 네임 서버는 드디어 www.google.com의 IP 주소를 로컬 DNS 서버에 전달한다
- 그러면 로컬 DNS 서버는 이를 브라우저에 전달한다.
- 브라우저는 이 IP 주소로 해당 웹사이트의 서버에 요청을 보내고
- 사용자는 웹사이트에 실제로 접속 가능하다.
- 펌웨어는 특정 하드웨어에 설치되어 사용자가 기기를 이용할 수 있도록 해 주는 소프트웨어로, 펌웨어 역시 운영체제의 일종이다. 그러나 프로그램 실행을 제어하기 위한 일반 운영체제와 달리 펌웨어는 하드웨어의 기본적인 작동을 제어하는 기능을 수행한다. 예를 들어 처음 산 컴퓨터의 전원을 켰을 때 윈도우 같은 운영체제가 시작되기 전 검은색 바탕화면에 제조사의 이름이나 메모리 및 하드 디스크 용량 등의 하드웨어 정보는 펌웨어에서 제공하는 정보이다.
- 컴퓨터에서 인터페이스는 두 개 이상의 시스템이나 장치가 상호 작용할 수 있는 접점이다. 예를 들어 TV의 인터페이스는 리모컨과 TV 본체 버튼이다. 리모컨을 사용해 TV 채털을 돌려 원하는 화면을 볼 수 있기 때문이다. 스마트폰의 인터페이스는 터치스크린이다. 이처럼 두 개 이상의 시스템이나 장치가 상호 작용하는 것을 인터페이스라고 하며, 사람과 사물 또는 프로그램 사이에서 의사소통 할 수 있도록 돕는 것을 사용자 인터페이스라고 한다.

- 컴퓨터에서 메인 메모리와 램(RAM: Random Access Memory)은 부르는 명칭이 달라도 대부분 같은 장치를 말한다. 메인 메모리는 해당 장치의 역할에, 램은 작동 원리에 초점을 둔 용어이다. 임의 접근(Random Access)은 메모리 어느 위치에 있는 데이터든지 같은 속도로 읽고 쓸 수 있다는 뜻이다.
- 바이너리 파일은 사람이 읽을 수 있는 텍스트 형식이 아니라 컴퓨터가 읽을 수 있는 이진(바이너리) 숫자 형식으로 작성된 파일이다. PNG, JPG 같은 이미지 파일이나 mp3 파일, 동영상 파일, 각종 프로그램 실행 파일들을 바이너리 파일이라고 한다.
- 함수(function)는 특정한 기능을 하는 소스 코드를 다로 빼서 묶어 놓은 것이다. 함수를 사용하면 코드를 기능별로 구분해서 코드 분석이 편리해지고, 같은 코드를 여러 번 사용하는 코드 중복을 줄일 수 있다.
- 컴파일러는 컴파일 단계에서 무조건 위에서 아래로, 왼쪽에서 오른쪽으로 해석한다. 이 때 컴파일러는 해석하는 코드 전체를 한 줄로 인식하는데, 세미콜론을 만나면 '해당 명령어'가 여기까지구나 하고 구분한다. 따라서 한 줄의 명령어가 끝났음을 컴파일러에 알려주기 위해 문장 끝에 세미콜론을 붙인다.
- 버그는 개발자에 의해, 오류는 프로그램 사용자에 의해 발생하는 것으로 보는 것이다. 쉽게 말해서 개발자가 코드를 잘못 작성해서 발생하면 '버그', 사용자가 전화번호 입력란에 한글을 입력해서 일어나면 '오류'로 정의한다.
⭐CPU가 멀티태스킹을 하는 방법
** 프로세스, 스레드
컴퓨터는 어떻게 CPU 코어 수보다 많은 작업을 멀티태스킹 하는 걸까?

⭐ 멀티태스킹과 멀티프로세싱, 병렬처리와 병행처리
멀티태스킹과 멀티프로세싱
멀티 스레드를 이해하기 위해 멀티 태스킹과 프로세스 같은 운영체제 기본 개념들을 알아야한다. 멀티 스레드 이해를 위한 핵심 내용만 살펴보자. 1) 단일 프로그램 실행ex) 프로그램 2개 이상
hyokeun0419.tistory.com
[OS] 멀티프로세싱, 멀티프로그래밍, 멀티태스킹, 멀티스레딩
멀티 프로세싱은 다수의 프로세서가 서로 협력적으로 일을 처리하는 것을 의미한다. 컴퓨터는 1대인데 프로세서(CPU)는 2개 이상이다. 보통, 멀티코어시스템(multi-core system)을 포함한다.초기의 컴
velog.io
[Operating System - Chapter 4] 스레드와 병행성
이 포스팅은 공룡책으로 알려진 Operating System Concepts의 4장인 Threads & Concurrency를 공부하면서 정리한 포스팅이다.
imbf.github.io
Ch. 02 프로세스 (병행 프로세스)
이 게시글은 <쉽게 배우는 운영체제> (함호종, 원종권 지음)을 공부하며 적은 개인 노트입니다.프로세스(Process)/태스크(Task): 실행 중인 상태의 프로그램비동기적(asynchronous) 행위실행 중인 procedure
velog.io
📌 왜 타입스크립트는 자바스크립트로 컴파일되나?
자바스크립트는 인터프리터 언어이므로, 코드를 한 줄씩 읽고 실행한다. 반면, 타입스크립트는 정적 타입 검사를 위해 별도의 컴파일 과정이 필요하다. 하지만 결국 실행되는 것은 자바스크립트이므로, 타입스크립트 코드를 자바스크립트로 변환(컴파일)하는 과정이 필요한 것이다.
즉, 타입스크립트 → (컴파일) → 자바스크립트 → (인터프리터 실행) → 프로그램 실행 이런 흐름이다.
타입스크립트는 브라우저와 대부분의 JS 런타임에서 직접 실행될 수 없기 때문에, 이를 실행 가능한 형태로 만들기 위해 자바스크립트로 컴파일된다. 또한, 타입스크립트는 정적 타입 검사를 제공하는데, 이는 개발 단계에서만 필요하며, 실제 실행 시에는 불필요한 정보이므로 자바스크립트 코드로 변환하여 실행한다.
📌 소프트웨어를 만드는 키트 SDK(Software Development Kit)
SDK에는 라이브러리, 런타임 환경, 편집 도구, 코드 샘플, 설명서 등이 포함된다.
자바의 경우 런타임 환경과 SDK가 다음과 같은 관계를 갖는다.

자바 프로그래밍을 해 봤다면 컴퓨터에 JRE(자바 런타임 환경)가 아닌 JDK(Java Development Kit), 즉 자바 SDK를 설치 했을 것이다. JRE가 JVM과 자바 실행에 사용되는 여러 라이브러리를 포함해서 자바 프로그램을 실행할 수 있는 환경을 갖춘 것이라면, JDK는 이에 더해서 자바 코드를 컴파일하고 테스트하는 기능을 포함하는 등 자바로 프로그램을 개발할 수 있는 환경까지 갖춰 주는 것이다. 그렇기 때문에 자바를 사용해서 백엔드 프로그램을 개발하는 컴퓨터에는 JDK를, 이를 실행할 서버에는 JRE를 설치하는 것이다.
자바 11부터는 런타임 환경인 JRE 없이 SDK인 JDK만 제공한다. 프로그램이 빌드되어 배포될 실행 파일에 JVM과 같은 런타임 환경까지 포함해서 서버에 JRE를 따로 설치 할 필요가 없도록 하는 것이다.
'이것저것' 카테고리의 다른 글
갤럭시 휴대폰 수리 시 수리 모드를 사용해서 안전하게 개인정보 보호하기 (5) | 2025.03.13 |
---|---|
오픽 (OPIC) 보기 전에 꼭 봐야 할 꿀팁 & 전략 (9) | 2025.03.08 |
[얄코] 코딩 업계 IT 용어 총정리 (4) | 2025.02.12 |
[MBTI] 방문자수 냠냠: INFP (인프피) 탐구 생활 (92) | 2025.02.01 |
✨2025년 웹디자인기능사 개정 웹디자인개발기능사 변경점 정리✨ (14) | 2025.01.22 |

- 라이브러리는 하나 이상의 프로그램에서 공통으로 사용할 수 있는 함수들을 모듈로 만들어 놓은 집합을 말한다. 라이브러리를 사용하면 프로그램을 만들 때 기존에 만들어진 기능을 활용하여 프로그램 제작 시간과 노력을 줄일 수 있다. 라이브러리에 대해 더 알고 싶다면 p289
- 해커는 컴퓨터와 프로그래밍에 대한 전문 지식을 가진 사람이고, 크래커는 이를 범죄에 활용하는 사람이다. 보안 업계에 종사하는 해커를 화이트 해커, 크래커는 블랙 해커라는 표현을 쓴다.
- 프로그램과 소프트웨어 둘 중에는 소프트웨어가 더 넓은 개념이다. 프로그램은 최종 결과물 뿐만 아니라 소스 코드도 포함하는데, 소프트웨어와 크게 다른 점은 순서가 있다는 것이다. '행사', '훈련'이라는 단어에 '프로그램'이라는 단어를 붙이면 '행사 프로그램', '훈련 프로그램'이 되어 '순서'의 의미가 붙는 것과 같다. 여기서 말하는 프로그램은 '실행 순서대로 작성한 명령어 모음'이다.
대표적인 컴파일 언어 | 대표적인 인터프리터 언어 |
C, C++, C#, 자바, 타입스크립트, 코틀린, 스위프트, 스칼라, Go, 리스트 |
자바스크립트, 파이썬, 루비, PHP, 펄, R |
- 코딩 컨벤션은 변수의 이름을 짓는 법, 코드 줄을 맞추는 법과 같이 팀 또는 회사 내에서 정한 코딩 스타일 규약이다. 같은 팀 내에서 개발자마다 코드를 작성하는 스타일이 다르면 협업 시 다른 사람의 코드를 이해하고 코드의 일관성을 유지하는 데 어려움이 발생한다. 이를 방지하기 위해 규칙을 정하는 것을 코딩 컨벤션이라고 한다.
- 개발자 사이에서 서버는 '컴퓨터에게 서버 역할을 시키는 소프트웨어'를 지칭하는 단어로 널리 쓰인다. 예를 들어서 아파치 HTTP 서버와 같이 컴퓨터의 특정 폴더에 담긴 HTML 파일로 웹사이트를 띄울 수 있도록 하는 프로그램을 웹 서버라고 한다. 그리고 웹 서버(소프트웨어)를 설치 해 놓고 실행하는 컴퓨터(하드웨어) 또한 '웹 서버'로 정의한다.
- 온프레미스는 서버에 관한 모든 것을 직접 구성하고 통제할 수 있다는 장점이 있지만, 그만큼 서버에 대한 해박한 지식과 경험이 있는 인력을 필요로한다. 자체 서버를 두기 위한 물리적 공간과 환경 또한 갖춰야 한다. 서버 호스팅을 이용하면 이와 같은 한계로 인해 발생하는 비용을 절감할 수 있지만, 유출되어서는 안 되는 정보를 외부 컴퓨터에 둔다는 리스크가 있다.
- AWS는 아마존에서 제공하는 클라우드 컴퓨팅 서비스이다. 네트워킹을 기반으로 가상 컴퓨터와 스토리지, 네트워크 인프라 등의 다양한 서비스를 제공한다.
- 변수는 데이터를 담는 주머니로, 그 내용물을 바꿔서 담을 수 있는 주머니를 말한다. 자바스크립트 코드의 경우 let count 라는 변수 안에 숫자 0을 담고, 클릭 버튼을 클릭할 때마다 숫자가 1씩 커지면서 count 변수에는 증가된 새로운 숫자가 담기도록 할 수 있다.
- 하드디스크나 SSD는 책상 여러개를 보관 해 놓을 수 있는 '창고'와 같아서 메모리보다 저장 공간이 훨씬 넓지만, 저장된 정보를 꺼내는 데 시간이 오래 걸린다. 그렇기 때문에 빠르고 많이 들어오는 요청에 맞게 세션 아이디를 찾아 확인하는 작업에는 용량은 적지만 더 빨리 이용할 수 있는 메모리가 적합하다. 서버는 요청마다 함께 딸려 오는 세션 아이디를 바로바로 확인 할 수 있도록 로그인한 사용자의 아이디를 '메모리'라는 책상에 올려 놓기 때문에 데이터를 빠르게 확인 할 수 있다는 장점이 있는 대신 공간이 한정되어 있다. 서버에 동시 접속하는 사용자가 많아지면 메모리 공간이 부족해져서 서버에 부하가 걸리고 화면에 움직이지 않는 등의 문제가 발생할 수 있다. 메모리 공간을 많이 차지하는 세션 방식의 대안은 로그인한 사용자에게 세션 아이디 대신 토큰을 발급해 주는 것이다.
- 우리는 유튜브, 게임 등에서 대량의 데이터를 서버로 전송받는다. 이러한 데이터 전송에는 시간이 소요되고 통신비도 지출된다. 그러나 한 번 받은 데이터는 저장해놨다가 다시 사용할 때 꺼내 쓴다면 반복적으로 서버에 데이터 전송을 요청하지 않아도 된다. 이 때 사용되는 기술이 캐시이다. 컴퓨터의 하드웨어 안에서도 메모리 안에 들어 있는 정보를 더 빨리 가져올 수 있도록 하는 CPU 캐시가 있다.
- 프로그램마다 API 설계 방식이 다르다면 개발자들은 새로운 서비스를 만들 때마다 새로운 API를 고안하거나 다른 팀에 합류할 때마다 기존 API를 읽히는 데 어려움을 겪게 된다. 자동차의 운전 수칙이 전 세계적으로 비슷한 것처럼 개발자 사이에도 보편적으로 공유되는 방식이 있는데, 이를 REST API 라고 한다. REST API를 사용함으로써 개발자들은 '이 기능은 이렇게 요청하는 거네?'라고 짐작할 수 있기 때문에 보다 쉽게 개발에 참여할 수 있다.
- IP는 Internet Protocol의 약자로 인터넷 상에서 데이터를 주고 받기 위한 통신 규약이다. IP 주소는 이 통신을 위해 사용하는 식별 번호이다. IP 주솔르 줄여서 IP라고 부르기도 하지만, IP는 규약 자체를 가리키는 말이기 때문에 두 단어는 다른 의미이다.
- 공인 IP 주소는 지구상 어느 것과도 중복되지 않는 고유 IP주소로, 인터넷 서비스 제공업체에 의해 회사나 개인에게 부여된다. 공인 IP는 다른 어떤 IP와도 중복되지 않기 때문에 웹사이트같은 서버를 찾기위한 용도로 사용된다. 또한 외부에 공개된 주소이기 때문에 검색 엔진에서 IP를 검색해 확인 가능하다.
- 사설 IP 주소는 IPv4 방식의 공인 IP주소가 부족해지면서 기기에 서로 다른 주소를 할당할 수 없기 때문에 생긴 개념이다. 가정집이나 회사 사무실에서 쓰는 여러 가지 기기에 공인 IP를 부여할 수 없으니 공유기로 하나의 공인 IP 주소를 여러 기기가 함께 사용하도록 하는 것이다. 하지만 공인 IP를 공유하는 기기의 주소도 중복되면 안되기 때문에 공인 IP를 공유한 기기에도 각각 구분할 수 있는 주소를 할당하는데, 이 때 쓰는 주소를 사설 IP주소라고 한다. 사설 IP 주소는 로컬IP, 가상IP라고도 불린다.
- URL은 네트워크상에서 특정 자료가 어디에 있는지 나타내는 주소이다.
- 하이퍼텍스트란 꼭 전체 글자를 순서대로 읽지 않아도 되는 문서이다. 블로그나 포털 사이트에서 링크만 클릭하면 언제든지 원하는 페이지로 자유롭게 이동이 가능한 이유이다. 한 문서에서 다른 문서로 즉시 접근할 수 있도록 비선형적으로 연결된 텍스트를 하이퍼 텍스트라고 부른다.
HTTP 상태코드
서버의 응답에는 세 자리 숫자 형식을 가진 응답 코드가 찍힌다. 100의 자리 숫자로 각 요청이 대략 어떤 결과를 반환하는지 알 수 있다.
1XX
요청을 성공적으로 받았으며 서버가 해당 작업을 진행중
2XX
요청을 성공적으로 받았으며 요청이 이루어짐
- 200: 요청이 성공적으로 처리됨. 가장 흔히 사용
- 204: 성공적으로 처리되었지만, 답장에 적어 보낼 내용은 없음
- 요청에서 지정한 대로, 일부 컨텐츠만 보냄
3XX
요청을 수행하기 위해서는 해당 요청을 다른 주소로 보내는(redirection) 등 추가 조치가 필요하다. 자료의 위치가 변경되어 새 URL로 자동 이동시켜줄 때 사용한다.
⭐ 4XX
클라이언트 요청에 문제가 있기 때문에 수행할 수 없는 상태
- 401: Unauthorized - 로그인이 필요한 요청인데 로그인이 안 되어 있음
- 403: Forbidden - 로그인 되어 있지만 요청을 보낼 권한이 없음
- 404: Not Found - 요청에 해당하는 데이터가 없음 또는 URL이 잘못되었을 때
⭐ 5XX
요청에는 문제가 없지만, 서버에 이상이 있어 응답할 수 없는 상태
- 500: 서버 내부에 오류 발생
- 502: 서버 과부하 또는 기타 네트워크 문제로 통신이 제대로 되지 않음
DNS에서 구글 IP를 찾는 과정

www.google.com 의 IP주소를 찾는 과정
- 브라우저는 www.google.com을 로컬 DNS 서버에 보내 IP를 요청한다. 로컬 DNS에 이 주소의 IP가 담긴 캐시가 있다면 곧바로 넘어 간다.
- 만약 www.google.com의 정보를 갖고 있지 않다면 로컬 DNS 서버는 루트 네임 서버에 이 주소를 문의한다.
- 루트 네임 서버는 최상위 도메인 주소만 관리하기 때문에 www.google.com 에서 .com만 확인한 다음 com 주소를 관리하는 com 담당 네임 서버로 안내한다. com담당 네임 서버는 .com 또는 .net 등 URL의 마지막 점 뒤에 오는 최상위 도메인 정보를 관리하는 서버이다. TLD(최상위 도메인) DNS 서버라고도 한다.
- 로컬 DNS 서버는 반환된 IP 주소를 보고 com 담당 네임 서버를 찾아가 www.google.com을 문의한다
- 이 네임 서버는 www, mail, map 같은 호스트명과 google.com이 연결된 조합의 IP 주소를 알고 있는 마지막 네임 서버의 IP를 알려준다.
- 로컬 DNS 서버는 해당 네임 서버에 www.google.com 의 IP 주소를 물어본다.
- 네임 서버는 드디어 www.google.com의 IP 주소를 로컬 DNS 서버에 전달한다
- 그러면 로컬 DNS 서버는 이를 브라우저에 전달한다.
- 브라우저는 이 IP 주소로 해당 웹사이트의 서버에 요청을 보내고
- 사용자는 웹사이트에 실제로 접속 가능하다.
- 펌웨어는 특정 하드웨어에 설치되어 사용자가 기기를 이용할 수 있도록 해 주는 소프트웨어로, 펌웨어 역시 운영체제의 일종이다. 그러나 프로그램 실행을 제어하기 위한 일반 운영체제와 달리 펌웨어는 하드웨어의 기본적인 작동을 제어하는 기능을 수행한다. 예를 들어 처음 산 컴퓨터의 전원을 켰을 때 윈도우 같은 운영체제가 시작되기 전 검은색 바탕화면에 제조사의 이름이나 메모리 및 하드 디스크 용량 등의 하드웨어 정보는 펌웨어에서 제공하는 정보이다.
- 컴퓨터에서 인터페이스는 두 개 이상의 시스템이나 장치가 상호 작용할 수 있는 접점이다. 예를 들어 TV의 인터페이스는 리모컨과 TV 본체 버튼이다. 리모컨을 사용해 TV 채털을 돌려 원하는 화면을 볼 수 있기 때문이다. 스마트폰의 인터페이스는 터치스크린이다. 이처럼 두 개 이상의 시스템이나 장치가 상호 작용하는 것을 인터페이스라고 하며, 사람과 사물 또는 프로그램 사이에서 의사소통 할 수 있도록 돕는 것을 사용자 인터페이스라고 한다.

- 컴퓨터에서 메인 메모리와 램(RAM: Random Access Memory)은 부르는 명칭이 달라도 대부분 같은 장치를 말한다. 메인 메모리는 해당 장치의 역할에, 램은 작동 원리에 초점을 둔 용어이다. 임의 접근(Random Access)은 메모리 어느 위치에 있는 데이터든지 같은 속도로 읽고 쓸 수 있다는 뜻이다.
- 바이너리 파일은 사람이 읽을 수 있는 텍스트 형식이 아니라 컴퓨터가 읽을 수 있는 이진(바이너리) 숫자 형식으로 작성된 파일이다. PNG, JPG 같은 이미지 파일이나 mp3 파일, 동영상 파일, 각종 프로그램 실행 파일들을 바이너리 파일이라고 한다.
- 함수(function)는 특정한 기능을 하는 소스 코드를 다로 빼서 묶어 놓은 것이다. 함수를 사용하면 코드를 기능별로 구분해서 코드 분석이 편리해지고, 같은 코드를 여러 번 사용하는 코드 중복을 줄일 수 있다.
- 컴파일러는 컴파일 단계에서 무조건 위에서 아래로, 왼쪽에서 오른쪽으로 해석한다. 이 때 컴파일러는 해석하는 코드 전체를 한 줄로 인식하는데, 세미콜론을 만나면 '해당 명령어'가 여기까지구나 하고 구분한다. 따라서 한 줄의 명령어가 끝났음을 컴파일러에 알려주기 위해 문장 끝에 세미콜론을 붙인다.
- 버그는 개발자에 의해, 오류는 프로그램 사용자에 의해 발생하는 것으로 보는 것이다. 쉽게 말해서 개발자가 코드를 잘못 작성해서 발생하면 '버그', 사용자가 전화번호 입력란에 한글을 입력해서 일어나면 '오류'로 정의한다.
⭐CPU가 멀티태스킹을 하는 방법
** 프로세스, 스레드
컴퓨터는 어떻게 CPU 코어 수보다 많은 작업을 멀티태스킹 하는 걸까?

⭐ 멀티태스킹과 멀티프로세싱, 병렬처리와 병행처리
멀티태스킹과 멀티프로세싱
멀티 스레드를 이해하기 위해 멀티 태스킹과 프로세스 같은 운영체제 기본 개념들을 알아야한다. 멀티 스레드 이해를 위한 핵심 내용만 살펴보자. 1) 단일 프로그램 실행ex) 프로그램 2개 이상
hyokeun0419.tistory.com
[OS] 멀티프로세싱, 멀티프로그래밍, 멀티태스킹, 멀티스레딩
멀티 프로세싱은 다수의 프로세서가 서로 협력적으로 일을 처리하는 것을 의미한다. 컴퓨터는 1대인데 프로세서(CPU)는 2개 이상이다. 보통, 멀티코어시스템(multi-core system)을 포함한다.초기의 컴
velog.io
[Operating System - Chapter 4] 스레드와 병행성
이 포스팅은 공룡책으로 알려진 Operating System Concepts의 4장인 Threads & Concurrency를 공부하면서 정리한 포스팅이다.
imbf.github.io
Ch. 02 프로세스 (병행 프로세스)
이 게시글은 <쉽게 배우는 운영체제> (함호종, 원종권 지음)을 공부하며 적은 개인 노트입니다.프로세스(Process)/태스크(Task): 실행 중인 상태의 프로그램비동기적(asynchronous) 행위실행 중인 procedure
velog.io
📌 왜 타입스크립트는 자바스크립트로 컴파일되나?
자바스크립트는 인터프리터 언어이므로, 코드를 한 줄씩 읽고 실행한다. 반면, 타입스크립트는 정적 타입 검사를 위해 별도의 컴파일 과정이 필요하다. 하지만 결국 실행되는 것은 자바스크립트이므로, 타입스크립트 코드를 자바스크립트로 변환(컴파일)하는 과정이 필요한 것이다.
즉, 타입스크립트 → (컴파일) → 자바스크립트 → (인터프리터 실행) → 프로그램 실행 이런 흐름이다.
타입스크립트는 브라우저와 대부분의 JS 런타임에서 직접 실행될 수 없기 때문에, 이를 실행 가능한 형태로 만들기 위해 자바스크립트로 컴파일된다. 또한, 타입스크립트는 정적 타입 검사를 제공하는데, 이는 개발 단계에서만 필요하며, 실제 실행 시에는 불필요한 정보이므로 자바스크립트 코드로 변환하여 실행한다.
📌 소프트웨어를 만드는 키트 SDK(Software Development Kit)
SDK에는 라이브러리, 런타임 환경, 편집 도구, 코드 샘플, 설명서 등이 포함된다.
자바의 경우 런타임 환경과 SDK가 다음과 같은 관계를 갖는다.

자바 프로그래밍을 해 봤다면 컴퓨터에 JRE(자바 런타임 환경)가 아닌 JDK(Java Development Kit), 즉 자바 SDK를 설치 했을 것이다. JRE가 JVM과 자바 실행에 사용되는 여러 라이브러리를 포함해서 자바 프로그램을 실행할 수 있는 환경을 갖춘 것이라면, JDK는 이에 더해서 자바 코드를 컴파일하고 테스트하는 기능을 포함하는 등 자바로 프로그램을 개발할 수 있는 환경까지 갖춰 주는 것이다. 그렇기 때문에 자바를 사용해서 백엔드 프로그램을 개발하는 컴퓨터에는 JDK를, 이를 실행할 서버에는 JRE를 설치하는 것이다.
자바 11부터는 런타임 환경인 JRE 없이 SDK인 JDK만 제공한다. 프로그램이 빌드되어 배포될 실행 파일에 JVM과 같은 런타임 환경까지 포함해서 서버에 JRE를 따로 설치 할 필요가 없도록 하는 것이다.
'이것저것' 카테고리의 다른 글
갤럭시 휴대폰 수리 시 수리 모드를 사용해서 안전하게 개인정보 보호하기 (5) | 2025.03.13 |
---|---|
오픽 (OPIC) 보기 전에 꼭 봐야 할 꿀팁 & 전략 (9) | 2025.03.08 |
[얄코] 코딩 업계 IT 용어 총정리 (4) | 2025.02.12 |
[MBTI] 방문자수 냠냠: INFP (인프피) 탐구 생활 (92) | 2025.02.01 |
✨2025년 웹디자인기능사 개정 웹디자인개발기능사 변경점 정리✨ (14) | 2025.01.22 |