개발을 시작할 때 우리는 '도구'를 사용합니다. 이 도구는 크게 라이브러리와 프레임워크로 나뉩니다. 둘 다 "공통 기능들의 모음"이지만, 가장 큰 차이점은 '제어권'이 누구에게 있느냐입니다.
📚 라이브러리 (Library)
- 정의: 공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것입니다.
- 특징: 개발자가 코드의 전체 흐름을 주도합니다. 개발자는 필요할 때마다 라이브러리를 호출(Call)해서 사용합니다.
- 규칙: 폴더명, 파일명 등에 대한 특별한 규칙이 없어 상대적으로 자유롭습니다.
- 비유: 필요할 때마다 꺼내 쓰는 '망치'나 '드라이버' 같은 연장통입니다.
🏗️ 프레임워크 (Framework)
- 정의: 프로그램의 기본 구조(뼈대)가 이미 잡혀있는 반제품 형태의 모듈입니다.
- 특징: 프레임워크가 코드의 흐름을 주도합니다. 프레임워크가 정해둔 규칙(약속)에 맞춰 개발자가 그 안의 빈칸을 채워 넣으면, 프레임워크가 개발자의 코드를 호출(Call)합니다.
- 규칙: 폴더명, 파일명 등에 대한 규칙이 있으며, 라이브러리보다 더 엄격합니다.
- 비유: 이미 설계가 끝난 '집의 뼈대(Frame)'입니다. 우리는 그 안에서 인테리어를 할 뿐입니다.
📐 디자인 패턴 (Design Pattern)
- 정의: 프로그램을 설계할 때 자주 발생했던 문제점들을 객체 간의 상호 관계 등을 이용해 효과적으로 해결할 수 있도록, 하나의 '규약(Convention)' 형태로 만들어 놓은 모범 사례(Best Practice)입니다.
- 쉽게 말해, "이런 문제 상황에서는 보통 이렇게 풀더라"하는 선배 개발자들의 검증된 해결책 모음집입니다.
'Computer Science > Design Pattern' 카테고리의 다른 글
| ⛓️ 프록시 패턴과 프록시 서버 (1) | 2025.09.16 |
|---|---|
| 📡 옵저버 패턴 (Observer Pattern) (0) | 2025.09.09 |
| ⚔️ 전략 패턴 (Strategy Pattern) (0) | 2025.09.09 |
| 🏭 팩토리 패턴 (Factory Pattern) (0) | 2025.09.09 |
| 💡 싱글톤 패턴 (Singleton Pattern) (0) | 2025.09.09 |