함수, 클래스, 객체, 라이브러리, sdk, 모듈, 인스턴스, 컴포넌트, 프레임웍
정의: 어떤 입력을 받아서 정해진 작업을 수행한 뒤 결과를 돌려주는 코드 조각.
비유: “전기 밥솥의 밥 짓기 버튼” — 정해진 일을 수행.
예: print(), sum()
정의: 객체를 만들기 위한 설계도.
비유: “자동차를 만들기 위한 도면”
예: class Car:
클래스는 **속성(변수)**과 **기능(메서드)**을 한 묶음으로 정의.
정의: 클래스를 이용해 실제로 만들어진 실체(Instance).
비유: 도면(클래스)으로 실제로 만들어진 자동차 한 대가 객체.
예: my_car = Car()
정의: 클래스에서 만들어진 객체 그 자체를 ‘인스턴스’라고 부르며, 객체와 거의 동일한 의미.
차이:
객체(Object): 더 넓은 개념 (파이썬의 모든 것은 객체)
인스턴스(Instance): 특정 클래스에서 생성된 객체
정의: 관련된 함수, 변수, 클래스 등을 모아둔 파이썬 파일(.py).
비유: 공구함 하나.
예: math.py, random.py
정의: 여러 모듈을 묶어 놓은 큰 기능 묶음.
비유: 공구함(모듈) 여러 개가 들어있는 공구 세트.
예: NumPy, Pandas
정의: 특정 서비스를 개발할 때 필요한 도구 패키지 전체.
보통 라이브러리 + 문서 + 샘플 코드 + 도구들이 함께 제공.
비유: 가구 조립할 때 주는 “조립 설명서 + 전용 도구 + 나사 세트”.
예: Kakao Map SDK, Google Firebase SDK
정의: 소프트웨어를 구성하는 독립적이고 재사용 가능한 기능 단위.
프론트엔드나 앱 개발에서 자주 사용.
비유: 레고 블록 하나.
예:
버튼 컴포넌트
로그인 폼 컴포넌트
정의: 개발을 위한 기본 골격과 규칙을 제공하는 큰 구조.
라이브러리와의 차이:
라이브러리: 개발자가 필요할 때 꺼내 쓰는 도구
프레임워크: 구조와 흐름이 이미 정해져 있고 개발자가 그 틀에 맞추어 작성
비유: ‘집을 지을 수 있도록 미리 세워진 골조’
예: Django, Spring, React(컴포넌트 기반 프레임워크)