스프링 프레임워크
서버에서 동작하는 자바기반의 웹 어플리케이션 -> 기술 : 스프링 프레임워크 (오픈소스 기반의 기술)
Framework가 어떤것인지, 그리고 Framework와 Library의 차이
Framework=우리가 웹을 만들기 위한 구조, 틀을 제공 자바-Collections Framework(배열을 활용한 기능의 뼈대를 제공)
Framework를 사용하는 장점과 단점
장점 : 효율적인 코드 작성 가능, 정해진 규약이 있기에 관리가 편함
단점 : Framework의 학습이 필요, 자유롭고 유연한 개발이 어렵다.
프레임워크 vs library
Library는 애플리케이션을 개발하는 데 사용되는 일련의 데이터 및 프로그래밍 코드입니다.
->기능을 미리 구현해놓은 집합체(메소드)
자동차가 제작을 한다면
프레임워크 : 자동차의 뼈대 // 쉽게 수정 불가능 (애플리케이션 흐름의 주도권이 개발자가 아닌 Framework)
library : 자동차의 부품 // 쉽게 수정 가능 (애플리케이션 흐름의 주도권이 개발자)
= Spring Framework의 핵심 개념인 IoC(Inversion Of Control, 제어의 역전)
개발자가 짜 놓은 코드내에서 필요한 기능이 있으면 해당 라이브러리를 호출해서 사용하는 것이 바로 Library입니다.
Spring Framework 특징(POJO)
- POJO(Plan Old Java Object)기반의 구성- POJO라는 것을 IoC/DI, AOP, PSA를 통해서 달성할 수 있다는 것을 의미 POJO = Java로 생성하는 순수한 객체
- POJO 프로그래밍이 필요한 이유 : 객체지향적인 설계를 제한없이 적용할 수 있다.
- POJO 프로그래밍 코드를 작성하기 위해서 Spring에서는 밑의 세가지 기술을 지원
POJO 프로그래밍시 주의사항
- Java나 Java의 스펙(사양)에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 한다.
- 특정 환경에 종속적이지 않아야 한다.
(1) IoC/DI
- IoC(Inversioin of Control)/DI(Dependency Injection- Applicion 흐름의 주도권을 String이 갖는다. // IoC = 제어의 역전- DI (의존성 주입) IoC의 개념을 구체화 시킨
- 의존성 (직접 객체를 생성) -> 의존성 주입 : 생성자를 통하여 객체 생성 = 객체를 외부에서 주입 받고 있음 ( 직접 객체를 생성 하지 않는다 )
(2) AOP
- AOP(Aspect Oriented Programming, 관점지향 프로그래밍) 지원 = 관심 지향 프로그래밍공통적으로 사용되는 기능들 = 공통 관심 사항( 보안 ) | 서비스의 주 역할과 기능 = 핵심 관심 사항 (커피 주문, 메뉴)AOP라는 것은 애플리케이션의 핵심 업무 로직에서 로깅이나 보안, 트랜잭션 같은 공통 기능 로직들을 분리하는 것
(3) PAS
- PSA(Portable Service Abstraction) 추상화 된 상위 클래스를 일관되게 바라보며 하위 클래스의 기능을 사용하는 것이 바로 일관된 서비스 추상화(PSA)의 기본 개념- 서비스의 기능을 접근하는 방식 자체를 일관되게 유지하면서 기술 자체를 유연하게 사용할 수 있도록 하는 것을 PSA(일관된 서비스 추상화)라고 한다.
SpringFamework를 쓰는 이유.
객체 지향 설계 원칙에 잘 맞는 재사용과 확장이 가능한 애플리케이션 개발 스킬을 향상 할 수 있고 보다 나은 성능과 서비스의 안전성이 필요한 복잡한 기업용 엔터프라이즈 시스템을 제대로 구축하기 위한 능력을 기를 수 있다.
자바 웹 어플리케이션 제작 방식의 진화
JSP 방식 Java Server Page ( 프론트 코드 , 서버측 코드가 한 곳에 섞여 있는 개발 방식 - HTML 문서 안에 Java 코드)
Servlet 방식 ( 서버측 코드는 별도의 자바 class로 관리 - 코드 자체가 너무 길다, 데이터베이스 접근 불가능(단점))- Java 코드 안에 HTML 문서
서블릿 방식의 코드에서는 클라이언트의 요청에 담긴 데이터를 꺼내오는 작업을 개발자가 직접 코드로 작성 해야되고, 캐릭터셋도 지정 해주어야 하는데 반면에 Spring MVC 방식의 코드에서는 눈에 보이지 않지만 그런 작업들을 Spring에서 알아서 처리해줍니다.
spring MVC 방식 (단점 : 구성 파일 설정이 복잡함 -> Spring Boot 탄생 )
Spring Boot ( 구성 파일 설정 간략, 대신 처리 ) 사용자는 비지니스 로직만 작성하면 됨.
'부트캠프 > 코드스테이츠 백엔드부트캠프 43기' 카테고리의 다른 글
코드스테이츠 백엔드 부트캠프 43기 (36일차-스프링 프레임워크 DI) (0) | 2023.02.06 |
---|---|
코드스테이츠 백엔드 부트캠프 43기 (35일차-스프링 부트) (0) | 2023.02.03 |
코드스테이츠 백엔드 부트캠프 43기 (32,33일차-SQL) (0) | 2023.02.01 |
코드스테이츠 백엔드 부트캠프 43기 (31일차-SQL) (0) | 2023.01.31 |
코드스테이츠 백엔드 부트캠프 43기 (30일차-HTTP) (0) | 2023.01.27 |
댓글