웹 애플리케이션 개발을 위해 활용 된다.
작은 게시판 ~ Netflix 수준 적용 가능하다.
객체 지향 설계 원칙과 디자인 패턴
IoC, DI, AOP, Bean과 Context의 개념 필요하다.
Spring MVC, Spring Boot, Spring Cloud Gateway 등
설정, 의존성 관리, 애플리케이션 모니터링, 서버 실행 등을 가볍고 빠르게 수행 가능
프레임워크가 제공하는 계약(약속)을 하나 씩 이해한다.
기본 활용 -> 내부 동작 메커니즘 이해
설정 간편화를 위한 Auto Configuration
의존성 관리를 위한 Starter Project
배포 프로세스 간소화를 위한 Embedded WAS
애플리케이션의 모니터링을 위한 Actuator
퍼블리싱, 마크업 개발
사용자에게 노출 되는 웹 화면 개발
디자인을 HTML/CSS 코드로 옮기는 과정
프론트엔드 개발 (웹 프론트엔드, 모바일 앱)
사용자 화면과 백엔드(DB)와 커뮤니케이션
사용자의 입력/이벤트를 받아 백엔드로 전송 및 화면 노출
백엔드 개발 (REST API, 프론트엔드 호출 API)
웹 서비스 비즈니스 로직을 처리
브라우저에서 사용자 요청을 받아 적절하게 처리 (로직, DB연동, 외부시스템 연동(Mail, CRM 등)
Spring, Django, Flask, NodeJS 등의 Web Framework를 활용하여 개발
DB 설계, 운영
웹 서비스의 데이터가 저장 될 DB 설계 및 DBMS 운영 관리
RDBMS : Oracle, MySQL, PostgreSQL, MSSQL 등이 주로 사용
NoSQL로는 MongoDB, Cassandra, DynamoDB, Elasticsearch 등이 사용된다.
시스템 엔지니어링, 인프라 엔지니어링
웹 서비스가 운영 될 기간 인프라를 설계하고 운영
서버, 네트워킹, 스토리지, 보안 등 설계, 구축, 운영
온 프레미스 기반의 시스템 운영
최근에는 클라우드 및 컨테이너 기반의 시스템으로 운영 전환 중이다
보안, HTTP 요청 처리, DB 연동 등의 웹 애플리케이션 공통 기능을 제공한다.
사용자는 프레임워크 위에 비즈니스 로직을 구현하여 웹 애플리케이션을 완성한다.
SW 개발을 효율적으로 하기 위한 반제품
특정 분야의 SW 개발에 필요한 공통 기능을 제공한다.
사용자는 Framework에 필요한 기능을 추가하여 전체 애플리케이션을 완성한다.
공통점
재사용 가능한 미리 구현 된 유용한 코드(모듈)을 제공한다.
특정 목적을 위해 구현 된 코드를 사용 -> 효율적인 개발 가능
차이점
SW 제어의 흐름을 누가 결정하는 가 차이가 있다.
Library : 제어권이 사용자의 코드에 있다 (사용자가 호출을 통해 사용)
Framework : 제어권이 Framework에 있다. (프레임워크가 사용자가 작성한 코드를 사용)
REST API를 통합 관리하기 위한 SW이다.
Spring Boot로 구현하는 API를 테스트하기 위한 용도로 사용한다.
서버에 API를 요청할 수 있는 단위이다.
GET에 서버주소를 입력하면 응답 데이터를 받을 수 있다.
Spring Boot 프로젝트를 쉽게 구성할 수 있는 사이트
https://start.spring.io/
ide에서 생성하려면 -> 유료버전을 사용해야 한다. 때문에 사이트를 활용!
ADD DEPENDENCIES를 누르고 -> Spring Web을 선택하면 추가가 된다. -> GENERATE -> InteliJ에서 열면 된다.
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
@GetMapping(value = "/")
public String hello() {
return "<h1>Hello Spring Boot!! </h1>";
}
}
-> Main을 실행하고 -> 포트번호 localhost:8080에 들어간다.
크롬 브라우저가 네트워크를 통해 호출했다.