20220817

jungkwanlee·2022년 8월 17일
0

코딩일지

목록 보기
99/108

1) 학습한 내용

오늘의 할 일

오늘은 팀 프로젝트 1차 마감 후 발표날이다. 그 동안, 각 팀에서 진행했었던 프로젝트들을 내놓고 서로 살펴보는 날이다. 기업 피드백이 들어오는 날까지는 그 동안, 나는 개인적인 코딩 공부나 했다.

프로그래밍은 단순히 책 몇 권을 읽는다고 끝내는 것이 아니라 계속되는 반복을 통해서 몸에 새기는 것이다. 게다가, 한국에서는 자바가 주류 언어이기 때문에 배워두는 것이 도움되기에 스프링부트을 배워야 했다.

스프링 프레임워크(Spring Framework)

스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 불린다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다.

스프링의 특징

스프링은 다른 프레임워크에 비해 다음과 같은 특징을 가진다.

  • 경량 컨테이너로서 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다.

  • 스프링은 Plain Old Java Object 방식의 프레임워크이다. 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다.

  • 스프링은 제어 반전(IoC : Inversion of Control)을 지원한다. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.

  • 스프링은 의존성 주입(DI : Dependency Injection)을 지원한다. 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.

  • 스프링은 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)을 지원한다. 따라서 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.

  • 스프링은 영속성과 관련된 다양한 서비스를 지원한다. iBATIS나 하이버네이트 등 이미 완성도가 높은 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공한다.

  • 스프링은 확장성이 높다. 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능하기 때문에 수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이하다.

출처

스프링부트

스프링부트는 기본적으로 스프링 프레임워크를 설정하는데 필요한 구성을 제거하는 스프링 프레임워크의 확장 버전이라 보면 된다. 개발자 입장에서 더 빠르고 효율적으로 프로그램 개발이 가능하도록 지원한다.

스프링과 스프링부트의 차이점

1) Embed Tomcat을 사용하기 때문에, (Spring Boot 내부에 Tomcat이 포함되어있다.) 따로 Tomcat을 설치하거나 매번 버전을 관리해 주어야 하는 수고로움을 덜어준다.

2) starter을 통한 dependency 자동화 :
아마 Spring 유저들이 가장 열광한 기능이 아닐까 싶다. 과거 Spring framework에서는 각각의 dependency들의 호환되는 버전을 일일이 맞추어 주어야 했고, 때문에 하나의 버전을 올리고자 하면 다른 dependeny에 까지 영향을 미쳐 version관리에 어려움이 많았다. 하지만, 이제 starter가 대부분의 dependency를 관리해주기 때문에 이러한 걱정을 많이 덜게 되었다.

3) XML설정을 하지 않아도 된다.

4) jar file을 이용해 자바 옵션만으로 손쉽게 배포가 가능하다.

Spring Actuaor를 이용한 애플리케이션의 모니터링과 관리를 제공한다.

2) 학습내용 중 어려웠던 점

자바는 비주얼 스튜디오 / 비주얼 스튜디오 코드보다는 이클립스 쪽에 많이 쓰여지기 때문에 이클립스를 따로 배워야할 필요도 있었고 스프링부트를 배우는데에 스프링부트4를 익혀야 했었다.

3) 해결방법

이번에 독학하는 데 도움이 된 사이트다.

점프 투 스프링부트

자바 스프링부트를 배우는데 점프 투 사이트를 많이 참고했었다.

4) 학습소감

1차 프로젝트 마감날때 나는 자바를 공부하는데 스프링부트를 독학했다. 개인적으로 자바를 배우는 이유는 한국에서 프로그래밍 언어 주류가 자바였기 때문이다. 한국에서는 자바의 비율이 높은 것은 마이크로소프트사 측에서 윈도우 업데이트가 있을 때, 대한민국 정부가 흔들린다는 말이 있다는 걸 떠올려보면 간단하다. 물론, 자바내지는 자바스크립트, 파이썬도 공부할 것이다. 프로그래밍은 많이 배워두면 좋은 것이다.

0개의 댓글

관련 채용 정보