개발하는 삶
[Spring] 스프링과 스프링부트 본문
스프링 부트 프로젝트 생성
- https://start.spring.io/
- 라이브러리 추가 : Spring Web 등
- Jar, War
- Jar : 내장서버(톰캣) 사용
- War : JSP 사용, 외부 서버에 배포하는 목적
스프링 프레임워크와 스프링 부트란?
- 자바 코드로 개발할 때 애너테이션 등을 이용해 객체간에 자동으로 의존관계를 형성해준다
- 스프링 프레임워크
- IoC 컨테이너(스프링 컨테이너, DI 컨테이너) : 개발자가 편하게 비즈니스 로직을 만드는 데 집중할 수 있도록 객체 생성부터 소멸까지 관리해주는 것(빈 생성/삭제, 의존관계 관리)
- ex. ApplicationContext (BeanFactory 상속) : 스프링의 핵심기능 하는 스프링 컨테이너(인터페이스)
- IoC, DI 는 객체간 결합도를 낮춰주는 기술
- 단점 : 초기 설정할게 많다. 스프링 버전에 따라 호환되는 의존성이 있고 아닌게 있다.
- IoC 컨테이너(스프링 컨테이너, DI 컨테이너) : 개발자가 편하게 비즈니스 로직을 만드는 데 집중할 수 있도록 객체 생성부터 소멸까지 관리해주는 것(빈 생성/삭제, 의존관계 관리)
- 스프링 부트
- 스프링보다 초기 설정이 쉽고 logback이 기본설정 되있고, 개발자들이 많이 사용하는 설정들이 spring-boot-web-starter 을 쓰면 해결된다.
- tomcat같은 was가 내장됨.
API
컴퓨터와 소프트웨어를 연결함 (두 소프트웨어 구성요소가 서로 통신할 수 있게 하는 메커니즘)
- ex) 휴대폰의 날씨앱은 API를 통해 이 시스템과 대화하고, 휴대폰에 매일 최신 날씨를 표시함
- 알아두면 좋은 기초지식▼
- 요즘은 JSON으로 클라이언트에게 데이터를 전달함.(JSON 버전으로 반환)
- 컴퓨터와 클라이언트가 정보를 주고받기 편해서 쓰는거
- XML : 태그닫기도 있고 복잡해보여서 코드가 지저분해짐
문법 오류에 취약이 덜함 - JSON : XML보다 좀더 간결하게 구조화된 정보를 제시함.
문법 오류에 취약함 (조금만 오타를 써도 에러걸림)
- XML : 태그닫기도 있고 복잡해보여서 코드가 지저분해짐
DI / DL
- DI (의존성 주입)
- 스프링 컨테이너가 클래스 간의 의존관계를 바탕으로
- DL (의존성 검색)
- 특정 컨테이너가 제공하는 API를 이용해 빈을 찾는 검색 방법
객체지향(OOP) 이란?
객체지향(OOP) 설계 5가지 원칙
- SRP (Single Responsibility Principle, 단일 책임 원칙)
- 클래스는 하나의 목적을 가지고 변경되어야 함.
- OCP (Open-Closed Principle, 개방 폐쇄 원칙)
- 클래스는 확장에는 열려있으나 변경에는 닫혀있어야 함
- LSP (Liskov Substitution Principle, 리스코프 치환 원칙)
- 상위 클래스를 하위 클래스로 변경해도 프로그램이 잘 동작되도록 해야함
- ISP (Interface Segregation Principle, 인터페이스 분리 원칙)
- 잘 사용하지않는 메서드에 의존하지 않기 위해 여러개의 인터페이스로 분리해야 함
- DIP (Dependency Inversion Principle, 의존관계 역전 원칙)
- 구현 클래스에 의존하지 않고, 인터페이스에 의존해야한다
다형성
VO, DTO, BO, DAO 란?
'Spring' 카테고리의 다른 글
[Spring] HTTP Method (0) | 2022.07.11 |
---|---|
[Spring] 웹서버 (0) | 2022.07.09 |
[Spring] 스코프, 프록시 (0) | 2022.07.06 |
spring (3) - 의존관계 주입 (0) | 2022.07.05 |
[Spring] 스프링 빈 (0) | 2022.07.03 |