코드스테이츠_국비교육/[Section2]

34.04_[Spring] Spring Framework 주요 특징&POJO_22.10.11

생각없이 해도 생각보다 좋다. 2022. 10. 11. 10:59

Spring Framework

>주요 특징

  • POJO(Plain Old Java Object)
  • IoC(Inversioin of Control)/DI(Dependency Injection)
  • AOP(Aspect Oriented Programming)
  • PSA(Portable Service Abstraction)
Spring Framework는 POJO 프로그래밍을 지향하는 Framework이다!!

>Spring Framwork Triangle

: Spring Framwork의 주요 특징을 잘 나타내는 모식도


POJO(Plain Old Java Object)

>의미

: 자바 이외의 것들에 종속되지 않는다.

: 다른 기술, 다른 라이브러리에 종속되지 않는다.

: 기본 자바의 기술로만 개발을 한다.

>IoC/DI, AOP, PSA

: 이들은 POJO 프로그래밍 코드를 작성하도록 Spring이 제공하는 기술이다.

>필요한 이유

: 특정 조건(기술 및 환경 등)에 종속이지 않아야 코드의 재사용(확장)이 가능하고 유지보수가 쉽다.

: 어떤 조건에도 쉽게 사용할 수 있는 유연한 코드가 된다.

: 객체지향적인 설계를 제한없이 적용할 수 있다. (중요)

//처음엔 힘들더라도 코드가 객체지향스러운가에 대한 고민을 하는 습관은 나중에 큰 도움이 될 것!

POJO 프로그래밍을 지키지 않은 코드일 경우

예를 들면, 기술A는 너무나도 편리한 기능을 제공한다.
기술A는 심지어 클래스도 만들어주고 메서드도 만들어주는 등 많은 것을 제공한다.
그래서 기술A가 제공하는 클래스, 메서드 등으로 모든 코드를 짰다.

그런데 나중에 기술A보다 하이레벨 기술인 기술B가 나왔고, 대부분의 프로그램들은 기술B를 사용하는 추세이다.
나도 기술B를 사용하기 위해 내가 짰던 코드에 기술B를 적용시키려 했다.
하지만, 기술A의 것들로 만들어져 있는 코드였기 때문에 다시 자바 문법에 맞추어 새로 코드를 싹 뜯어 고쳐야만 기술B를 적용할 수 있었다.
그래서 수 일 동안 야근을 했다.