Files
MyDoc/IT용어 정리.md
2026-06-15 12:36:13 +09:00

14 KiB

IT 및 개발 필수 용어 가이드

이 문서는 현대 IT 및 소프트웨어 개발 현업에서 자주 사용되는 핵심 용어들을 쉽게 설명하기 위해 작성되었습니다.


📌 용어 요약 요약표

용어 약자 풀이 한 줄 요약
LF / CRLF Line Feed / Carriage Return Line Feed 텍스트 파일의 줄바꿈을 처리하는 운영체제별 방식
RP (Repository) Repository 소스 코드와 문서의 과거 변경 이력까지 모두 기록하는 저장소
CI/CD Continuous Integration / Continuous Deployment 코드 검증부터 서버 반영까지의 과정을 자동으로 처리하는 파이프라인
LLM Large Language Model 인간의 자연어를 이해하고 문장을 생성하는 거대 인공지능 모델
CLI Command Line Interface 마우스 대신 텍스트 명령어를 직접 입력하여 컴퓨터를 제어하는 환경

1. LF / CRLF (줄바꿈 방식)

텍스트 파일에서 **"여기서 줄을 바꾸고 다음 줄로 넘어가라"**라고 컴퓨터에게 지시하는 방식입니다. 과거 타자기 시절의 작동 방식에서 유래되었습니다.

  • CR (Carriage Return): 커서를 줄의 맨 앞으로 이동 (\r)
  • LF (Line Feed): 커서를 한 줄 아래로 이동 (\n)

운영체제별 줄바꿈 표준

  • LF (\n): Linux, macOS, Git 시스템 기본 환경
  • CRLF (\r\n): Windows 오퍼레이팅 시스템

💡 현업 실무 팁 Windows 환경에서 작성한 소스 코드(CRLF)를 Linux 서버(LF)로 그대로 가져가면, 눈에 보이지 않는 \r 문자 때문에 구문 에러가 발생하거나 쉘 스크립트가 오작동할 수 있습니다. 프로젝트 시작 전 팀 내 줄바꿈 설정을 통일하는 것이 좋습니다.


2. RP (Repository / 레포지토리)

개발자들 사이에서 흔히 "레포" 또는 **"저장소"**라고 부르는 프로젝트의 핵심 보관소입니다.

  • 단순히 소스 코드 파일만을 모아두는 일반 폴더와는 다릅니다.
  • 파일의 생성, 수정, 삭제 등 과거 모든 변경 이력(버전)이 타임라인 형태로 기록·보관되는 지능형 저장소입니다.
  • 로컬 저장소 (Local Repository): 개발자 개인 PC에 존재하는 독립적인 작업 공간
  • 원격 저장소 (Remote Repository): GitHub, GitLab 등 네트워크상에 존재하며 팀원들과 코드를 공유하고 협업하는 중앙 공간

3. CI/CD (지속적 통합 / 지속적 배포)

개발자가 코드를 수정하여 저장소에 반영한 순간부터, 이를 자동으로 검증하고 실제 운영 서버에 안전하게 반영해 주는 자동화 시스템을 의미합니다.

  • CI (지속적 통합): 여러 개발자가 각자 수정한 코드를 하나의 저장소에 모을 때, 시스템이 자동으로 빌드하고 테스트(에러 검사)를 수행하여 코드의 건전성을 상시 유지하는 과정입니다.
  • CD (지속적 배포): CI 단계를 통과하여 검증이 완료된 코드를 사용자가 사용할 수 있는 **운영 서버에 사람의 개입 없이 자동으로 반영(배포)**하는 과정입니다.

💡 시스템 비유 수동 배포가 음식을 사람이 일일이 검수하고 직접 배달하는 방식이라면, CI/CD는 **"조리 직후 센서가 자동으로 위생과 맛을 검사(CI) \rightarrow 통과 즉시 드론이 고객에게 자동 배송(CD)"**하는 지능형 자동화 공정 라인과 같습니다.


4. LLM (Large Language Model / 거대 언어 모델)

인터넷상의 수많은 텍스트 데이터를 기반으로 학습하여, 사람의 언어(자연어)를 이해하고 문맥에 맞는 텍스트를 생성하도록 설계된 초대형 인공지능(AI) 신경망 모델입니다.

  • 현재 대화 중인 시스템을 비롯해 ChatGPT, Claude 등이 모두 LLM을 기반으로 작동합니다.
  • 방대한 양의 언어 규칙과 지식을 내재하고 있어 문맥 파악, 문서 요약, 외국어 번역뿐만 아니라 프로그래밍 소스 코드 작성 및 디버깅과 같은 고도의 언어적 업무를 훌륭히 수행합니다.

5. CLI (Command Line Interface / 명령줄 인터페이스)

그래픽 화면과 마우스를 사용하는 대신, 텍스트 형태의 명령어를 직접 타이핑하여 컴퓨터 시스템을 제어하고 소통하는 인터페이스 방식입니다.

  • GUI (Graphic User Interface): 일반적인 사용자 환경. 윈도우 창, 그래픽 아이콘, 마우스 클릭 중심의 조작.
  • CLI (Command Line Interface): 개발자 및 서버 관리자 환경. cd /var/www, git commit 같은 텍스트 기반 명령어 조작.

굳이 CLI를 사용하는 이유?

  1. 고성능 및 자원 효율성: 그래픽을 표현하는 데 필요한 메모리와 CPU 자원을 소모하지 않으므로 서버 운영에 최적화되어 있습니다.
  2. 반복 작업의 자동화: 자주 사용하는 일련의 명령어들을 쉘 스크립트(Shell Script) 파일로 묶어두면, 단 한 번의 실행으로 수백 가지의 복잡한 프로세스를 순식간에 자동 처리할 수 있습니다.

IT 용어 정리: 베어 메탈 (Bare Metal)

1. 개요

**베어 메탈(Bare Metal)**은 하이퍼바이저(Hypervisor) 같은 가상화 계층 없이, 물리적 하드웨어에 직접 운영 체제(OS)나 애플리케이션을 설치하고 구동하는 환경을 뜻합니다.

다른 사용자와 하드웨어 자원을 공유하지 않고 통째로 독점하여 사용하기 때문에, 물리 서버가 가진 본연의 성능을 100% 온전히 발휘할 수 있는 단독 서버 환경입니다.


2. 베어 메탈 vs 가상 머신 (VM) 비교

구분 베어 메탈 (Bare Metal) 가상 머신 (VM, Virtual Machine)
자원 사용 물리 서버 1대를 단독으로 사용 (단독 격리 환경) 1대의 물리 자원을 하이퍼바이저를 통해 분할하여 공유
성능 및 안정성 다른 사용자의 간섭(Noisy Neighbor)이 없어 최고의 성능 및 고정적 안정성 유지 공유 자원이므로 타 사용자의 작업량(오버부킹 등)에 따라 성능 간섭 발생 가능
제어 권한 하드웨어 레벨에 직접 접근하여 모든 제어 권한을 완전하게 통제 가능 하이퍼바이저(가상화 계층)를 거치므로 하드웨어 직접 제어 및 커스텀에 제한적
구축 시간 물리적 장치 준비, 랙 마운팅 및 할당에 상대적으로 시간이 더 소요됨 이미 구성된 가상 환경 위에서 클릭 몇 번으로 즉시 생성, 확장 및 복제 가능
비용 구조 하드웨어 전체를 독점 임대/구매하므로 초기 비용 및 유지 비용이 상대적으로 높음 필요한 만큼만 자원을 쪼개어 쓰고 사용한 만큼 지불하므로 비용 효율적

3. 주요 활용 시나리오 (Use Cases)

  • 데이터 집약적 워크로드 (Data-Intensive Workloads)
    • 입출력(I/O) 병목 현상이 없어야 하는 대규모 관계형 데이터베이스(RDBMS), NoSQL, 빅데이터 분석 시스템(Hadoop 등), 고성능 컴퓨팅(HPC) 환경.
  • 엄격한 보안 및 규제 준수 (Security & Compliance)
    • 가상화 환경의 자원 공유로 인한 보안 취약점을 차단하고, 물리적 인프라 격리가 필수적인 금융권 시스템, 공공기관, 기업의 핵심 기밀 데이터 처리 서버.
  • 자원 최적화 및 극도의 성능 요구 서비스
    • 마이크로초(μs) 단위의 지연 시간(Latency)도 허용하지 않는 실시간 게임 서버, 고빈도 매매(HFT) 시스템, 대규모 트래픽 처리가 상시 필요한 서비스.

4. 베어 메탈 클라우드 (Bare Metal Cloud)

최근의 클라우드 생태계에서는 전통적인 호스팅 방식의 단점인 '느린 프로비저닝'을 개선하여, 물리 서버를 퍼블릭 클라우드처럼 웹 콘솔 API를 통해 몇 분 만에 자동으로 할당받고 반납할 수 있는 '베어 메탈 클라우드' 형태로 널리 제공되고 있습니다.

  • 국내 대표 서비스 예시:
    • 카카오클라우드 (Kakao Cloud): 베어메탈 서버 (고성능 쿠버네티스 노드 및 DB 전용 인프라 제공)
    • 삼성SDS (Samsung SDS): 베어메탈 컴퓨팅 (기업용 미션 크리티컬 워크로드 최적화)

5 🔑 인증(Authentication)과 인가(Authorization)의 차이점

인증과 인가는 웹 보안 및 시스템 접근 제어의 핵심 개념입니다. 두 용어는 비슷해 보이지만 명확히 다른 역할을 수행합니다.


1. 인증 (Authentication)

  • 핵심 질문: "당신은 누구입니까? (Who are you?)"
  • 개념: 시스템에 접근하려는 사용자가 주장하는 본인이 맞는지 신원을 확인하고 검증하는 과정입니다.
  • 주요 방식:
    • ID와 비밀번호 입력
    • 생체 인식 (지문, Face ID)
    • 일회용 비밀번호 (OTP)
    • 소셜 로그인 (OAuth를 이용한 로그인 단계)
  • 실제 예시: 회사 건물에 들어갈 때 사원증을 찍어 '내 신원'을 등록하거나, 웹사이트에 아이디와 비밀번호로 로그인하는 행위.

2. 인가 (Authorization)

  • 핵심 질문: "당신은 무엇을 할 수 있습니까? (What are you allowed to do?)"
  • 개념: 신원이 확인된(인증된) 사용자가 특정 리소스에 접근하거나 특정 기능을 수행할 권한이 있는지 확인하고 허용하는 과정입니다.
  • 주요 방식:
    • 역할 기반 접근 제어 (RBAC: 관리자, 매니저, 일반 회원 등)
    • 권한 기반 접근 제어 (ABAC)
  • 실제 예시: 사원증을 찍고 건물에 들어간 후, 일반 직원은 일반 사무실만 들어갈 수 있고 서버실은 관리자만 들어갈 수 있도록 권한을 제한하는 행위.

3. 한눈에 보는 비교 표

구분 인증 (Authentication) 인가 (Authorization)
목적 사용자의 신원 확인 접근 및 수행 권한 검증
질문 "너 누구니?" "너 이거 할 자격 있어?"
선후 관계 먼저 수행됨 (1단계) 인증이 완료된 수행됨 (2단계)
IT 예시 웹사이트 로그인 성공 일반 회원이 관리자 페이지 주소 입력 시 접근 차단

4. JWT 기반 인증/인가 아키텍처 흐름

JWT 방식에서는 세션을 서버에 저장하지 않고, 클라이언트가 발급받은 토큰을 직접 증명서처럼 들고 다닙니다.

🔄 흐름도 (Flow)

  1. 인증 요청 (로그인): 클라이언트가 ID/PW를 서버에 전송합니다.
  2. 토큰 발급: 서버는 DB를 확인하여 신원이 검증되면, 사용자의 정보(Id, Role 등)를 담은 **Access Token(JWT)**을 생성하여 반환합니다.
  3. 인가 요청 (API 호출): 클라이언트는 권한이 필요한 API를 호출할 때, HTTP Header의 Authorization: Bearer <JWT>에 토큰을 실어 보냅니다.
  4. 토큰 검증 및 허가: 서버는 토큰의 위변조 여부와 만료일을 검증한 뒤, 토큰 내부의 권한(Role)을 확인하여 요청을 승인하거나 차단합니다.

💡 요약

  • 인증은 문을 열고 들어가기 위한 열쇠입니다.
  • 인가는 방 안에 들어간 후 특정 물건을 만질 수 있는 허가증입니다.

6

💡 프록시(Proxy)란? 쉽고 자세한 설명

**프록시(Proxy)**는 영어로 '대리'라는 뜻입니다. 컴퓨터 네트워크에서는 클라이언트(사용자)와 서버(웹사이트) 사이의 '중개인' 역할을 하는 서버를 의미합니다.

내가 직접 웹사이트에 접속하는 대신, 중간에 있는 프록시 서버가 내 요청을 대신 전달하고 결과를 받아옵니다.


🔄 프록시 서버의 작동 원리

  • 직접 접속할 때: ➡️ 웹사이트 (웹사이트가 내 IP와 위치를 알 수 있음)
  • 프록시를 거칠 때: ➡️ 프록시 서버 ➡️ 웹사이트 (웹사이트는 프록시 서버가 접속한 것으로 인식함)

🛡️ 프록시를 사용하는 주요 이유

  1. 익명성 및 보안 (IP 숨기기)

    • 내 진짜 IP 주소를 숨기고 프록시 서버의 IP 주소로 활동할 수 있습니다.
    • 해커가 내 컴퓨터에 직접 접근하는 것을 막는 방화벽 역할을 합니다.
  2. 차단 우회 및 지역 제한 해제

    • 국가, 회사, 학교 등에서 특정 사이트 접속을 막아두었을 때 사용합니다.
    • 차단되지 않은 다른 지역의 프록시 서버를 거쳐 접속하면 우회가 가능합니다.
  3. 속도 향상 및 대역폭 절약 (캐싱)

    • 자주 방문하는 사이트의 이미지나 데이터를 프록시 서버에 임시로 저장(캐시)해 둡니다.
    • 다음 접속 시 저장된 데이터를 바로 불러오므로 로딩 속도가 빨라집니다.

⚙️ 프록시의 두 가지 종류

프록시가 사용자 측에 있느냐, 웹사이트 측에 있느냐에 따라 크게 두 가지로 나뉩니다.

1. 포워드 프록시 (Forward Proxy)

  • 위치: 사용자(클라이언트) 앞에 위치합니다.
  • 용도: 회사나 학교에서 내부 사용자들이 특정 유해 사이트에 접속하지 못하도록 통제하거나, 개인 사용자가 IP를 우회할 때 사용합니다.

2. 리버스 프록시 (Reverse Proxy)

  • 위치: 웹사이트(서버) 앞에 위치합니다.
  • 용도: 사용자가 몰릴 때 여러 대의 서버로 요청을 나누어 주는 역할(로드 밸런싱)을 합니다. 실제 서버의 IP를 숨겨주기 때문에 서버 보안에 필수적입니다.

🆚 프록시(Proxy) vs VPN 차이점

많은 사람이 프록시와 VPN을 비슷하게 생각하지만, 핵심 차이는 **'암호화'**에 있습니다.

구분 프록시 (Proxy) VPN
핵심 역할 단순 요청 대리 및 중개 데이터 암호화 및 가상 터널 생성
적용 범위 특정 웹 브라우저나 앱에만 적용 기기 전체의 인터넷 트래픽에 적용
보안 수준 데이터가 암호화되지 않아 보안에 취약함 강력한 암호화로 해킹으로부터 안전함