📌 Spring에 대해 알아보자!

핵심 기술 : Spring DI 컨테이너, AOP, 이벤트 등등

웹 기술 : Spring MVC, Spring WebFlux

데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원

기술통합 : 캐시, 이메일, 원격접근, 스케줄링

테스트 : 스프링 기반 테스트 지원



🚀 Spring Boot

  • 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용
  • 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성
  • Tomcat 같은 웹 서버를 내장하기 때문에 별도의 웹 서버를 설치하지 않아도 됨
  • 손쉬운 빌드 구성을 위한 starter 종속성을 제공
  • 스프링과 외부 라이브러리 자동 구성 (왠만한 라이브러리는 버전에 대해 고민하지 않아도 자동으로 구성해준다.)



🚀 Spring 핵심 개념

  • 1️⃣ 스프링은 자바언어기반의 프레임워크고 자바 개발 간소화 의 목표를 갖고있다.
  • 2️⃣ 자바의 가장 큰 특징은 바로 객체 지향 언어 라는것이다. (POJO)
  • 3️⃣ 스프링은 객체 지향언어가 가진 강력한 특징을 살려내는 프레임워크다. (DI 컨테이너, IOC 컨테이너)
  • 4️⃣ 스프링은 결국 좋은 객체 지향 애플리케이션 을 개발자들이 개발할 수 있도록 도와주는 프레임워크다.



👉 좋은 객체 지향과 객체 지향 프로그래밍

• 객체지향 프로그래밍(Object Oriented Programming)은 문제를 여러 개의 객체 단위로 나눠 작업하는 방식을 말합니다.

• 객체지향 프로그래밍의 가장 큰 특징은 클래스를 이용해 연관 있는 처리부분(함수)과 데이터 부분(변수)를 하나로 묶어 객체(인스턴스)를 생성해 사용한다는 점이다.

• 객체지향 프로그래밍에서는 프로젝트를 독립적인 객체 단위로 분리해서 작업할 수 있기 때문에 여러 개발자와 협업해 규모가 큰 프로젝트를 진행할 수 있으며 유지보수측면도 뛰어나다는 장점이 있다.

• 객체지향의 특성 중 다형성은 역할과 구현으로 구분하여 이를 만족하는 가장 큰 범위라고 생각한다.

• 객체 설계시, 역할(인터페이스)를 먼저 부여하고, 그 역할을 수행하는 구현 객체로 만들어서 분리하면 자동차 -> 전기차,기름차 등등.. 처럼 사용하는 운전자는 운전법만 알면되기때문에 자동차의 입장에서 확장성 이 크다.

• 근데 위에서 말한 역할인 인터페이스가 깨지면 클라이언트, 서버 모두 큰 변경이 발생한다. 그러므로,인터페이스를 안정적으로 잘 설계하는게 가장 중요하다고 한다.



👉 Spring과 객체 지향

• 다형성이 가장 중요하다.
• Spring은 다형성을 극대화해서 이용하게 도와준다.
• Spring의 IOC, DI 는 다형성을 활용해서 역활과 구현을 편리하게 다룰수 있도록 지원하는것이다.



👉 참조 : 인프런의 김영한님 강의, [블로그]Web Club, [남궁성님의 자바의정석]


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

개인메모 추가 공부할 내용 : 객체지향의 특징 다시 정리, 자바 언어의 다형성

카테고리:

업데이트: