소프트웨어 개발에 필요한 기본 구조(틀)와 반복적으로 사용되는 기능들을 미리 정의해놓은 재사용 가능한 코드 집합으로, 개발자가 핵심 로직에 집중할 수 있도록 설계되어 있으며, 특정 아키텍처나 설계 원칙을 강제하여 일관성과 생산성을 높여줌
1. 제어의 역전(Inversion of Control, IoC)
2. 공통 기능 제공
3. 아키텍처 기반
4. 확장성과 유연성
| 구분 | 프레임워크 | 라이브러리 |
|---|---|---|
| 제어 흐름 | 프레임워크가 흐름을 제어 (IoC) | 개발자가 직접 흐름을 제어 |
| 사용 방식 | 정해진 구조에 맞게 사용 | 필요한 기능만 선택적으로 호출 |
| 예시 | Spring, Django, Angular | Lodash, jQuery, Apache Commons |
| 분류 | 프레임워크 | 설명 |
|---|---|---|
| 웹 애플리케이션 | Spring Framework | DI, AOP, MVC, 보안, 트랜잭션 등 포괄 지원 |
| 웹 MVC | Spring MVC | REST API 및 서버 렌더링 기반 웹 개발 지원 |
| 웹 부트스트랩 | Spring Boot | 설정 자동화, 내장 톰캣 등으로 개발 편의성 향상 |
| ORM | Hibernate, Spring Data JPA | 객체-관계 매핑, DB 연동 간소화 |
| SQL 매퍼 | MyBatis | SQL 기반의 유연한 매핑 처리 |
✳️ 정리
프레임워크는 개발자가 애플리케이션을 효율적으로 개발할 수 있도록
구조와 기능을 미리 정의해 둔 개발 틀임. 제어 흐름을 개발자 대신 관리하며,
반복적인 작업을 줄이고 일관된 아키텍처를 적용할 수 있도록 도와줌.
자바에서는 Spring, MyBatis, JPA와 같은 다양한 프레임워크가 실무에서 널리 활용됨.