Spring Framework

선뀰·2024년 1월 10일
0

Spring

목록 보기
1/9

- Spring Framework

웹 애플리케이션 개발을 위해 활용 된다.
작은 게시판 ~ Netflix 수준 적용 가능하다.

객체 지향 설계 원칙과 디자인 패턴
IoC, DI, AOP, Bean과 Context의 개념 필요하다.

Spring MVC, Spring Boot, Spring Cloud Gateway 등

  • Spring 장점
  1. 경량화 된 Java Framework
    2 POJO의 사용으로 재사용가능한 코드 개발 가능
  2. DI와 AOP 적용
  3. Transaction 관리의 편의성
  4. MVC 아키텍처의 지원
  5. 테스트가 용이함
  6. 높은 보안성
  • 끊임 없는 개선
    Spring Cloud 프로젝트, Spring Native 등
    SW의 유연한 확장성을 위해 다양한 기술들이 있다.

설정, 의존성 관리, 애플리케이션 모니터링, 서버 실행 등을 가볍고 빠르게 수행 가능

Framework 활용

프레임워크가 제공하는 계약(약속)을 하나 씩 이해한다.
기본 활용 -> 내부 동작 메커니즘 이해

Spring Boot의 주요 기능

  1. 설정 간편화를 위한 Auto Configuration

  2. 의존성 관리를 위한 Starter Project

  3. 배포 프로세스 간소화를 위한 Embedded WAS

  4. 애플리케이션의 모니터링을 위한 Actuator

웹 서비스 개발 및 운영 직군

  1. 퍼블리싱, 마크업 개발
    사용자에게 노출 되는 웹 화면 개발
    디자인을 HTML/CSS 코드로 옮기는 과정

  2. 프론트엔드 개발 (웹 프론트엔드, 모바일 앱)
    사용자 화면과 백엔드(DB)와 커뮤니케이션
    사용자의 입력/이벤트를 받아 백엔드로 전송 및 화면 노출

  3. 백엔드 개발 (REST API, 프론트엔드 호출 API)
    웹 서비스 비즈니스 로직을 처리
    브라우저에서 사용자 요청을 받아 적절하게 처리 (로직, DB연동, 외부시스템 연동(Mail, CRM 등)
    Spring, Django, Flask, NodeJS 등의 Web Framework를 활용하여 개발

  4. DB 설계, 운영
    웹 서비스의 데이터가 저장 될 DB 설계 및 DBMS 운영 관리
    RDBMS : Oracle, MySQL, PostgreSQL, MSSQL 등이 주로 사용
    NoSQL로는 MongoDB, Cassandra, DynamoDB, Elasticsearch 등이 사용된다.

  5. 시스템 엔지니어링, 인프라 엔지니어링
    웹 서비스가 운영 될 기간 인프라를 설계하고 운영
    서버, 네트워킹, 스토리지, 보안 등 설계, 구축, 운영
    온 프레미스 기반의 시스템 운영
    최근에는 클라우드 및 컨테이너 기반의 시스템으로 운영 전환 중이다

  • AWS, Azure, GCP, NCP
  • Docker, Kubernetes

Web Framework

  • Spring (Java)
  • Flask (Python)
  • Django (Python)
  • NodeJs (Javascript)
  • Laravel (PHP)
  • Rails (Ruby)

보안, HTTP 요청 처리, DB 연동 등의 웹 애플리케이션 공통 기능을 제공한다.
사용자는 프레임워크 위에 비즈니스 로직을 구현하여 웹 애플리케이션을 완성한다.

SW Framework

SW 개발을 효율적으로 하기 위한 반제품
특정 분야의 SW 개발에 필요한 공통 기능을 제공한다.
사용자는 Framework에 필요한 기능을 추가하여 전체 애플리케이션을 완성한다.

Library vs Framework

  • 공통점
    재사용 가능한 미리 구현 된 유용한 코드(모듈)을 제공한다.
    특정 목적을 위해 구현 된 코드를 사용 -> 효율적인 개발 가능

  • 차이점
    SW 제어의 흐름을 누가 결정하는 가 차이가 있다.
    Library : 제어권이 사용자의 코드에 있다 (사용자가 호출을 통해 사용)
    Framework : 제어권이 Framework에 있다. (프레임워크가 사용자가 작성한 코드를 사용)

Postman

REST API를 통합 관리하기 위한 SW이다.
Spring Boot로 구현하는 API를 테스트하기 위한 용도로 사용한다.
서버에 API를 요청할 수 있는 단위이다.

GET에 서버주소를 입력하면 응답 데이터를 받을 수 있다.

spring initializr

Spring Boot 프로젝트를 쉽게 구성할 수 있는 사이트
https://start.spring.io/

ide에서 생성하려면 -> 유료버전을 사용해야 한다. 때문에 사이트를 활용!

ADD DEPENDENCIES를 누르고 -> Spring Web을 선택하면 추가가 된다. -> GENERATE -> InteliJ에서 열면 된다.

  • controller 패키지를 생성한다. -> java 클래스 controller를 생성한다. ->@RestController를 추가하면 import가 자동으로 된다.
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에 들어간다.
크롬 브라우저가 네트워크를 통해 호출했다.

profile
공부 기록

0개의 댓글