부트캠프 기록/Serction2

Spring Framework 특징

bbangduck 2023. 3. 26. 14:33

 

 

1. POJO(Plan Old Java Object)기반의 구성

pojo programming :  POJO를 이용해서 프로그래밍 코드를 작성하는 것

  •  Java나 Java의 스펙(사양)에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 한다 예) 특정 기술 상속
  • 특정 환경에 종속적이지 않아야 한다. 예) 톰캣 -> 제티

 

POJO 프로그래밍이 필요한 이유

  • 특정 환경이나 기술에 종속적이지 않으면 재사용 가능하고, 확장 가능한 유연한 코드를 작성할 수 있다.
  • 저수준 레벨의 기술과 환경에 종속적인 코드를 애플리케이션 코드에서 제거 함으로써 코드가 깔끔해진다.
  • 코드가 깔끔해지기 때문에 디버깅하기도 상대적으로 쉽다.
  • 특정 기술이나 환경에 종속적이지 않기 때문에 테스트 역시 단순해진다.
  • 객체지향적인 설계를 제한없이 적용할 수 있다.(가장 중요한 이유)

 

Spring은 POJO 프로그래밍을 지향하는 Framework

POJO 프로그래밍 코드를 작성하기 위해서 Spring에서 IoC/DI, AOP, PSA 기술 지원

 

2. DI(Dependency Injection) 지원

객체가 의존하는 또 다른 객체를 외부에서 선언하고 이를 주입받아 사용하는 것

 

3. AOP(Aspect Oriented Programming, 관점지향 프로그래밍) 지원

애플리케이션의 핵심 업무 로직에서 로깅이나 보안, 트랜잭션 같은 공통 기능 로직들을 분리하는 것

 

4. PSA(Portable Service Abstraction)

애플리케이션에서 특정 서비스를 이용할 때, 서비스의 기능을 접근하는 방식 자체를 일관되게 유지하면서 기술 자체를 유연하게 사용할 수 있도록 하는 것

서비스 추상화 예시 - JdbcConnector

JdbcConnector가 애플리케이션에서 이용하는 하나의 서비스가 됨

 

DbClientOracleJdbcConnector, MariaDBJdbcConnector, SQLiteJdbcConnector 같은 JdbcConnector 인터페이스의 구현체에 직접적으로 연결해서 Connection을 얻는 것이 아니라 JdbcConnector 인터페이스를 통해 간접적으로 연결되어(느슨한 결합) Connection 객체를 얻음

 

 

 

 

https://astrid-dm.tistory.com/449

https://tecoble.techcourse.co.kr/post/2021-04-27-dependency-injection/

 

 

'부트캠프 기록 > Serction2' 카테고리의 다른 글

아키텍처  (0) 2023.03.28
[Spring Core] AOP  (0) 2022.10.20
부트캠프 2달차 KPT 회고  (0) 2022.10.19
[Spring Core]  (1) 2022.10.15
[Spring Core] spring container 와 bean  (0) 2022.10.14