
AI 시대에 맞추어 2주에 한 프로덕트를 만들어내는, 작지만 빠른 개발을 지향하는 프로젝트입니다.
EC2로 서버를 배포하면서 가장 불편했던 점은 배포 이후에 있었다.
배포 이후에 서버의 로그를 확인하기 위해선,
노트북을 켜기도 어려운 상황에선 로그를 확인하는 단계가 꽤나 많고 복잡하다는 것을 느낀 적이 많았다ㅠㅠ
그래서 다른 다양한 방법을 알아봤는데,
AWS CloudWatch Logs
리소스를 모니터링하는 클라우드 서비스
다른 프로젝트에서 사용 중인데 그나마 제일 간단하지 않나 싶다.
- 클라우드 서비스다 보니 비용적인 면에서 부담이 생길 수 있다.
- CloudWatch Agent를 설치하고 설정하는 기술적 부담
웹훅 서비스
슬랙이나 디스코드의 웹훅 주소를 이용하는 방식
안 써보긴 했지만 방식을 좀 고쳐쓰면 괜찮아보이는 서비스
- AWS Lambda나 SNS를 사용하거나, logback 코드를 작성해야 하는 부담이 있음.
- 로그 추적을 위한 서비스는 아니기 때문에 다양한 기능을 제공하지 않고, 해당 방식을 위해 채널에 부담을 줄 가능성이 있음.
쿠버네티스 관련 툴
쿠버네티스 특성 상 여러 개의 컨테이너를 관리하면서 발생하는 로그를 Grafana와 Prometheus를 통해 시각화하는 방식인 듯하다.
- 쿠버네티스에 대한 이해도가 필요
- 설정이 복잡해 작은 서비스에서 사용하긴 부적합하다..
로그를 확인하기 위한 더 쉬운 방식은 없을까?
문제점
로그 확인을 위한 다양한 솔루션들이 있지만, 좀 복잡하다
해결방안
단순 로그 확인에 최적화 되어 있으면서도 적용이 어렵지 않은 솔루션을 제공하자!
구체화
로그 확인에 최적화 되어 있어야 한다.
적용이 어렵지 않아야 한다.
적은 비용으로 제작한다. (얇은 지갑 문제)
정리하자면
로그 확인과 알림에 중점을 둔 앱
단순한 디자인에 단순 알림을 지원하는 앱이다.
그만큼 구현 방식이 중요할 것 같은데 일단 앞서 세운 큰 틀의 기획을 토대로 구현 방식을 생각해 보았다.
- 사용자가 편하게 로그를 확인할 수 있도록 모바일 앱으로 제작한다.
아이폰과 안드로이드 모두 적용 가능했으면 하기 때문에 크로스 플랫폼으로 개발하려고 한다.
이전 프로젝트를 리액트로 진행했으니 자연스럽게 리액트 네이티브로 하면 되지 않을까..?
- 로그를 사용자 설정값 N분에 한 번 불러올 수 있어야 한다.
이건 사용자 별로 Spring Scheduler를 실행하면 될 것 같다..!
-> 아 근데 멀티 스레드 방식이라 사용자 별로 스레드를 만들면 서버에 부담될 것 같은데..
-> 캐시 메모리나 DB에 유저(서버) 정보를 넣어두고 Job Queue 기반으로 꺼내오면 되지 않을까?
해본 적은 없지만 이론적으론 가능해 보인다..!
- 불러온 로그에 사용자 설정 키워드 s가 포함되어 있다면, 사용자에게 알림을 보내야 한다.
로그 내용을 String으로 받아와 String.indexOf()나 Pattern.matches()로 찾으면 되지 않을까.
속도나 성능 문제가 있다면 테스트 후 판단해보자.
로그를 불러오기만 하고 따로 저장할 필요는 없을 것 같다.
- 어떠한 서버든 최소한의 코드 추가로 바로 적용할 수 있어야 한다.
도커든 스프링이든 혹은 다른 유형의 서버든.. 모두가 편리하게 적용할 수 있었으면 좋겠다.
생각 중인 방식은,
+) 로그 발생 시 우리 서버로 POST 요청하면 바로 알림 기능도 넣을 수 있겠다.
=> 이건 서버 부하가 있을 수 있으니 유료 버전으로 낼까..?
이름은 Talking Tail로 정했다.
(Talking Heads 오마주 맞다)
tail로 파일 확인하는 것을 talk하듯 알려준다는..그런..
아무튼 로고도 GPT로 만들어보았다.

꼬리가 강조된 고양이를 그려달라고 했다.
귀엽게 잘 나온 것 같다!

이후 여러모로 추가되겠지만, 디자인 초안도 일단 완성..!
피그마 디자인을 몇 번 안해봐서 조금 엉성하지만..ㅠㅠ 나중에 고쳐보자
개인적으로 로그에 확인에 대한 니즈를 느껴서 개발을 결심했다.
1인 개발이라 어쩔 수는 없지만 가능하면 디자인은 디자이너에게..
이번에도 우여곡절은 많이 있겠지만.. 화이팅!!