ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 : ???

    댓글

coding wanee