백엔드 데브코스 TIL 14-15일차

Inchang Choi·2022년 4월 8일
0

백엔드 데브코스 TIL

목록 보기
11/30
post-thumbnail

학습목표

강의를 들으며 내가 알고 있는 내용을 점검하고,

새로 배운 내용을 정리하며,

궁금한 내용을 알아가며 학습해나가는 것을 목표로 합니다.


Application 속성관리

Environment

ApplicationContext에서 제공하는 기능 중 하나인 Environment는 속성을 정의하게 해주고 다양한 속성을 소스로 부터 가져올 수 있게 인터페이스를 제공해 줍니다.

Properties

프로퍼티는 애플리케이션에서 사용하는 여러가지 설정 값들을 애플리케이션 밖이나 안에서 따로 정의 해놓은 파일을 의미합니다.

만약 프로퍼티가 중복이면 우선순위가 있습니다.

${EV}로 환경변수도 실행가능 합니다.

Profile

스프링 profile은 애플리케이션 설정 일부를 분리하여 특정 환경에서만 사용 가능 하게 할 수 있는 기능입니다.

@Profile(”{profile_name”})으로 사용합니다.

YAML

YAML은 XML, JSON이 데이터 직렬화에 주로 쓰이며, YAML을 ‘가벼운 마크업 언어'로 사용하고 있습니다.

스프링에서는 프로퍼티를 작성할 때 주로 사용됩니다.

@ConfigurationProperties

스프링부트에서 외부 속성을 통해 별도의 빈을 만들 수 있게 지원해주는 어노테이션입니다. @ConfigurationProperties 를 이용하여 특정 그룹의 속성을 모델링 할 수 있고 빈으로 등륵해서 사용할 수 있습니다.

Resource

스프링 애플리케이션을 만들다 보면 외부 리소스를 읽을 필요가 있습니다.

스프링은 Resource와 ResourceLoader 인터페이스를 통해 다양한 경로에서 리소스를 읽어와서 하나의 API로 제공해 줍니다.

Logging

시스템 작동 상태의 기록, 보존, 이용자의 습성 조사 및 시스템 동작의 분석 등을 하기 위해 작동 중의 정보를 기록해 둘 필요가 있습니다. 이 기록을 만드는 것을 Logging이라고 하며, 로그 시스템의 사용에 관계된 일련의 event를 시간의 경과에 따라 기록하는 것 입니다.

Java Logging Framework

  • java.util.logging
  • Apache Commons logging
  • Log4J
  • Logback
  • SLF4J(Simple Logging Facade for Java)

SLF4J

SLF4J란 Logging Framework를 추상화해 놓은 것 입니다.

많은 서브 시스템을 거대한 클래스로 만들어 감싸 편리한 인터페이스를 제공해주는 Facade Pattern을 사용합니다.

SLF4J는 로깅 라이브러리에 종속되지 않고 바인딩 모듈을 통해 로깅 프레임워크를 연결하여 사용할 수 있습니다.

Log Level

어떤 것 까지 로그를 남겨야할지 Log Level을 정해야 합니다.

Logger

logback 설정하기

  1. logback-test.xml 파일을 찾습니다.
  2. logback.groovy를 찾습니다.
  3. logback.xml을 찰습니다.
  4. 모두 없다면 기본 설정 전략을 따릅니다.

LogAppender

  • ConsoleLogAppender
  • FileAppender
  • RollingFileAppender

PatternLayout

Logback이 기본적으로 제공하는 패턴 레이아웃을 이용하면 우리가 로거에서 만든 로깅 이벤트를 통해 문자열을 변환 할 수 있습니다. 이 때 conversion specifiers를 이용합니다.

  1. %d : 로깅 이벤트의 날짜를 출력합니다. %date{ISO8601}, %date{HH:mm:ss.SSS}와 같은 방식으로 자바에서 제공하는 DateFormat을 이용할 수 있습니다.
  2. %logger{length} : Logger name의 이름을 축약할 수 있습니다. {length}는 최대 자릿수 입니다.
  3. %thread
  4. % (+-d)level : log level과 앞의 정수로 출력 고정폭 값을 조정할 수 있습니다.
  5. %msg : log message를 의미합니다.
  6. %n : new line을 의미합니다.

Conversion

컨버젼 룰을 이용하면 d, date, msg와 같은 컨버젼 문자를 추가할 수 있습니다.

SpringBoot

  • spring-boot-starter
    • 라이브러리 의존성을 간단히 관리 할 수 있습니다.
    • web starter, webflux, JPA starter등 공통적인 의존성 하나만 설정하면 개별 의존성을 따로 설정해줄 필요가 없습니다.
  • SpringApplication을 통한 손쉬운 실행
  • Auto Configuration
    • 클래스 패스에 특정 클래스가 있는지 감지 한 후 자동으로 모든 설정을 구성합니다.
    • 스프링 부트는 @EnableAutoConfiguration 또는 @SpringBootApplication 으로 활성화 할 수 있습니다.
  • 쉬운 외부 환경 설정
  • 프로파일을 통한 실행 환경 관리
  • Packaging Executable jar
    • 단독 실행이 가능한 스프링 어플리케이션을 생성할 수 있으며 War가 아닌 Jar로 패키징하여 배포 및 실행이 가능합니다.
  • Developer Tools

Spring Banner Generator

배너 제너레이터를 통하여 스프링 부트가 시작할 때의 아트를 바꿀 수 있습니다.

Text to ASCII Art Generator (TAAG)

profile
always positive

0개의 댓글