라이브러리(Library)
라이브러리는 재사용 가능한 코드의 집합으로, 특정 기능이나 작업을 수행하기 위한 함수, 클래스, 모듈 등으로 구성된다.
개발자가 필요한 기능을 사용하기 위해 라이브러리를 호출하고, 해당 기능을 활용하여 원하는 작업을 수행할 수 있다.
라이브러리는 개발자가 제어 흐름을 직접 작성하고, 필요한 시점에 라이브러리의 함수를 호출하여 사용한다.
예시: NumPy, pandas, requests 등
프레임워크(Framework)
프레임워크는 애플리케이션의 구조와 흐름을 정의하는 개발 환경으로, 개발자에게 특정한 규칙과 패턴을 제공하며, 애플리케이션 개발에 필요한 기본 구조를 제공한다.
개발자는 프레임워크에서 정의한 규칙에 따라 애플리케이션의 코드를 작성하고, 프레임워크가 제공하는 기능과 도구를 활용하여 개발한다.
프레임워크는 개발자에게 일정한 구조를 강제함으로써 애플리케이션의 개발과 유지보수를 편리하게 만들어준다.
예시: Django, Flask, TensorFlow 등
라이브러리와 프레임워크는 서로 다른 목적과 사용 방법을 가지고 있다.
라이브러리는 필요한 기능을 가져와 사용하고, 프레임워크는 애플리케이션의 구조와 규칙을 정의하여 개발자가 그에 맞춰 코드를 작성한다는 점에서 차이가 있다.
NumPy
NumPy는 과학적이고 수학적인 연산을 위한 파이썬 라이브러리로, 수치 계산과 데이터 분석, 머신 러닝 등에 널리 사용된다.
다차원 배열과 행렬을 다루는 기능을 제공하며, 선형 대수, 푸리에 변환, 난수 생성 등 다양한 수학 함수를 지원한다.
import numpy as np
# 다차원 배열 생성
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 배열의 형태 출력
print(arr.shape) # 출력: (2, 3)
# 배열의 합 구하기
total = np.sum(arr)
print(total) # 출력: 21
pandas
pandas는 데이터 조작과 분석을 위한 라이브러리로, 데이터 구조인 DataFrame을 사용하여 데이터를 처리하고 조작하는 기능을 제공한다.
데이터의 필터링, 정렬, 그룹화, 집계 등 다양한 작업을 편리하게 수행할 수 있으며, 데이터 분석 및 전처리 작업에 널리 사용되며, 데이터베이스와의 연동도 지원한다.
import pandas as pd
# DataFrame 생성
data = {'Name': ['John', 'Emma', 'Mike'],
'Age': [28, 32, 30]}
df = pd.DataFrame(data)
# 데이터 필터링
filtered_df = df[df['Age'] > 29]
# 데이터 그룹화 및 집계
grouped_df = df.groupby('Name').mean()
# 결과 출력
print(filtered_df)
print(grouped_df)
Flask
Flask는 경량화되고 간단한 웹 애플리케이션 개발을 위한 마이크로 웹 프레임워크이다.
유연하고 확장 가능한 웹 애플리케이션을 구축하는 데 사용되며, URL 라우팅, 템플릿 엔진, 세션 관리, 데이터베이스 통합 등의 기능을 제공한다.
작은 규모의 프로젝트나 API 개발에 적합한 프레임워크이다.
from flask import Flask, render_template
app = Flask(__name__)
# 라우팅
@app.route('/')
def home():
return 'Welcome to Flask!'
# 템플릿 엔진 사용
@app.route('/greet/<name>')
def greet(name):
return render_template('greet.html', name=name)
if __name__ == '__main__':
app.run()
Django
Django는 완전한 기능을 갖춘 웹 애플리케이션 개발을 위한 프레임워크이다.
MVC 패턴에 기반하여 웹 애플리케이션의 구조를 정리하고 개발을 용이하게 하며, 데이터베이스 관리, 사용자 인증, 세션 관리, 관리자 인터페이스 등 다양한 기능을 내장하고 있다.
대규모 웹 애플리케이션 및 복잡한 기능을 필요로 하는 프로젝트에 적합한 프레임워크이다.
import tensorflow as tf
# 신경망 모델 구축
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
# 모델 학습
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=10)
# 모델 추론
predictions = model.predict(x_test)
TensorFlow
TensorFlow는 머신 러닝과 딥 러닝을 위한 오픈소스 라이브러리이다.
그래프 기반의 수치 연산을 사용하여 다양한 수학적 연산을 수행하며, 신경망 모델의 구축, 학습, 추론을 위한 다양한 API와 도구를 제공한다.
이미지 분류, 음성 인식, 자연어 처리 등 다양한 머신 러닝 작업에 사용된다.
import tensorflow as tf
# 신경망 모델 구축
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
# 모델 학습
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=10)
# 모델 추론
predictions = model.predict(x_test)