목록기타/기초 지식 (9)
코딩항해기
HTTPHTTP(HyperText Transfer Protocol)는 웹에서 클라이언트와 서버가 데이터를 주고받기 위한 프로토콜이다. 웹 브라우저가 웹 서버에 웹 페이지를 요청하고, 서버가 이에 응답하는 방식으로 동작한다. HTTP의 특징무상태성(Stateless)HTTP는 기본적으로 무상태 프로토콜이다. 각각의 요청은 독립적으로 처리되며, 이전 요청의 정보를 가지고 있지 않는다. 이 특성 때문에 쿠키와 세션이라는 개념이 도입되었다. 클라이언트-서버 구조클라이언트가 요청을 보내면 서버가 응답하는 단방향 구조로 되어있다. 이는 클라이언트와 서버의 역할을 명확히 구분하여 각각 독립적으로 발전할 수 있게 한다. HTTP 메서드GET리소스 조회POST데이터 생성 및 조회PUT리소스 전체 수정PATCH리소스 일부..
인터넷은 어떻게 동작하는가? - Web 개발 학습하기 | MDN이 글에서는 인터넷의 개념과 작동 원리에 대해 설명합니다.developer.mozilla.org 인터넷의 가장 기본적인 내용은 컴퓨터들이 서로 통신 기능한 거대한 네트워크라는 것이다. 단순히 컴퓨터 간의 통신이 필요할 때, 컴퓨터들은 물리적, 또는 무선으로 연결이 되어 있어야한다. 이때 연결은 두 대로 제한되지 않고 원하는 만큼 연결할 수 있지만, 연결하고자 하는 컴퓨터의 수가 늘어날 수록 연결이 복잡해진다. 이러한 문제를 해결하기 위해 라우터가 있으며, 라우터를 시스템에 추가하면 단일 플러그만 라우터에 연결하면 되기 때문에 복잡해지는 문제를 해결할 수 있다. 컴퓨터의 수가 더욱 많이 늘어나게 되면 라우터도 여러 개 달아 또 다른 라우터..
문자 인코딩문자 인코딩은 컴퓨터가 이해할 수 있는 이진수로 문자를 변환하는 방식이다. 컴퓨터는 모든 데이터를 0과 1로 처리하기 때문에, 우리가 사용하는 문자를 컴퓨터가 이해할 수 있는 숫자로 변환해야 한다. ASCII가장 기본적인 인코딩 방식으로, 영문 알파벳과 숫자, 일부 특수문자를 7비트로 표현한다. 총 128개의 문자를 표현할 수 있으며, 확장 ASCII는 8비트를 사용하여 256개의 문자를 표현한다. EUC-KR한글을 표현하기 위한 초기 인코딩 방식이다. 완성형 한글을 지원하지만, 현대 한글의 모든 조합을 표현할 수 없다는 한계가 있다. UTF-8현재 가장 널리 사용되는 유니코드 인코딩 방식이다. 영문은 1바이트, 한글은 3바이트로 표현하며, 전 세계의 거의 모든 문자를 표현할 수 있다. 가변 ..
데브옵스개발 Development + 운영 Operation 개발담당자와 운영담당자가 연계하여 협력하는 개발 방법론이다. 개발과 운영을 결합해 탄생한 개발 방법론으로 시스템 개발자와 운영을 담당하는 정보기술 전문가 사이의 소통, 협업, 통합 및 자동화를 강조하는 소프트웨어 개발 방법론이다. 이러한 개념은 애자일 소프트웨어 개발과 지속적인 통합 등의 개념과도 관련이 있다. 애자일 소프트웨어 개발 Agile software development애자일 소프트웨어 개발은 팀 간의 협업, 고객 피드백, 유연한 계획을 통해 반복적이고 점진적으로 소프트웨어를 개발하는 방법론이다. 핵심은 변화를 수용하며 지속적인 개선을 추구하는 것이다. 계획과 문서를 기반으로 개발 모형이나 모델에 따라 앞을 예측하며 개발하는 것이 ..
SSHSSH(Secure Shell)는 네트워크 프로토콜의 일종으로, 컴퓨터와 컴퓨터가 인터넷과 같은 공공 네트워크를 통해 서로 통신할 때 보안적으로 안전하게 통신을 하기 위해 사용된다. 마치 두 컴퓨터 간에 안전한 터널을 만들어 그 속에서 통신하는 것과 같다. SSH의 작동 원리SSH는 공개키와 개인키라는 한 쌍의 키를 사용하여 통신한다. 공개키는 자물쇠와 같고, 개인키는 그 자물쇠를 열 수 있는 열쇠와 같다. 공개키는 말 그대로 공개해도 괜찮은 키로, 이를 통해 데이터를 암호화할 수 있다. 하지만 암호화된 데이터는 오직 개인키를 가진 사람만이 복호화할 수 있다. SSH의 주요 용도원격 서버 접속: 물리적으로 멀리 있는 서버에 안전하게 접속하여 관리할 수 있다.파일 전송: SCP나 SFTP를 통해 파일..
패키지 매니저npm(Node Package Manager)과 yarn은 Node.js 환경에서 사용되는 패키지 관리자다. 프로젝트의 의존성을 관리하고, 필요한 라이브러리를 설치하며, 버전을 제어하는 역할을 한다. 차이점yarn은 병렬 설치를 지원하여 npm보다 일반적으로 더 빠른 설치 속도를 보여준다. npm도 최신 버전에서 성능이 크게 개선되었다. yarn은 보안을 강화하기 위해 체크섬을 사용하며, 설치된 패키지의 무결성을 검증한다. npm yarn 명령어 비교초기화# npmnpm initnpm init -y # 기본값으로 설정# yarnyarn inityarn init -y # 기본값으로 설정 설치# npmnpm install # package.json의 모든 ..
파일 및 디렉토리 조작 명령어ls디렉토리 내용을 보여줌-l: 상세정보 표시-a: 숨김파일 포함-h: 파일크기 사람이 읽기 쉽게 표시ls -la: 숨김파일 포함하여 상세정보 표시ls -lh: 파일크기를 읽기 쉽게 표시cd디렉토리 이동~: 홈 디렉토리..: 상위 디렉토리.: 현재 디렉토리cd ~: 홈 디렉토리로 이동cd ..: 상위 디렉토리로 이동pwd현재 작업 디렉토리 경로 표시-pwd: 현재 경로 표시mkdir새 디렉토리 생성-p: 중간 경로도 함께 생성mkdir -p dir1/dir2: 중간 디렉토리 포함 생성rm파일/디렉토리 삭제-r: 디렉토리 삭제-f: 강제 삭제rm -rf dir: 디렉토리 강제 삭제cp파일/디렉토리 복사-r: 디렉토리 복사-i: 덮어쓰기 전 확인cp -r dir1 dir2: 디렉..
CAPTCHACompletely Automated Public Turing test to tell Computers and Humans Apart컴퓨터와 인간을 구분하기 위해 개발된 보안 메커니즘이다. 웹사이트에서 봇(Bot)과 자동화된 스크립트로부터 시스템을 보호한다. CAPTCHA의 진화 과정초기 텍스트 기반 CAPTCHA초기 CAPTCHA는 왜곡되고 읽기 어려운 텍스트 이미지로 구성되었다. 사용자는 이미지에 표시된 문자나 숫자를 입력해야 했다. 하지만 이 방식은 시각장애인에게 접근성 문제가 있었고, 기술 발전에 따라 봇을 거르지 못하게 됐다.이미지 선택형 CAPTCHAGoogle의 reCAPTCHA는 이미지 선택 방식을 도입했다. 예를 들어 "신호등이 있는 이미지를 모두 선택하세요"와 같은 과제를 ..
DNS의 개념DNS는 Domain Name System의 약자로, 인터넷의 전화번호부와 같은 역할을 한다. 우리가 웹 브라우저에 www.google.com과 같은 도메인 이름을 입력하면, DNS는 이를 컴퓨터가 이해할 수 있는 IP 주소(예: 172.217.161.36)로 변환해준다. 이는 마치 전화번호부에서 이름을 찾아 전화번호를 알아내는 것과 유사하다. DNS의 구조DNS는 계층적인 구조를 가지고 있다. 최상위에는 루트 도메인(.)이 있고, 그 아래에 .com, .net, .org와 같은 최상위 도메인(TLD), 그리고 그 아래에 google.com, naver.com과 같은 도메인이 존재한다. DNS 동작 과정웹 브라우저에 도메인 주소를 입력하면 다음과 같은 과정으로 IP 주소를 찾는다.브라우저는..