모듈과 라이브러리 활용

in #krsuccess2 days ago

모듈과 라이브러리로 “복붙 말고 재사용” 하는 법

이번 편은 7장 두 번째 글이야. 앞에서 리팩토링을 해봤다면, 이번엔 “어? 이 기능 이미 누가 만들어놨는데?” 그 느낌을 제대로 써먹는 시간!
솔직히 말하면, 혼자서 모든 걸 처음부터 다 만들면… 나중에 진짜 체력이 갈려. (15년 전에 한 번 해봤는데, 그때는 “왜 이렇게 고생하지?” 싶더라)

Pexels


모듈이랑 라이브러리… 뭐가 달라?

처음엔 솔직히 헷갈려. 나도 그랬어. 딱 정리하면 이렇게 보면 돼.

  • 모듈(module): 기능(코드) 묶음. “이 파일에 기능이 들어있다” 같은 느낌
  • 라이브러리(library): 모듈들이 모여서 더 큰 묶음. “이걸 설치하면 도구가 한 세트로 있다” 느낌

그리고 둘 다 공통점은 하나야:
이미 만들어진 기능을 가져와서 내 프로그램에서 쓰는 것.

cliffsmith23


“그냥 코드 복붙”은 왜 나쁜 선택일까?

여기서 나름 한 가지 고백… 솔직히 나도 예전엔 복붙 엄청 했어.
근데 시간이 지나면 이런 문제가 생기지.

  • 수정할 때 여러 파일을 다 찾아가며 고쳐야 함
  • 비슷한 기능이 여기저기 중복으로 늘어남
  • 결국 “이게 뭐였더라?”가 됨… 아… 진짜로.

그래서 이번엔 방식이 달라져.
복붙 대신 가져오기(재사용)로 가자.

NoName_13


라이브러리 가져오기: 제일 많이 하는 동작

파이썬 기준으로 예시를 들게. (바이브 코딩 기초 흐름에 맞춰서 쉽게!)

1) 기본 형태: import

import math

print(math.sqrt(16))
  • math는 수학 계산 도구 모음 라이브러리
  • sqrt(16)은 제곱근 계산

이런 식으로 “필요한 기능이 이미 있다면 그걸 쓰는” 게 핵심이야.

Falkenpost


“이 함수만 쓰고 싶어!” → from import

가끔은 전체 라이브러리 말고 특정 함수만 쓰고 싶잖아? 그럴 땐 이렇게.

from math import sqrt

print(sqrt(25))

이렇게 하면 코드가 좀 더 짧아지고, 내가 쓰는 게 더 명확해져.


모듈 만들기: 내 기능도 라이브러리처럼 써보자

이번엔 반대로 “내가 만든 기능을 모듈로 만드는 법”도 같이 가자.
사실 여기부터가 진짜 실력으로 이어져.

예를 들어 utils.py라는 파일을 만든다고 치자. (이름은 마음대로!)

utils.py

def make_banner(title):
    return f"=== {title} ==="

그리고 메인 파일에서 가져와서 쓰기!

main.py

from utils import make_banner

print(make_banner("바이브 코딩"))

이게 뭐냐면…
내가 만든 기능을 ‘다음 프로젝트에서도 또’ 쓸 수 있게 되는 순간이야.

Pexels


“그대로 import가 안 돼요”… 그 흔한 실패담 (유머 버전)

여기서 어?, 아! 하고 넘어가지 말고… 나처럼 한 번쯤 겪는 일이 있어.

실패 1) 파일 위치 때문에 import가 안 되는 경우

예전에 내가 이런 실수를 했거든.

  • main.py는 한 폴더
  • utils.py는 다른 폴더

그랬더니 에러가 나더라.
결론은 간단해: 파이썬이 파일을 찾아야 import가 돼.

해결 팁: 같은 폴더에 두거나, 프로젝트 구조를 맞추면 대체로 끝!

실패 2) 이름이 겹쳐서 이상해지는 경우

내가 진짜 한 번…
list.py 같은 이름으로 파일을 만들어놓고, 파이썬 기본 list랑 충돌해서 “왜 이상하지?” 하다가 한참 헤맸어.

그래서 규칙 하나:

  • 파일 이름은 웬만하면 파이썬 내장 이름 같은 거랑 겹치지 않게!

언제 라이브러리를 쓰고, 언제 직접 만들까?

이 질문 진짜 중요해. 그냥 “무조건 가져오기”는 또 아니야.

내 기준으로는 이렇게 정하면 돼.

  • 라이브러리/모듈이 이미 있으면: 가져다 써라
  • 핵심 로직(내 서비스의 차별점)은: 내가 직접 만드는 게 맞다
  • 자주 바뀌거나 비슷한 코드가 반복되면: 모듈로 빼서 재사용해라

나름 이게 제일 현실적이더라.


오늘의 한 줄 결론

모듈과 라이브러리를 쓰면, 코드는 줄고 실수는 줄고 속도는 빨라진다.
그리고 다음 편으로 넘어가면… 그 재사용 감각을 기반으로 작은 프로젝트를 더 크게 확장할 수 있어.

Pexels


다음 편 예고: 7-3 작은 프로젝트 확장하기

다음 글에서는 “아, 이 기능을 모듈로 빼놨더니 편하네?” 같은 흐름을 이어서,
지금까지 만든 작은 기능들을 한 덩어리로 묶고 조금 더 커진 프로젝트로 확장해볼 거야.

준비됐지? 음… 나도 기대돼.
(이번엔 또 어떤 에러가 나올지, 사실은 그게 제일 궁금하다)