인프런 영문 브랜드 로고
인프런 영문 브랜드 로고
NEW
개발 · 프로그래밍

/

웹 개발

개발자에게 필요한 로그 관리

어떤 로그를 남겨야 하는지부터 시작하여 로그를 수집하고 활용하기까지 전체적인 사이클에 대해 다룹니다.

50명 이 수강하고 있어요.

Thumbnail

초급자를 위해 준비한
[웹 개발, 데브옵스 · 인프라] 강의입니다.

이런 걸
배워요!

  • 애플리케이션에서 어떤 로그를 남겨야 하는지에 대한 노하우

  • ELK 스택을 활용한 로그 수집 및 활용

아직도 SSH로 서버에 접속해서 로그를 보시나요?

서버에 직접 로그인하여 로그 파일을 확인하는 방식은 여러 가지 한계를 가지고 있습니다. 첫째, 여러 대의 서버를 운영할 경우 각각의 서버에 일일이 접속해야 하므로 시간이 많이 소요되고 관리가 복잡해집니다. 둘째, 실시간으로 로그를 모니터링하기 어려워 문제가 발생했을 때 신속하게 대응하기 힘들어집니다. 또한, 로그 검색과 분석이 수동으로 이루어지기 때문에 중요한 정보를 놓치거나 오류를 발견하는 데 시간이 걸릴 수 있습니다. 이러한 방식은 특히 대규모 분산 시스템에서 비효율적이며, 서비스의 안정성과 사용자 경험에 부정적인 영향을 미칠 수 있습니다. 따라서, 보다 체계적이고 자동화된 로그 관리 방법을 도입하는 것이 필요합니다.

로그 관리는 단순히 오류를 기록하는 것을 넘어, 애플리케이션의 심장 박동을 이해하고 문제를 미리 예측하는 중요한 도구입니다. 특히 현대의 복잡한 분산 시스템에서는 로그 관리가 서비스의 안정성과 사용자 경험을 좌우할 수 있습니다. 실무에서는 수많은 데이터와 트래픽 속에서 신속하게 문제를 파악하고 해결하는 능력이 필수적입니다.

이번 강의 "개발자에게 필요한 로그 관리"에서는 어떤 로그를 남겨야 하는지부터 로그 활용까지, 실무에서 바로 적용할 수 있는 다양한 전략과 팁을 다룹니다. 처음부터 끝까지 로그 관리의 전 과정을 체계적으로 배워가며, 로그가 어떻게 서비스 운영에 활용될 수 있는지 직접 경험하게 될 것입니다.

가장 먼저 로그에 대한 기초 지식에 대해 다룹니다. 이 강의에서는 로그의 기본 개념과 중요성을 이해하고, 어떤 정보를 로그로 남겨야 하는지, 예외 처리 시 로그의 활용법, 다양한 로그 레벨의 의미와 활용 방법을 학습합니다. 이를 통해 개발 과정에서 로그의 중요성을 인식하고, 효과적으로 로그를 남기는 방법을 익히게 됩니다.

두 번째로는 Logback 설정에 대해 다룹니다. Logback의 기본 개념과 Slf4j와의 연계를 설명하고, 실제 Logback 설정 파일을 작성하는 방법을 실습을 통해 학습합니다. 다양한 Appender를 활용하여 로그를 여러 파일로 분리하고, 일 단위로 로그를 관리하며, 로그 파일을 압축하는 등 실무에서 필요한 설정 기술을 익힐 수 있습니다. 또한 개발 환경별로 다른 Logback 설정을 적용하여 유연한 로그 관리를 구현하는 방법도 배웁니다.

그 다음으로는 로그 수집의 중요성과 이를 위한 도구인 Elasticsearch와 Logstash의 사용법을 소개합니다. 도커를 활용하여 Elasticsearch와 Logstash를 설치하고, LogstashAppender를 통해 로그를 Elasticsearch로 전달하는 과정을 실습합니다. 분산 환경에서 로그를 효율적으로 수집하고 관리하는 방법을 배우며, Elasticsearch에서 수집된 로그를 효과적으로 확인하는 방법도 익힙니다.

마지막으로, 로그 시각화와 활용 방법을 다룹니다. Kibana를 활용하여 로그 데이터를 시각화하고, 대시보드를 통해 실시간으로 로그를 모니터링하는 방법을 배웁니다. 서비스와 호스트 정보를 로그 데이터에 추가하여 로그의 가독성을 높이고, 알람 설정을 통해 오류 발생 시 신속하게 대응할 수 있는 시스템을 구축하는 방법을 학습합니다. 또한 Jenkins와 연계하여 슬랙으로 알람을 받아보는 실습을 통해 실무에서 즉시 활용할 수 있는 로그 모니터링 환경을 구축할 수 있습니다.

이 강의는 로그 관리의 기초부터 고급 설정까지 체계적으로 학습하고자 하는 개발자와 엔지니어에게 꼭 필요한 내용을 제공합니다. 효과적인 로그 관리를 통해 시스템의 안정성을 높이고, 문제 발생 시 신속하게 대응할 수 있는 역량을 키우고자 하는 모든 분들에게 큰 도움이 될 것입니다.


Logback 설정 파일 예시

<configuration> <property name="LOG_FILE" value="application.log"/> <!-- Logstash로 전송할 Appender --> <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>localhost:5044</destination> <encoder class="net.logstash.logback.encoder.LogstashEncoder" /> </appender> <!-- 콘솔 출력 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 파일 출력 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_FILE}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>application.%d{yyyy-MM-dd_HH-mm}.log.gz</fileNamePattern> <maxHistory>5</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- Logger 설정 --> <root level="trace"> <appender-ref ref="CONSOLE" /> <appender-ref ref="FILE" /> <appender-ref ref="LOGSTASH" /> </root> </configuration>


로그 시각화 예시



이런 내용을 배워요

로그 기초 이해

어떤 정보를 로그로 남겨야 하는지, 예외 처리 시 로그의 역할, 다양한 로그 레벨의 의미와 활용 방법을 학습하여 효과적인 로그 작성의 기초를 다집니다.

Logback

Logback의 기본 설정부터 활용까지 체계적으로 다룹니다. Slf4j와의 연계를 통해 로그를 효율적으로 관리하고, 다양한 Appender를 활용하여 로그를 여러 파일로 분리하거나 일 단위로 관리하는 방법을 실습을 통해 익힙니다.

ELK 스택

Elasticsearch, Logstash, Kibana로 구성된 ELK 스택을 활용한 로그 수집과 분석 방법을 배웁니다. 도커를 이용한 설치부터 LogstashAppender를 통해 로그를 Elasticsearch로 전달하고, Kibana를 사용하여 로그 데이터를 시각화하고 실시간으로 모니터링하는 기술을 습득합니다.

수강 전 참고 사항

실습 환경

  • 운영 체제 및 버전(OS): Windows 10,

  • 사용 도구: Intellij Community 2023.2, Google Chrome

학습 자료

선수 지식 및 유의사항

  • 해당 강의는 Java, Spring Boot 애플리케이션을 기준으로 진행됩니다. 다만 강의 주요 내용은 코드 레벨보다는 로그에 대한 개념 설명 위주이기 때문에 'Logback 설정' 섹션을 제외하면 다른 언어, 프레임워크로 실습을 진행하더라도 문제 없이 강의를 수강할 수 있을겁니다.

  • 서버에 올려서 실습을 진행하는게 아니라, 로컬 개발환경에서만 실습을 진행합니다. 로컬에서 실습을 진행하지만 실제 서버에 올렸을 때는 어떤 식으로 설정을 바꾸면 되는지 안내해드리고 있기 때문에 서버에 올렸을 때도 비슷한 과정으로 설정이 가능합니다.

  • 수강하시면서 궁금한 내용이 있다면 질문을 남겨주세요. 업데이트해야 할 내용이 있다면 업데이트하겠습니다.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 애플리케이션에서 어떤 로그를 남겨야 하는지 알고 싶은 사람

  • 매번 SSH를 통해 서버에 접속하여 로그를 보는데 지친 사람

선수 지식,
필요할까요?

  • Spring Boot 애플리케이션 개발 경험

안녕하세요
이준형(Foo)입니다.

수강생 수

2,678

수강평 수

111

강의 평점

4.9

강의 수

8

안녕하세요.

멘토링을 하면서 주니어 개발자들이 어려워 하는 개념들에 대해 어떻게 하면 쉽게 전달할 수 있을지에 대해서 많은 고민을 하고 있는 푸(Foo)라고 합니다.

잘 부탁 드리겠습니다.


이력

  • 2019. 08 ~ 현재 : 카카오 자바 백엔드 개발자

  • 2021. 08 ~ 현재 : programmers 백엔드 데브코스 멘토

  • 2021. 12 ~ 현재 : F-Lab 자바 백엔드 멘토

 

  • 이것이 취업을 위한 백엔드 개발이다 with 자바(링크)

 

기타 이력 및 타 플랫폼 강의들은 아래 GitHub 링크에서 확인할 수 있습니다.

GitHub - https://github.com/lleellee0

커리큘럼

전체

15개 ∙ (3시간 20분)

  • 예외와 로그

    17:11

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!