ELK Stack으로 로그 수집, 시각화 시스템 구축하기
로그 수집의 이유 로그의 중요성 컴퓨터 과학에서 로그(log)는 컴퓨터나 장비의 운영 정보를 시간 순서대로 기록한 정보를 말한다. 현대의 소프트웨어는 함수 호출, 오류, HTTP 요청, 데이터베이스 트랜잭션 등 다양한 데이터를 로그로 기록하게 된다. 그렇다면 로그가 중요한 이유는 무엇일까? 운영하다가 장애가 발생했는지 로그를 ...
로그 수집의 이유 로그의 중요성 컴퓨터 과학에서 로그(log)는 컴퓨터나 장비의 운영 정보를 시간 순서대로 기록한 정보를 말한다. 현대의 소프트웨어는 함수 호출, 오류, HTTP 요청, 데이터베이스 트랜잭션 등 다양한 데이터를 로그로 기록하게 된다. 그렇다면 로그가 중요한 이유는 무엇일까? 운영하다가 장애가 발생했는지 로그를 ...
서버에서 발생가능한 다양한 장애 상황 서비스 운영 과정 속, 서버에는 정말 다양한 장애 상황이 발생 가능하다. 서비스 회사라면 이런 장애 상황에 정말 민감하게 반응할 수 밖에 없을 것이다. 장애 발생으로 인해 고객에게 영향을 끼치게 된다면, 서비스에 대한 신뢰가 떨어지고 고객이 이탈할 수 있다. 그렇다면 장애 상황의 원인에는 어떤 것들...
배경 오늘만 사장은 예비 사장님들이 창업 전, 예비 팝업 경험을 통해서 고객들에게 직접 피드백을 받고 창업 오픈에 도움을 받아볼 수 있는 서비스이다. 전반적인 기능 개발을 마무리한 후, 예비 사장님들을 위한 서비스이니 만큼 예비 사장님들의 입장에서 과연 우리 서비스가 쓸 만한가에 대한 궁금증을 가지게 되었다. 홍보를 통해서 실제 식당에 제공하였다...
도입 배경 맛동산🎅은 아이 맞춤형 동화를 생성하고, 아이에게 동화를 들려주며 직접 상호작용할 수 있는 전용 인형 디바이스를 제공하는 서비스이다. 처음 AI가 아이의 나이, 언어, 주어진 프롬프트에 맞게 동화를 생성해서 제공하면 그 이후에 유저들은 생성된 동화를 공유하거나 조회할 수 있다. 이렇듯, 동화가 사용자 맞춤형으로 AI에 의해 생성되기...
여러가지 동시성 문제 상황 개발을 진행하다보면 많은 동시성 문제를 마주하게 된다. 예약 기능을 구현할 때, 조회수 기능을 구현할 때 등등… 실제로 졸업 프로젝트로 진행했던 오늘만 사장에서 예약 기능을 구현하는 도중 동시성 문제를 마주하였다. 해당 기능을 구현하면서 들었던 강의와 찾아본 내용을 간단하게 정리해본다. 여러 실무 환경에서 동시성...
문제 n + 1 카드게임 (LV3) n + 1 카드게임 1 ~ n 사이의 수가 적힌 카드와 동전 coin개가 있고 카드를 뽑는 순서가 리스트로 주어진다. 카드 뭉치에서 n/3장의 카드를 뽑아 먼저 가지게 되고 이후에는 각 라운드에서 두 장의 카드를 뽑게 된다. 뽑은 카드는 카드 한장 당 동전 하나를 소모하여 가질수도, 버릴 수도 있다...
문제 백준 1958 (골드 4) 백준 1958 3개의 문자열이 주어졌을 때, 3개의 문자열 중에서 가장 긴 부분 문자열의 길이를 구하는 문제였다. 문자열의 길이는 100보다 작거나 같다. 내 코드 처음에는 문제를 잘못 이해해서 이어진 부분 문자열만 가능하다고 생각해 잘못 구현하였다. 문제를 다시 이해하고 dp를 활용하여서 구...
문제 백준 17609 (골드 5) 백준 17609 n개의 단어가 주어질 때, 각각의 단어가 회문인지, 혹은 한 문자를 삭제했을 때 회문인지, 혹은 일반 단어인지 구분하는 문제였다. 단어는 최대 30개까지 주어진다. 내 코드 문자열의 특성과 투포인터를 활용하면 풀 수 있을 것같아서 구현해보았다. 우선은 문자열을 뒤집어서 원래 ...
문제 백준 11054 (골드 4) 백준 11054 수열이 특정 수까지 계속 증가했다가 다시 감소한다면 그 수열을 바이토닉 수열이라고 한다. 수열 a가 주어질 때, 그 수열의 부분 수열중에서 가장 긴 바이토닉 수열의 길이를 구하는 문제였다. 내 코드 과거에 풀었던 문제라서 쉽게 다시 풀 수 있었다. dp를 활용하여서 문제를 접...
문제 백준 5972 (골드 5) 백준 5972 n개의 노드와 m개의 양방향 간선과 그 가중치가 주어질 때, 1번 노드부터 n번 노드까지의 최소 가중치를 구하는 문제였다. 노드와 간선이 최대 50,000개에 시간 제한이 1초여서 시간복잡도를 고려해야하는 문제였다. 내 코드 우선 dfs가 떠올라서 생각나는데로 구현해보았다. 짜면...