본문 바로가기
IT 끄적이기

공부하기 위한 IT 용어 정리

by 미르아 2025. 2. 13.
728x90

GPT에게 궁금한 내용을 물어보다가 문득 용어를 제대로 알고 있지 못하고 있다라는 생각에 기억을 하기 위해 정리한 내용

매번 기억을 한다고 생각하지만 헷갈려서 찾아보기 때문에 정리를 해두고 보는게 더 편할거 같아서 정리

1️⃣ 라이브러리 (Library)

✅ 정의:
특정 기능을 쉽게 사용할 수 있도록 미리 만들어진 코드 묶음

  • 필요할 때 가져다 쓰는 코드 모음
  • 개발자가 직접 하나하나 코드를 작성하지 않아도 반복적인 작업을 쉽게 해결할 수 있도록 지원

📌 비유:
🍱 "반조리 식품"

  • 요리를 직접 다 만들지 않고, 반조리된 재료(라이브러리)를 사용하여 쉽게 완성하는 것과 같음.
  • 예) 시중에서 파는 **양념된 고기(라이브러리)**를 사서 직접 요리하면 빠르고 간편함.

📌 예시:
Python – NumPy, Pandas (데이터 분석용 라이브러리)
JavaScript – Lodash (배열, 객체 조작 관련 기능 제공)
React의 React Router (라우팅을 쉽게 할 수 있도록 제공)

📌 특징:
✔ 개발자가 원하는 부분만 골라서 사용 가능
✔ 독립적인 기능 제공 (애플리케이션의 구조를 강제하지 않음)
❌ 라이브러리만으로는 전체적인 앱을 만들기 어렵고, 특정 기능에 집중됨


2️⃣ 프레임워크 (Framework)

✅ 정의:
개발할 때 전체적인 구조와 흐름을 제공하는 틀(Framework)

  • 프레임워크는 단순한 도구가 아니라, 개발 방식과 구조를 강제하는 틀
  • 프레임워크를 사용하면 코드 작성 방식이 어느 정도 정해짐

📌 비유:
🏗 "집을 짓기 위한 건축 프레임"

  • 라이브러리는 개별적인 벽돌 같은 도구이지만, 프레임워크는 집의 기본 설계를 제공하여 일정한 방식으로 지어야 함.

📌 예시:
Django (Python) – 웹 개발 프레임워크
Spring (Java) – 백엔드 개발 프레임워크
React, Angular, Vue (JavaScript) – 프론트엔드 개발 프레임워크
FastAPI (Python) – 비동기 API 개발 프레임워크

📌 특징:
개발 방식과 구조를 어느 정도 강제 (규칙을 따라야 함)
✔ 개발 속도를 빠르게 하고, 유지보수가 쉬움
❌ 특정한 방식에 맞춰야 하므로, 자유도가 떨어질 수 있음


3️⃣ 라이브러리 vs 프레임워크 차이점

항목라이브러리프레임워크

구조 강제 여부 ❌ 강제하지 않음 (원하는 기능만 사용) ✅ 개발 방식과 구조를 강제
개발자 주도 여부 ✅ 개발자가 필요할 때 호출 ❌ 프레임워크가 개발자의 코드를 호출 (제어 역전, IoC)
예시 NumPy, Pandas, React Router Django, Spring, React, FastAPI
비유 반조리 식품 – 필요한 것만 사용 레시피가 정해진 요리 키트

 

📌 한마디로 요약하면?
라이브러리: 개발자가 원하는 기능을 골라서 직접 사용
프레임워크: 전체적인 개발 구조를 정해주며, 개발자가 그 틀 안에서 코드를 작성해야 함


4️⃣ SDK (Software Development Kit)

✅ 정의:
특정 플랫폼(운영체제, 앱, 하드웨어)에서 개발할 수 있도록 제공하는 도구 모음

  • 라이브러리 + API + 예제 코드 + 개발 도구(에뮬레이터, 디버깅 툴) 등이 포함된 패키지
  • 특정 플랫폼(Windows, Android, iOS 등)에서 개발할 때 필수적임

📌 비유:
🧰 "DIY 가구 키트"

  • IKEA에서 가구를 조립할 때, 필요한 도구(드라이버, 나사, 설명서)를 한 번에 제공하는 것과 비슷함.
  • SDK도 개발자가 특정 플랫폼에서 작업할 수 있도록 필요한 모든 도구를 제공함.

📌 예시:
Android SDK – 안드로이드 앱 개발용 SDK
iOS SDK – iOS 앱 개발용 SDK
AWS SDK – AWS 서비스를 쉽게 사용할 수 있도록 도와줌

📌 특징:
✔ 플랫폼에서 개발할 때 필수적인 도구 제공
✔ 라이브러리보다 더 광범위한 기능 포함
❌ 특정 플랫폼에 종속될 가능성이 있음


5️⃣ API (Application Programming Interface)

✅ 정의:
다른 소프트웨어나 서비스와 상호작용할 수 있도록 제공하는 인터페이스

  • 외부 서비스나 시스템과 연결할 때 API를 사용함

📌 비유:
🍽 "음식 배달 앱"

  • 음식 배달 앱에서 여러 식당의 메뉴를 가져와 주문할 수 있음.
  • API는 앱과 식당을 연결하는 역할을 하는 것과 같음.

📌 예시:
OpenAI GPT API – GPT 모델과 상호작용 가능
Google Maps API – 지도 정보를 가져올 수 있음
Twitter API – 트윗을 읽거나 작성 가능

📌 특징:
✔ 다른 서비스나 프로그램과 연결할 수 있도록 함
✔ REST API, GraphQL 등 다양한 방식이 있음
❌ 제공된 기능만 사용할 수 있음


📌 최종 정리

용어정의비유예시

라이브러리 (Library) 특정 기능을 쉽게 사용할 수 있도록 만든 코드 모음 🍱 반조리 식품 (필요한 것만 골라 사용) NumPy, Pandas, React Router
프레임워크 (Framework) 개발 구조와 패턴을 제공하여 일정한 방식으로 개발하도록 함 🏗 건축 설계도 (틀 안에서 개발) Django, Spring, React, FastAPI
SDK (Software Development Kit) 특정 플랫폼에서 개발할 수 있도록 제공하는 도구 모음 🧰 DIY 가구 키트 Android SDK, AWS SDK, iOS SDK
API (Application Programming Interface) 외부 서비스와 상호작용할 수 있도록 제공하는 인터페이스 🍽 음식 배달 앱 (앱과 식당을 연결) OpenAI API, Google Maps API, Twitter API

📌 요약하면?

라이브러리 → 기능별로 골라서 사용
프레임워크 → 개발 구조를 강제하는 틀
SDK → 특정 플랫폼에서 개발할 수 있도록 지원하는 도구 모음
API → 다른 서비스와 연결할 수 있도록 제공하는 인터페이스

728x90