개발하는 삶

[Spring] 스프링과 스프링부트 본문

Spring

[Spring] 스프링과 스프링부트

삶_ 2022. 6. 27. 19:23

 

 

 

스프링 부트 프로젝트 생성

  • https://start.spring.io/ 
  • 라이브러리 추가 : Spring Web 등
  • Jar, War
    • Jar : 내장서버(톰캣) 사용
    • War : JSP 사용, 외부 서버에 배포하는 목적

 

 

스프링 프레임워크와 스프링 부트란?

  • 자바 코드로 개발할 때 애너테이션 등을 이용해 객체간에 자동으로 의존관계를 형성해준다
  • 스프링 프레임워크
    • IoC 컨테이너(스프링 컨테이너, DI 컨테이너) : 개발자가 편하게 비즈니스 로직을 만드는 데 집중할 수 있도록 객체 생성부터 소멸까지 관리해주는 것(빈 생성/삭제, 의존관계 관리)
      •  ex. ApplicationContext (BeanFactory 상속) : 스프링의 핵심기능 하는 스프링 컨테이너(인터페이스)
      •  
    • IoC, DI 는 객체간 결합도를 낮춰주는 기술
    • 단점 : 초기 설정할게 많다. 스프링 버전에 따라 호환되는 의존성이 있고 아닌게 있다.
  • 스프링 부트
    • 스프링보다 초기 설정이 쉽고 logback이 기본설정 되있고, 개발자들이 많이 사용하는 설정들이 spring-boot-web-starter 을 쓰면 해결된다.
    • tomcat같은 was가 내장됨.

 

 

 

 

API

컴퓨터와 소프트웨어를 연결함 (두 소프트웨어 구성요소가 서로 통신할 수 있게 하는 메커니즘)

  • ex) 휴대폰의 날씨앱은 API를 통해 이 시스템과 대화하고, 휴대폰에 매일 최신 날씨를 표시함
  • 알아두면 좋은 기초지식▼ 
  • 요즘은 JSON으로 클라이언트에게 데이터를 전달함.(JSON 버전으로 반환)
  • 컴퓨터와 클라이언트가 정보를 주고받기 편해서 쓰는거
    • XML : 태그닫기도 있고 복잡해보여서 코드가 지저분해짐
      문법 오류에 취약이 덜함
    • JSON : 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