Spring boot

(스프링 부트 입문)스프링 블로그 프로젝트 만들어보기

mynote6676 2025. 6. 20. 23:12

 

gitignore 설정

https://www.toptal.com/developers/gitignore/

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

 

 

dependencies {

	// JPA 의존성 설정 (ORM -- 자바진형 --> JPA(스펙 : 인터페이스) --> 하이버네이트)
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

	implementation 'org.springframework.boot:spring-boot-starter-mustache'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	runtimeOnly 'com.h2database:h2'
	runtimeOnly 'com.mysql:mysql-connector-j'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

 

| 플러그인 설치 - 머스태치

 

| 환경 설정 확인

 

 

LF와 CRLF의 차이점 운영체제별 줄바꿈 문자

 

windows: CRLF(Carriage Return + Line Feed) \r\n

Linux/Mac: LF (Line Feed) \n

LF 방식으로 통일하는 것이 현재 개발 업계 표준

 

 

| devtools 활성화 설정

 

 

 

| git  로컬 생성

 

1. 애플리케이션 구성 파일이란?

application.properties 파일에서 application.yml

application.yml

spring:
  profiles:
    active:
      - dev

application-dev.yml

 

server:
  servlet:
    encoding:
      charset: utf-8
      force: true
  port: 8080

 

application-prod.yml

server:
  servlet:
    encoding:
      charset: utf-8
      force: true
  port: 5000

 

Spring Boot 애플리케이션은 실행 시 다양한 설정( 서버 포트, 데이터베이스 연결 정보, 로깅 등)이 필요합니다. 이러한 설정은

애플리케이션 구성 파일에 정의됩니다. Sprong Boot에서는 두 가지 형식의 구성 파일을 지원합니다.

 

-application.properties: 키-값 쌍으로 작성된 전통적인 형식

-application.yml:YAML 형식을 사용하며, 계층적 구조로 가독성이 높다.

YML은 들여쓰기(보통 2칸 공백)를 엄격히 지켜야 한다. 탭(tab)은 허용되지 않으며, 오타나 들여쓰기
오류는 애플리케이션 제대로 동작 할 수 없다.

 

2.설정 파일을 여러 개로 나누는 이유?

실무에서 애플리케이션은 다양한 환경(개발, 테스트,프로덕션)에서 실행됩니다. 각 환경마다 필요한 설정이 다릅니다.

 

- 개발 환경(dev): 로컬에서 디버깅하며 빠른 개발을 위해 포트 8080, 로컬 데이터베이스 사용.

- 프로덕션 환경(prod): 실제 서비스를 위해 포트 5000, 클라우드 데이터베이스 사용.

 

모든 설정을 하나의 파일에 작성하면 환경별로 설정을 변경하기 어렵고, 실수로 프로덕션 설정을 로컬에서 실행할

위험이 있습니다. . 이를 해결하기 위해 Spring Boot프로파일(profile) 기능을 제공합니다.

 

3.프로파일이란?

- 프로파일은 특정 환경에 맞는 설정 그룹을 정의하는 메커니즘이다.

- application.yml은 기본 설정을 정의하고, 환경별 설정은 application-{proflie}.yml파일에 작성한다.

 

-파일명 규칙과 약속

application.yml           # 기본 설정 파일
application-{profile}.yml # 프로파일별 설정 파일 

-----------------------------------------

application-dev.yml: 개발(development)환경 설정
application-prod.yml: 운영(production)환경 설정
application-test.yml: 테스트 환경 설정
application-local.yml: 로컬 개발 환경 설정

 

4.logback 설정하기

Logback은 Spring Boot의 기본 로깅 프레임워크로, 애플리케이션의 동작 정보를 기록(로그)하는 데 사용됩니다. 

로그는 디버깅, 모니터링, 문제 해결에 필수적이며, Logback은 빠르고 유연하며 설정이 간단한 장점이 있습니다.

Logback은 로그 메시지를 콘솔, 파일,또는 외부 시스템(예:데이터베이스)에 출력할 수 있으며, 로그 레벨을 통해 출력할

정보의 중요도를 제어합니다.

 

application-dev.yml (코드 추가)

server:
  servlet:
    encoding:
      charset: utf-8
      force: true
  port: 8080

# 2칸 공백, 탭키 절대 사용 금지!
# 로그 설정 (개발환경용)
# 로그 레벨의 개념
# ERROR > WARN > INFO > DEBUG > TRACE
logging:
  level:
    root: INFO           # 모든 라이브러리는 INFO 이상만 출력
    com.example: DEBUG   # 내 프로젝트는 DEBUG 이상 모두 출력    
​

 

각 레벨의 용도

ERROR : 시스템 에러, 예외 상황

WARN:경고 , 주의가 필요한 상황

INFO: 일반적인 실행 정보

DEBUG: 개발자용 상세 정보

TRACE: 가장 상세한 추적 정보

설정 없이 실행하면 : 모든 로그가 다 출력되어 중요한 정보를 놓칠 수 있습니다.

 

|사용 예시 코드 확인해 보기

@RestController
public class BlogController {
    // 해당 클래스에서 선언 
    private static final Logger log = LoggerFactory.getLogger(BlogController.class);
    
    @GetMapping("/blog")
    public String getBlog() {
        log.debug("메서드 시작");            // 개발할 때만 보고 싶음
        log.info("블로그 조회 요청");        // 항상 보고 싶음
        log.debug("데이터베이스 연결");      // 개발할 때만 보고 싶음
        log.error("에러 발생");             // 반드시 봐야 함
        return "블로그 데이터";
    }
}
728x90