본문 바로가기
T.I.L. :: Today I Learned/항해99 14기 본과정

Day 70. 나 했다 중간 마무리 실전 프로젝트의!👊🏻

by DaSsom 2023. 6. 11.

이야!!!!!!!!!!!!아아ㅏㅓ아ㅏ아아앋ㄱ!

 

3주를 순삭당했다.. 지난 3주동안 내가 어떻게 먹고 자고 했는지 모를 정도로 항상 머리속엔 어떻게 하면 버그를 픽스할 수 있을지.... best practice는 무엇인지.... 서버는 잘 돌고 있는지 도메인이 안정화는 되었는지 .... 밥을 먹고 좀 쉬다가도 핸드폰으로 검색하는 것은 cors 해결법, sse 기능 구현..... 이런 것들.. 진짜 이렇게 몰입할 수 있나 싶다. 엄마 피셜, 잠순이인 내가 이렇게 할 줄 몰랐다고 하시더라ㅋㅋㅋ 나도 내가 신기한 3주를 보내고 이제 중간 마무리를 한 번 하려고 한다.

 

어제 T.I.L.에서도 멘토링 내용을 정리하긴 했는데 오늘은 앞으로 우리가 어떤 방향으로 나아가야할지 생각해보아야겠다. 피드백 시간에 받은 조언에서 "앞으로 리팩토링과 최적화를 하겠습니다!" 라는 발언을 하면 "백엔드는 이제 더이상 할 일이 없구나?"라고 파악한다고 했으니 ㅋㅋㅋㅋ 리팩토링과 최적화는 정말 당연한 이야기이고 조금 더 도전해 볼만한 내용을 찾아보았다. 

 

1. SSE 기능 개선

: 지금 이 부분에서 pending이 생겼고 그로 인해 OSIV 를 false로 설정해 영속성을 보장받아야할 데이터들에 저장 문제가 조금씩 있다. 단순 update를 해주어야할 상황에도 굳이 save 메서드를 한 번 더 호출해서 db 접촉이 늘어났다. 그래서 Kafka와 같은 메세지 큐 형태의 아키텍쳐를 도입하려고 한다. 조금 더 공부해보아야겠지만 kafka를 적용해서 OSIV 설정을 다시 true로 바꿔주려고 한다.

 

2. 심도있는 테스트 코드 작성

: '코드 커버리지 70%이상 목표'라고 적어서 내긴 했는데 일반적으로 80% 이상의 코드 커버리지가 되어야 높은 품질의 테스트가 가능하다고 한다. 그래서 메서드 위주가 아닌 예외처리나 null 체크도 가능한 테스트코드를 구현하기 위해 노력할 것이다.

 

3. CI/CD 구축, 더 나아가 무중단 배포까지

: Continuous Integration & Continuous Deployment... 현업에서는 Jenkins가 오래되었고 무료이며 오래 사용했기 때문에 CI/CD 툴로 사용한다고 하는데 우리는 아직 젠킨스에 접근이 어렵고 github Actions를 통해 해보는 것이 개발속도에 영향을 미치지 않고 할 수 있어서 깃헙 액션을 사용하려고 한다. CI/CD를 통해 빠르고 정확한 배포를 하면 보다 더 빠른 피드백을 받을 수 있고 서비스의 품질을 향상 시킬 수 있기 때문에 단순 공부 목적이라기보다 우리 서비스의 품질을 개선하기 위한 하나의 방법으로 접근하려고 한다. 그리고 우리가 docker를 사용하여 이미지를 받아 컨테이너를 구동시키고 있기 때문에 메인 서버와 예비 서버를 두어 docker swarm 을 사용하여 무중단 배포까지 도전해볼 계획이다. 

 

4. 가능하다면 부하 테스트까쥐

: 대용량 트래픽 처리에 대한 질문을 받고 나니 우리 서비스에도 트래픽 처리를 위한 대비를 해야한다고 생각했다. 아직 뾰족한 방법은 생각나지 않지만 좀 더 탐구해보고 대용량 트래픽에 대한 예방을 하고 동시에 부하 테스트도 해볼 수 있다면 아주 좋은 기회가 될 것이라고 생각했다.

 

 


 

앞으로의 3주가 또 다시 기대가 된다. 이제 실제로 유저 테스트도 받을 것이고 계속해서 개선해나갈건데 그 과정에서 또 얼마나 많은 것을 배우고 깨닫게 될 지 궁금하다. 유저 테스트를 시작한다는 것은 이제 항해 과정도 정말 막바지에 다다랐다는 뜻인데.. 벌써 아쉽다. 힘들어서 빨리 끝나면 좋겠는데 또 끝나고나면 새로운 시작이라는 것을 알고 있다보니.. 끝나지 않았으면 좋겠다 ㅠㅠㅠ