스프링이란?

park·2023년 3월 28일

EJB 엔티티빈 --> 하이버네이트 --> JPA

스프링 데이터 ▶ 스프링 데이터 JPA, 데이터 베이스 CRUD를 쉽게 도와준다.
스프링 세션 ▶ 세션 기능을 편리하게 사용할 수 있도록
스프링 시큐리티 ▶ 보안과 관련된 부분 지원
스프링 Rest Docs ▶ API 문서랑 테스트를 묶어서 문서화를 편리하게 해준다.
스프링 배치 ▶ 배치 처리에 특화된 기술
스프링 클라우드 ▶ 클라우드에 특화된 기술


외부 라이브러리 버젼에 대해서 신경쓰지 않도록 스프링 부트가 도와준다. 기본적으로 스프링 부트는 스프링 프레임워크를 사용해서 도와주는 기술이다. 자체적으로 사용하는건 아니다.


스프링의 핵심 개념?


좋은 객체 지향 프로그래밍?

객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시간에서 벗어나 여러개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메세지를 주고받고, 데이터를 처리할 수 있다.

객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다.

  • 추상화
  • 캡슐화
  • 상속
  • 다형성

다형성!

역할과 구현으로 세상을 구분

자동차가 바뀌어도 운전자에게 영향을 주지 않는다. 자동차 필요한 기능과 역할은 자동차 인터페이스에서 다 구현을 했기 때문이다.

운전자는 Client
운전자는 자동차 내부 구조에 대해 몰라도 된다. 다른 대상으로 변환이 가능하고 새로운 것이 나와도 기존 기능이 사용가능하면 무한한 자동차를 구현할 수 있다. 무한히 확장!

즉, 클라이언트에게 영향을 주지 않고 새로운 기능을 제공할 수 있다.


배우는 대체가 가능하다. 유연하고 변경에 용이하다.


일반 상속관계도 다형성이 가능하다.
역할이 더 중요하다.

클라이언트: 요청, 서버: 응답
수 많은 객체 클라이언트와 객체 서버는 서로 협력 관계를 가진다.

자바 언어의 다형성

다형성으로 인터페이스를 구현한 객체를 실행 시점에 유연하게 변경할 수 있다.
클래스 상속 관계도 다형성, 오버라이딩 적용 가능

의존 한다 == 재를 알고 있다

객체지향의 꽃은 다형성, 스프링은 이런 다형성을 극대화해서 이용할 수 있게 도와준다. 스프링은 다형성을 편리하게 이용할 수 있게 지원한다.

0개의 댓글