프로그래밍 개념 정리

라이브러리와 패키지, 핸들러

Dr.Mlem 2025. 4. 4. 09:28
Q1.
네가 설명해준 내용을 보고 궁금해진 것이 있어.
1. 라이브러리와 패키지는 어떤 관계인거야?
2. 핸들러는 무엇을 하는 대상이지?
 
 
 
A1.
좋은 질문이야! Go를 포함한 대부분의 언어에서 자주 헷갈릴 수 있는 개념인데, 아주 간단하고 확실하게 설명해볼게.

🧱 1. 라이브러리 vs 패키지

📦 패키지 (Package)

  • 코드 묶음의 최소 단위야.
  • Go에서는 package xxx 라고 파일 맨 위에 써 있는 게 바로 패키지.
  • 예: fmt, json, fasthttp, handler 등
  • 폴더 하나 = 패키지 하나라고 보면 거의 맞아.
  • 하나의 패키지는 여러 .go 파일로 구성될 수 있어.

📚 라이브러리 (Library)

  • 여러 개의 패키지를 묶어둔 큰 단위로, 재사용 가능한 코드 집합이야.
  • 일반적으로 GitHub 같은 곳에 올라와 있는 오픈소스 프로젝트는 하나의 "라이브러리"라고 보면 돼.
  • 예: github.com/valyala/fasthttp는 하나의 라이브러리이고, 그 안에는 여러 패키지(fasthttp, reuseport, 등)가 있을 수 있어.

요약하면:
패키지 = 소스코드 묶음 (폴더 단위)
라이브러리 = 여러 패키지를 포함할 수 있는, 재사용 가능한 코드 모음 (배포 단위)


⚙️ 2. 핸들러 (Handler)

📌 정의

  • Go에서 "핸들러"는 요청(request)을 받아서 처리하는 함수야.
  • 특히 HTTP 서버에서, 어떤 URL 경로가 호출되었을 때 그 요청을 처리하는 함수를 핸들러라고 해.

예시

func sumApi(ctx *fasthttp.RequestCtx) {
    // 클라이언트가 보낸 POST body를 파싱해서
    // num1 + num2 값을 계산하고 응답으로 돌려주는 함수
}

이 sumApi가 바로 핸들러 함수야.
즉, 이 함수는 /sum 요청이 들어왔을 때 "그 요청을 처리하는 담당자" 역할을 해.


🔁 정리 요약

용어 설명
패키지 Go 코드 묶음. package로 시작하고, 주로 폴더 단위.
라이브러리 여러 패키지를 포함하는 재사용 가능한 코드 모음. GitHub 등에서 배포됨.
핸들러 HTTP 요청을 받아서 처리하는 함수. /sum 같은 경로와 연결됨.

더 궁금한 거 있으면 이어서 물어봐도 좋아! 예제도 곁들여줄 수 있어.

'프로그래밍 개념 정리' 카테고리의 다른 글

임시 JWT 비교  (0) 2025.04.11
상수와 리터럴 차이  (0) 2025.04.04
리터럴? Literal? literally?  (0) 2025.04.01
self 인스턴스와 변수의 스코프  (0) 2025.04.01
이중 포인터, 포인터 배열  (0) 2025.03.31