-
[WEB:SPRING] 개요 - 프레임워크와 스프링비전공자 공부일기/:: WEB & Front-End 2019. 8. 29. 10:32
2019.08.29
자바 개발을 하면서 신규 개발자들이 장벽에 부딪히는 이유가 있다.
현업에서는 자바 표준 기술을 공부할 때는 없었던 다양한 종류의 디자인 패턴*, 개발 방법론, 프레임워크 등을 사용해서 개발해야 하는 현장의 필요성 때문이다.
*cf* 객체지향프로그램에서는 보편적으로 23가지의 '디자인 패턴' (출처저서: the Gang of Four)이 있다.
Framework 개요 및 개발환경 구성
Framework 프레임워크란? = 아키텍쳐(architecture)
- 뼈대, 골격, 구조
- 코딩에 기본이 되는 구조
- Framework 자체는 완전한 애플리케이션 소프트웨어가 아니다! 반 정도 완성된 골격일 뿐, 살은 개발자가 붙여야 함
- Framework는 Open-Closed 원칙을 그대로 따르고 있음
Framework 분류
■ 계층에 따른 분류
- 시스템 인프라스트럭쳐
- 미들웨어 통합
- 엔터프라이즈 애플리케이션
■ 확장 방법에 따른 분류
- 화이트박스
- 블랙박스
■ 처리영역에 따른 분류
- 기능
- 지원
- 통합
대표적인 자바 기반의 Framework
■ 웹 어플리케이션 관련
- SpringMVC
- Struts
- WebWork
■ 데이터베이스 관련
- iBatis
- Hibernate
- SpringDAO
■ 비즈니스관련
- Spring
** 스프링은 확장성이 좋다!
** 데이터베이스 관련해서 스프링은 자동맵핑이 되지 않는다. 웹용으로 쓸 때는 현업은 보통 mybatis를 쓴다. 그러나 웹이 아닌 일반 애플리케이션 쓸 때는 Hibernate가 훨씬 좋다.(그리고 하이버네이트도 자동맵핑 되긴 됨)
Spring Framework 스프링 프레임워크의 특징
스프링 프레임워크 Spring Framework란?
스프링 프레임워크는 Anyframe을 구성하고 있는 자바EE 기반(신뢰할 수 있는 - 대형)의 오픈 소스 Framework이다.
개발적인 측면 외에도, 단순성, 테스트용이성, 느슨한 결합성이라는 장점이 있다.
Spring Framework 특징
1. 크기와 부하가 비교적 경량이다.
2. 제어 역행(IoC - Inversion of Control) 기술 >> 애플리케이션의 결합도 느슨하게 하여 유지보수 쉽게 함
3. 관점 지향(AOP - Aspect-Oriented Programming) 프로그래밍을 위한 풍부한 지원(모듈단위 프로그램이기 때문)
4. 애플리케이션 객체의 생명주기와 설정을 포함하고 관리 >> 일종의 Container라고 할 수 있음
5. 간단한 컴포넌트(모듈)로 복잡한 애플리케이션을 구성하고 설정 가능
** DAO 클래스나 Service 클래스는 직접 만들어줘야 함. 그 외에는 스프링이 지원해준다!
** 스프링의 단점이라고 한다면, 이미 완성된 부분이 많으므로 독창적인 것을 만들고자 하면 애매할 수 있음
Spring Framework 스프링 프레임워크의 구성
Spring Core : 빈 컨테이너 Bean Container (빈=/empty ㅋㅋㅋ)
스프링 코어를 이용해 빈을 만들어주는 기술로, DL / DI 라는 기술이 있다.
** DL : Dependency Lookup; 의존성 검색 / DI : Dependency Injection; 의존성 주입
Spring AOP : AOP는 관점 지향 프로그래밍이란 뜻
Spring DAO : 스프링도 DAO를 지원한다. 그러나 스프링은 외부에 있는 프레임워크를 불러다 쓸 수 있으므로 hibernate나 mybatis를 사용하길 권장
Spring Context : ???
Spring Web : spring context를 이용해서 spring web이 지원될 수 있도록 해준다.(context가 부모, web이 자식) / multipart resolver - 파일같은 걸 받았을 때
Spring Web MVC : ???
'비전공자 공부일기 > :: WEB & Front-End' 카테고리의 다른 글
[WEB:SPRING] 로그 Log 살펴보기 (0) 2019.08.29 [WEB:Spring] 스프링 시작하기 - 설치, 환경설정 셋팅 (0) 2019.08.29 [Web:] mybatis 마이바티스 XML DTO, DAO 만들기 (0) 2019.08.22 [WEB:] mybatis 마이바티스 시작하기 - 설치 및 설정 (2) 2019.08.21 [WEB:] JSTL (0) 2019.08.19