예전 포스팅에서 다루었듯, TIFY 프로젝트에서는 서버 에러를 Slack 웹훅으로 받아 Slack에서 확인할 수 있도록 하였다. 에러 로그 말고도 어플리케이션에서 발생하는 쿼리, 트랜잭션 로그와 같은 쓸만한 로그를 보고 성능 개선 / 분석을 할 수 있으니 로그를 쉽게 확인하는 것이 요즘 들어 매우 중요하다고 생각이 들더라,, 그러나 (서버가 한대인데도) Docker 컨테이너 로그를 확인하는 과정이 귀찮아서 막상 잘 들여다 보지 않았었고, 심지어 위 사진에서 볼 수 있듯 필자의 프로젝트에는 Spring Boot 서버가 3개나 돌아가고 있다. 그래서... 0) Effective Log Search & Analytics(ELSA)란? Effective Log Search & Analytics를 도입하기로 했다..
Oriental Unity 프로젝트 기획 당시 어차피 시간도 없는거 그냥 빠르게 MVP로 서비스를 구현하고 리팩토링 & 성능 개선을 목표로 했다. 비록 리팩토링과 성능 개선은 못하고있으나,, 어플리케이션의 성능을 모니터링하고 분석할 수 있는 서비스(APM) 중 하나인 Pinpoint를 도입하고자 했다. 자세한 시연 영상과 코드는 아래 레포지토리에 나와있다. GitHub - hook-killer/document: 프로젝트의 문서, 정보를 기록하기 위한 Repository 프로젝트의 문서, 정보를 기록하기 위한 Repository. Contribute to hook-killer/document development by creating an account on GitHub. github.com GitHub ..
이전 포스팅에서도 언급한 적이 있는 Public Area - Private Area 간의 통신에 대한 포스팅을 진행해보려 한다. 자세한 아키텍쳐나 프로젝트 정보는 아래 레포지토리에 자세히 설명되어있다. GitHub - hook-killer/document: 프로젝트의 문서, 정보를 기록하기 위한 Repository 프로젝트의 문서, 정보를 기록하기 위한 Repository. Contribute to hook-killer/document development by creating an account on GitHub. github.com 0) 발생한 이슈 프로젝트의 아키텍쳐를 보면 알 수 있듯이 어플리케이션 서버는 공인 IP를 가지는 프록시 서버를 통해서만 접속할 수 있게 만들어진 Private Area이..
TIFY 프로젝트를 진행하면서, 13여가지의 상품군에 해당하는 취향 질문에 사용자가 답변을 하면 그것을 근거로 상품을 추천해주는 기능을 만들게 되었다. 처음 이러한 기획을 들었을 때는 음 그냥 사용자가 A, B 상품군을 선택하면 A, B 추천 전략에 맞게, X, Y 상품군을 선택하면 X, Y 추천 전략에 맞게 리턴해주면 되겠구나 했지만 조금 더 생각해보니 말이 안되는 처사였다. 이런 상황을 해결하기 위해 민준이가 알려준 디자인 패턴 중 하나인 전략 패턴(Strategy Pattern)을 사용해보기로 하였다. 추천 전략을 구현한 코드는 아래 pr들에, [FEATURE] 상품 추천 로직 작성 by bongsh0112 · Pull Request #45 · Team-TIFY/TIFY-SERVER 📝 PR Su..
MVP 임에도 열정적인 기획분들 덕분에 상품 테이블의 데이터 개수가 3000개가 넘어가게 되었다. DB에 등록되어있는 상품을 검색할 때 아직까지는 시간이 그렇게 오래걸리지는 않으나 계속해서 프로젝트를 업데이트를 하다 보면 언젠가는 상품의 개수가 만개, 혹은 훨씬 더 많아질 것 같다고 생각했다. 이런 생각을 하고 있을 때 마침 프론트 쪽에서도 상품 검색의 성능이 조금 떨어지는 것 같다는 의견을 주어서 같은 백엔드 팀원인 민준이와 DB 인덱싱을 통해 검색 기능의 성능을 개선해보기로 하였다. 검색을 구현한 자세한 코드는 아래 레포지토리에서 찾아볼 수 있다. GitHub - Team-TIFY/TIFY-SERVER: TIFY 팀 서버 레포지토리입니다. TIFY 팀 서버 레포지토리입니다. Contribute to ..