일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 스프링 쇼핑몰 프로젝트
- 정규표현식
- 스프링 프로젝트
- 스프링 프로젝트 기본 설정
- arraylist
- 스프링 업로드
- 로그인 기능
- 파일 업로드
- 삭제 구현
- 로그아웃 기능 구현
- spring 쇼핑몰
- Bcrypt
- 스프링 파일 삭제
- 스프링 포트폴리오
- 인증번호 전송
- 스프링 쇼핑몰
- spring 프로젝트
- 쇼핑몰 프로젝트
- 스프링 HikariCP
- 스프링 메일 전송
- oracle 설치방법
- 스프링 게시판 구현
- 스프링 이미지
- 이미지 출력
- 스프링 프로젝트 설정
- 쇼핑몰 포트폴리오
- ResponseEntity
- BCrypt 적용
- 회원가입 기능
- 스프링 게시판
Archives
- Today
- Total
Kim VamPa
스프링 프레임워크(Spring Framework)란? 본문
728x90
반응형
"코드로 배우느 스프링 웹 프로젝트"책을 개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.
목표
- '스프링 프레임워크'가 무엇인지 말 할 수 있고, 해당 프레임워크의 특징 및 장단점을 설명할 수 잇는 것을 목표로합니다.
목차
1. 프레임워크란?
2. 스프링 프레임워크
1. 프레임워크(Framework)
"뼈대나 근간을 이루는 코드들의 묶음"
- 개발자는 각 개개인의 능력차이가 크고, 따라서 개발자 구성에 따라서 프로젝트의 결과 차이가 큽니다.
=> 이러한 상황을 극복하기 위한 코드의 결과물이 '프레임워크' 입니다. - 프레임워크 이용 한다는 의미 : 프로그램의 기본 흐름이나 구조를 정하고, 모든 팀원이 이 구조에 자신의 코드를 추가하는 방식으로 개발 한다.
- 프레임워크를 사용하면 크게 다음 3가지의 장점이 있습니다.
1. 실력이 부족한 개발자라 허다러도 반쯤 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능하다.
2. 일정한 품질이 보장된 결과물을 얻을 수 있다.
3. 개발 시간을 단축할 수 있다. - 프레임워 워크 종류 :
Spring(Java의 웹 프레임워크), Django(Python의 웹 프레임워크), Flask(Python의 마이크로 웹 프레임워크), Ruby on rails(Ruby의 웹 프레임워크), .NET Framework, Node.js(Express.js 프레임워크) 등등.
2. 스프링 프레임워크(Spring Framework)
자바 플랫폼을 위한 오픈 소스 애플리케이션
- 여러 프레임워크들 중 자바(JAVA)를 기반으로 하는 프레임워크 이다.
- 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크 이다.
- 스프링의 다른 프레임워크와 가장 큰 차이점은 다른 프레임워크들의 포용입니다. 이는 다시말해 기본 뼈대를 흔들지 않고, 여러 종류의 프레임워크를 혼용해서 사용할 수 있다는 점입니다.
스프링 프레임워크 특징
- POJO(Plan Old Java Object)기반의 구성
- 코드를 개발할 때 개발자가 특정한 라이버리나 컨테이너의 기술에 종속적이지 않다는 것을 의미합니다
- 쉽게말해 Java코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용할 수 있다는 의미 합니다. - 의존성 주입
- 의존성 주입은 하나의 객체가 다른객체의 의존성을 제공하는 테크닉입니다.
- "어떤 객체가 필요한 객체를 외부에서 밀어 넣는다."는 의미입니다.
- "의존성 주입"을 사용하여 갖는 장점은 '주입을 받는 입장에서는 어떤 객체인지 신경 쓸 필요가 없다.', '어떤 객체에 의존하든 자신의 역할은 변하지 않는다.'입니다.
- "ApplicationContext"라는 존재가 필요한 객체들을 생성하고, 피룡한 객체들을 주입하는 역할을 해주는 구조 입니다.
- "ApplicationContext가 관리하는 객체들을 "빈(Bean)"이라고합니다.
- 빈과 빈 사이의 의존 관계를 'xml 설정', '어노테이션 설정', 'Java 설정 방식'을 통해서 처리 할 수 있습니다. - 관점지향프로그래밍(AOP)의 지원
- 대부분의 시스템에서 '보안'이나 '로그', '트랜잭션'과 같이 무엇을 실행을 하든 반드시 처리가 필요한 부분이 있습니다. 이를 '횡단 관심사(cross-concern)'라고 합니다.
- AOP는 이러한 횡단 관심사를 모듈로 분리하는 프로그래밍 패러다임입니다.
- 이 패러다임을 통해서 반복적인 코드를 줄이고, 핵심 비즈니스 로직에만 집중을 할 수 잇습니다. - 높은 확장성
- 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능합니다.
- 따라서 수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도용이합니다.
* POJO : Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속도니 "무거운" 객체를 만들게 된 것에 반발해서 사용하게 된 용어.
* JAVA EE(Java Platform, Enterprise Edition) : 자바를 이용한 서버측 개발을 위한 플랫폼.(<=> Java SE : 일반적으로 사용되는 PC에서 동작하는 표준 플랫폼)
스프링 프레임워크 사용이유(장점)
- 정형화 되어 있기 때문에 일정수준의 품질을 기대 할 수 있습니다.
- 개발 후 유지보수 및 기능의 확장성에서도 품질을 보장합니다.
- '전자표준 프레임워크'기 때문에 해당 프레임워크의 수요가 큽니다.(한국 한정)
스프링 프레임워크 단점
- 내부에서 많은 기능을 가졌기 때문에 상당히 무겁습니다.
- 분명 많은 기능을 제공해서 편리하지만, 이 기능들을 습득하기위해 상당한 노력과 시간이 필요합니다.
Reference
- "코드로 배우는 스프링 웹 프로젝트"(남가람북스)
- https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%94%84%EB%A7%81_%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC
Date
- 2020.03.24 작성
728x90
반응형
'스프링 프레임워크' 카테고리의 다른 글
[스프링]의존성 주입(Dependency Injection) (0) | 2020.03.30 |
---|---|
[Spring]Lombok 개념 및 설치방법 (0) | 2020.03.28 |
Comments