[코드스테이츠] S2.Unit7 회고

JinYoung Choi·2023년 2월 4일
0
post-thumbnail

드디어! 스프링 첫 시간 설렘반 걱정반 두근두근 거렸다. 개념정도를 이해하는 정도라 아직 할만하네?.. 자세한건 S3부터 배운다고 한다. 아직은 겁먹지 않기로..

보이는 라디오 세션도 진행했다. 이게 뭘까? 라는 궁금증을 갖고 들었는데 엄청나게 유익한 정보들을 많이 얻었다. 우리에게 지금 가장 좋은 정보는 취업 정보가 아닌가! 각종 회사의 종류와 좋은 회사를 고르는 팁등 달달한 꿀들을 많이 얻었다. 나도 아마 올해는 취업을 하겠지?..

이번주는 이상하게 마음이 어수선했다 맨날 집에서 코드만 보고 있어서 그런가 주말엔 나가서 사람좀 만나고 와야겠다..

Spring Framework

Framework - 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것

Framework의 장점

  • 효율적으로 코드를 작성 가능
  • 정해진 규약이 있어 애플리케이션을 효율적으로 관리할 수 있음

Framework의 단점

  • 사용하고자 하는 Framework에 대한 학습이 필요
  • 자유롭고 유연한 개발이 어렵다 - Framework에 규약을 벗어나기가 어렵기 때문

Library - 애플리케이션을 개발하는 데 사용되는 일련의 데이터 및 프로그래밍 코드

Library vs Framework

  • Library는 애플리케이션 흐름의 주도권이 개발자에게 있는 반면, Framework은 애플리케이션 흐름의 주도권이 개발자가 아닌 Framework에 있다.

Spring Framework을 배우는 이유

  • 개발 생산성을 향상 시키고 애플리케이션의 유지 보수를 용이하게 한다

POJO - Java로 생성하는 순수한 객체

POJO 프로그래밍 - POJO를 이용해서 프로그래밍 코드를 작성하는 것 ( but 기본적인 규칙은 정해 주어야함 )

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

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

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

POJO 프로그래밍 코드를 작성하기 위해서 Spring에서는 세가지 기술을 지원

  • IoC/DI
  • AOP
  • PSA

IOC(제어의 역전) - 애플리케이션 흐름의 주도권이 뒤바뀐 것
DI(의존성 주입) - 클래스들 간의 강한 결합을 느슨한 결합으로 만들어주고, 객체들 간의 느슨한 결합은 요구 사항의 변경에 유연하게 대처할 수 있도록 해준다.
AOP(관심 지향 프로그래밍) - 애플리케이션의 핵심 업무 로직에서 로깅이나 보안, 트랜잭션 같은 공통 기능 로직들을 분리하는 것
PSA(Portable Service Abstraction) - 어떤 서비스를 이용하기 위한 접근 방식을 일관된 방식으로 유지함으로써 애플리케이션에서 사용하는 기술이 변경되더라도 최소한의 변경만으로 변경된 요구 사항을 반영하기 위함이다.

Spring Boot

Spring Boot을 사용해야 하는 이유

  • XML 기반의 복잡한 설계 방식 지양
  • 의존 라이브러리의 자동 관리
  • 애플리케이션 설정의 자동 구성
  • 프로덕션급 애플리케이션의 손쉬운 빌드
  • 내장된 WAS를 통한 손쉬운 배포
profile
백엔드 취준생

0개의 댓글