프레임워크에 대해서 확실하게 알아보자
개발 공부를 하면서 '프레임워크'라는 단어를 얼마나 듣게 될까?
그렇게 들어도 도대체 프레임워크가 무엇인지 정확하게 감이 잡히질 않는다.
기본 JDBC로 CRUD는 해보았으니, 스프링으로 넘어가기 위해 프레임워크가 무엇인지 잡고 넘어가보자.
프레임워크란?
프레임워크의 사전적 의미는 뼈대 혹은 틀로 이 의미를 소프트웨어 관점에서 접근하면 아키텍처에 해당하는 골격 코드이다.
개발을 할 때 전체 애플리케이션의 구조를 결정하는 것이 바로 아키텍처이고, 이 아키텍처에 해당하는 골격 코드를 프레임워크가 제공하는 것이다.
한마디로 프레임워크는 개발에서 기본이 되는 뼈대나 틀을 제공하는 아키텍처라고 이해하면 될 듯 하다. (프레임워크 = 아키텍처)
자, 여러명의 개발자에게 '게임'을 만들라고 한다면 과연 같거나 비슷하게라도 만들어내는 개발자들이 있을까?
A 개발자가 만든 게임을 B개발자에게 주고 수정하라고 해보자.
B는 A가 작성해 놓은 코드를 하나하나 찾아가며 수정을 해야 하는데, 함수 사용 방식에서부터 변수명까지 모두 B의 취향대로 되어 있을 것이기 때문에 그 수정을 하는 과정 새로운 게임을 만드는 것보다 더 험난해질 수 있다.
이렇게 중구난방이 될 수 있는 과정을 획일화 시켜 유지보수가 편하게 해주는 것이 바로 이 프레임워크인 것이다.
프레임워크의 장점
1. 빠른 구현 시간
- 프레임워크를 사용하면 아키텍처에 해당하는 골격 코드를 프레임워크에서 제공하기 때문에 개발자는 비즈니스 로직만 구현하면 되므로 제한된 시간에 많은 기능을 구현할 수 있다.
2. 쉬운 관리
- 같은 프레임워크가 적용된 애플리케이션들은 아키텍처가 같으므로 관리가 쉽다. 유지보수가 쉬워지는 것이다.
3. 개발자들의 역량 획일화
- 프레임워크를 사용하면 숙련된 개발자와 초급 개발자가 생성한 코드가 비슷해지므로 관리자 입장에서 개발 인력을 더 효율적으로 구성할 수 있다.
4. 검증된 아키텍처의 재사용과 일관성 유지
- 프레임워크를 이용하여 애플리케이션을 개발하면, 프레임워크에서 제공하는 아키텍처를 이용하므로 별다른 검증 없이 소프트웨어를 개발할 수 있고, 시간이 지나도 유지보수 과정에서 아키텍처가 왜곡되거나 변형되지 않는다.
자바 기반의 프레임워크
처리 영역 | 프레임워크 | 설명 |
Presentation | Spring(MVC) | MCV 아키텍처를 제공하는 UI Layer 프레임워크로 Spring 프레임워크에 포함되어 있다. |
Business | Spring(IoC,AOP) | Spring은 컨테이너 성격을 가지는 프레임워크로 Spring의 IoC와 AOP 모듈을 이용하여 Spring 컨테이너에서 동장하는 엔터프라이즈 비즈니스 컴포넌트를 개발할 수 있다. |
Persistence | JPA | JPA는 모든 ORM(Object Relation Mapping) 프레임워크의 공통 인터페이스를 제공하는 자바 표준 API이다. |
Mybatis | Mybatis는 Ibatis에서 파생된 프레임워크로서 개발자가 작성한 SQL 명령어와 자바 객체 (VO 혹은 DTO)를 매핑해주는 기능을 제공한다. |
'지식' 카테고리의 다른 글
[자바 필수] method의 4가지 형태 (리턴형과 매개변수) (0) | 2024.08.21 |
---|---|
[Spring] IoC와 AOP 이제는 이해해보자 (0) | 2024.06.25 |
[STS4] src/main/resources 의 static과 webapp의 차이 (2) | 2024.01.31 |
스프링 프레임워크란? (0) | 2024.01.23 |
Spring MVC 수행 흐름 (2) | 2024.01.15 |