본문 바로가기
스파르타 내일배움캠프/TIL(Today I learned)

25.04.02 TIL - Spring Framework, Spring Boot, Gradle

by pandastic 2025. 4. 2.
반응형

 

 

 

목차

     

     

    1. Spring Framework

    1. Spring Framework 등장 배경

    • 많은 사용자의 요청을 한꺼번에 처리해야하는 경우 → 서버의 성능, 신뢰성, 보안 중요.
    • 이러한 복잡한 부분을 해결해주는 개발 환경 제공 필요 → Spring Framework 등장.
    • 개발자들은 비즈니스 로직에 집중 가능해짐.

     

    2. Spring Framework 특징

    • 애플리케이션의 다양한 구성 요소를 유연하게 연결 및 관리.
    • Spring Framework는 누구나 사용할 수 있는 오픈소스.
    • 모듈화되어 있어 필요에 따라 특정 기능만 선택적 사용 가능.
    •  Java의 객체 지향 언어 특징을 살려낸 프레임워크.
      • 캡슐화
      • 상속
      • 추상화
      • 다형성

     

    2. Spring Boot

         - Spring Framework 기반 간편하고 신속하게 애플리케이션을 개발할 수 있도록 도와주는 도구.

     

    1. Spring Boot의 등장 배경

    • Spring Framework의 복잡하고 방대한 초기 설정과 구성 파일.
    • 스프링 애플리케이션 개발 및 배포를 위해서는 여러 가지 의존성 관리와 서버 설정 필요.
    • 최소한의 노력으로 스프링 애플리케이션을 쉽게 개발하고 배포할 수 있는 방법 필요.

     

    2. Spring Boot의 특징

    • 자동 구성 기능 제공 → 복잡한 설정을 직접 처리할 필요 X, 기본 설정으로도 비즈니스 로직 집중 가능.
    • 내장 WAS(Tomcat) 제공 → 별도의 서버 설정 없이 바로 실행 가능.
    • spring-boot-starter-web을 빌드 관리 도구에 추가하면 웹 애플리케이션에 필요한 모든 종속성과 설정 자동 구성됨.
    • 라이브러리 버전을 명시하지 않아도 호환 가능한 버전 자동 설정 ( 100% 해결해주지는 않음!! )

     

    3. Gradle

    • Java와 유사한 문법 구조
    • Groovy 기반의 스크립트 언어
    • 다양한 소프트웨어를 빌드할 수 있는 유연한 빌드 자동화 도구.

     

    ※ 빌드

        - 소스 코드를 컴퓨터가 실행 가능한 파일로 변환해주는 작업.

     

    ※ 빌드 자동화 도구

        - 빌드, 라이브러리 관리, 테스트, 배포 등을 자동화하여 수행.

     

    1. Gradle 특징

    1. 유연성
      • 복잡한 빌드 시나리오를 처리할 수 있는 유연한 시스템 제공.
      • 빌드 스크립트를 통해 다양한 빌드 작업 정의, 필요한 경우 커스터마이징.
    2. 성능
      • Build Cache
        • 빌드 결과물을 캐싱하여 재사용.
        • 라이브러리 의존성을 캐싱하여 재사용.
      • 점진적 빌드
        • 마지막 빌드 호출 이후 변경된 부분만 빌드.
        • 변경되지 않은 부분은 캐시 결과를 검색해 재사용.
      • 데몬 프로세스
        • 다음 빌드 작업을 위해 백그라운드에서 대기하는 프로세스.
        • 초기 빌드 이후부터는 빌드 실행 시 초기화 작업을 거치지 않음.
    3. 멀티 프로젝트 빌드 지원
      • 공통으로 사용하는 클래스를 모듈로 만들어 독립적인 각 프로젝트에서 사용할 수 있도록 함.
    4. 설정 주입 방식
      • 필요한 설정을 직접 프로젝트에 주입하는 방식.
      • 공통되는 정보는 묶어서 한 번에 주입 가능.
      • 프로젝트별로 설정을 다르게 주입 가능.

     

    2. build.gradle

    1. 플러그인
      • 특정 작업을 위해 모아 놓은 task들의 모음집.
    2. 의존성 관리
      • 프로젝트에서 사용하는 라이브러리나 패키지 관리.
      • 의존성 설정
        • 라이브러리를 추가하는 시점을 설정 가능.
        •  Implementation
          • 컴파일, 런타임 시점 모두에서 사용.
        •  compileOnly
          • 컴파일할 때만 사용되고 런타임 때에는 사용하지 않음.
        •  runtimeOnly
          • 런타임 때만 사용.
        •  testImplementation
          • 테스트할 때만 사용.
    3. repositories
      • 라이브러리가 저장된 위치 정의, 저장소에서 라이브러리 가져옴.

     

     

    반응형