프레임워크 (Framework)
- 프로젝트 개발에 효율적인 구조를 미리 만들어 놓은 것 (PPT 템플릿 같은 것)
- 개발자는 이미 완성된 구조에 빈칸을 채우는 느낌으로 프로젝트를 진행할 수 있다.
- 전체적인 구조에 대한 지식(디자인패턴 등)이 없는 초보 개발자들도 프로젝트에 투입할 수 있다는 장점이 있다.
- 일정 수준 이상의 품질이 항상 보장된다.
- 개발 비용이 많이 절감된다.
스프링 프레임워크
- 자바를 이용해 웹 애플리케이션 서버 개발을 효율적으로 진행하기 위한 프레임워크
- 다양한 디자인패턴 및 기능들이 미리 구현되어 있기 때문에 효율적으로 개발을 진행할 수 있다.
스프링의 특징
1. POJO (Plain Old Java Object)
- JSP처럼 새로운 공부가 필요한 문법들의 사용을 지양한다.
- 백엔드에 JSP 코드가 섞이는 것은 바람직하지 않으면 순수 JAVA코드로 작성되어야 한다.
- 익숙치 않은 별도의 API를 최대한 배제하여 개발자의 혼란을 최소화한다.
2. 의존성 주입 (DI, Dependency Injection)
- 생성자를 아예 사용하지 말자. (생성자로 인해 유지보수 비용이 증가)
- 프로젝트 내부의 생성자 사용을 모두 제거하여 객체간의 결합도를 낮출 수 있다.
※ 결합도가 높다 - 하나 수정하면 빨간 줄이 100개 뜬다.
※ 결합도가 낮다 - 객체 하나 수정해도 거의 문제가 안생긴다.
스프링 프로젝트의 기본 구조
- src/main/java : 자바 코드를 작성하는 곳
- src/main/resources : 자바 코드를 실행할 때 필요한 자원들을 저장하는 곳
- src/test/java : 작성한 자바 코드에 대한 테스트 코드를 작성하는 곳
- src/test/resources : 테스트 코드를 실행할 때 필요한 자원들을 저장하는 곳
- Maven Dependencies : 이 프로젝트가 의존하고 있는 다른 프로젝트들 목록
- webapp/resources : 웹 정적 자원들을 보관하는 곳
- webapp/WEB-INF/spring/appservlet/servlet-context.xml : appServlet의 초기화 파라미터들을 정의하는 곳 (지역 초기화 파라미터, ServletConfig)
- webapp/WEB-INF/spring/root-context.xml : 전역 초기화 파라미터들을 정의하는 곳 (전체 초기화 파라미터, ServletContext)
- webapp/WEB-INF/views/ : 뷰 페이지(.jsp)들을 보관하는 곳
- webapp/WEB-INF/web.xml : 서버 설정 파일
- pom.xml : Maven Project에서 사용하는 설정 파일
'Spring' 카테고리의 다른 글
[Spring] Lombok (0) | 2023.07.04 |
---|---|
[Spring] Log4j (0) | 2023.07.04 |
[Spring] JUnit (0) | 2023.07.04 |
[Spring] 메이븐(Maven) (0) | 2023.07.04 |
[Spring] 의존성 주입 (0) | 2023.07.03 |