오늘은 하루종일 잠이 너무 많이와서 정보처리기사 공부도 많이 못하고 조금 일찍 집에 왔다.
패스트캠퍼스 강의는 뭘 들어볼까 하다가, 오늘은 자바 복습도 하기 싫고 스프링에서 뭘 배우는지 맛만 보기로 했다.
수강신청할때 강의 구성이 정확히 어떤식으로 되어있는지 몰랐는데,
지금 보니 강사님도 한분이 아니고 자바 기본강의 이후에는 3가지의 스프링부트 프로젝트를 하고,
그 다음에는 스프링 프로젝트 과정이 있었다.
나는 스프링과 스프링부트의 차이점도 모르는 상태여서 오늘은 스프링부트로 무엇을 만들 예정인지,
강의 몇개를 먼저 보면서 앞으로 배우게 될 것들을 훑어보았다.
스프링부트 강의는 아샬 강사님이 담당이셨다.
이분은 유튜브로 여러번 미리 본 적이 있어서 반갑고 친근했다.
강의구성도 깔끔해 보여서 기대가 된다.
프로젝트의 필요성을 설명하는 부분들
어떤 결과물이 나올 지 궁금해서 미리 맨 뒤 강의를 엿봤다.
레스토랑 이름과 주소를 간단히 저장하고 편집할 수 있는 프로그램인듯 하다.
이런 간단한 프로젝트들을 해내고 나면 나중에 정말 필요한 것을 만들 수 있겠지?
새로운 것을 배울 생각을 하니 기분이 좋다!
<추가 공부>
Spring 과 Spring Boot 차이점
출처: https://monkey3199.github.io/develop/spring/2019/04/14/Spring-And-SpringBoot.html
웹 애플리케이션 서버를 만들 때 스프링을 이용하는게 가장 일반적일만큼 대한민국 개발자의 스프링 의존도는 상당하다. 요즘에는 Node.js 나 Django 로도 많이 개발을 하지만 가장 익숙한건 아무래도 스프링인 듯 하다. 이번 포스트에서는 스프링이 정확히 어떤 것인지 그리고 스프링 부트와 어떤 차이가 있는지 알아보고자 한다.
Spring?
스프링, 정확하게는 스프링 프레임워크이다. 먼저 스프링에 대해 이해하기 위해서는 프레임워크가 무엇인지, 라이브러리와의 차이가 어떤건지 알고 가는게 가장 중요하다. 라이브러리는 간단하게 특정 기능을 하는 코드 뭉치이다. 개발자는 자기 코드에 라이브러리를 포함시키고 원하는 기능을 사용해서 개발을 할 수 있다. 더욱 간단하게는 원하는 기능을 하는 함수를 콜해서 사용하는 것으로 라이브러리를 활용한다. 프레임워크는 라이브러리를 포함하는 개념이고, 개발자가 만든 코드를 사용한다. 코드를 어떻게 실행하는지는 코드를 사용하는 프레임워크에 달려있다.
그렇다면, 스프링 프레임워크라는 것은 무엇일까? 스프링 프레임워크는 여러 라이브러리를 제공하고, 그것을 활용해서 개발한 프로그램을 동작시킨다. 스프링 프레임워크의 위키백과 정의는 다음과 같다.
스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 불린다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다.
출처: 위키백과
스프링 사이트에서는 스프링 프레임워크가 인프라와 관련된 내용을 애플리케이션 레벨에서 설정하도록 해줌으로써 개발자가 코드로 대부분을 컨트롤 할 수 있게끔 지원한다고 설명한다. 즉, 개발자가 코드 안에 애플리케이션 동작에 대한 내용을 기술하면 스프링 프레임워크가 이를 해석해서 동작하는 것이다. 스프링을 사용하는 가장 일반적인 예로는 Servlet API 가 있다. 개발자는 API를 처리할 클래스를 정의하고 이것이 Servlet API 를 위한 클래스임을 표시(어노테이션 활용)한다. 그 이후 프로그램을 실행하면 스프링은 API 요청이 들어오면 해당 클래스를 이용해서 처리한다. 개발자가 Servlet에 관련된 것을 개발하지 않아도 되며, 데이터 바인딩, 객체 생성 등 왠만한 것들은 스프링이 알아서 해준다. 이런 편한 점 때문에 많은 개발자들이 스프링 프레임워크를 사용하고 있다.
Spring Boot?
스프링 프레임워크는 기능이 많은만큼 환경설정이 복잡한 편이다. 이에 어려움을 느끼는 사용자들을 위해 나온 것이 바로 스프링 부트다. 스프링 부트는 스프링 프레임워크를 사용하기 위한 설정의 많은 부분을 자동화하여 사용자가 정말 편하게 스프링을 활용할 수 있도록 돕는다. 스프링 부트 starter 디펜던시만 추가해주면 바로 API를 정의하고, 내장된 탐캣이나 제티로 웹 애플리케이션 서버를 실행할 수 있다. 심지어 스프링 홈페이지의 이니셜라이저를 사용하면 바로 실행 가능한 코드를 만들어준다. 실행환경이나 의존성 관리 등의 인프라 관련 등은 신경쓸 필요 없이 바로 코딩을 시작하면 된다. 그리고 바로 그것이 스프링의 키 포인트이다.
마무리
스프링 프레임워크는 라이브러리가 아닌 프레임워크이다. 단순히 코드를 제공하는 것이 아니라 프로그래밍 방법을 제공한다. 이렇게 프로그래밍 방법을 제공하고 개발자가 그에 맞추어 개발하는 방식은 어쩌면 너무 딱딱하고 획일화된 프로그램을 만들 수 있다. 하지만 특정 목적을 위한 프로그램을 만드는 데에 있어서 정형화된 방식은 효율성을 극대화 시켜준다. 그리고 스프링을 처음 사용하거나 웹 애플리케이션 서버를 간단히 만들 때 스프링 부트로 개발을 한다면 정말 빠르고 간편하게 프로그램을 만들 수 있다.
Java 웹 개발 마스터 올인원 패키지 Online. | 패스트캠퍼스
자바 기초문법부터 프로젝트 실습까지 Java 문법부터 스프링/스프링부트, 트렌디한 기술인 JPA까지 모두 배우는 온라인 강의입니다.
www.fastcampus.co.kr
'언어공부 > JAVA&SPRING' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 5회차 미션 (0) | 2020.08.14 |
---|---|
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 4회차 미션 (0) | 2020.08.13 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 2회차 미션 (0) | 2020.08.11 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 1회차 미션 (0) | 2020.08.10 |
객체 지향 프로그래밍이란? (0) | 2020.07.08 |
댓글