본문 바로가기
잡다한 이야기/better than now

[우아한테크세미나] 학생 입장에서 들은 1월 세미나 후기

by 꾸빵이 2023. 1. 27.

1월 주제는 우아한 형제들 송년회 퀴즈 서비스인 '히든 배민'을 개발하기까지의 이야기이다.

 

 

프론트엔드 개발자 두분이 요구사항 분석/설계, 개발, 디자인, 테스트까지 다 하셨다고 한다. 나는 프론트엔드쪽이고, 토이 프로젝트를 할 때 디자이너를 따로 구하지 않는 편이라 세미나가 도움이 될 것 같아 듣게 되었다. 원래 이런거 잘 안 듣는데 유익한 시간이었다. 굿^^ 개발 계기, 개발 방법, 기술 스택, 이슈 해결 방법 등에 대해 얘기하셨다. 메모한 내용을 중심으로 적어보려한다.

 

 

 

기술

AWS lightsail, 웹소켓, Redis, next.js를 사용하셨다고 한다. next.js를 사용한 이유는 첫번째로 단기간에 두명이 한 명이 된 것 처럼 코드를 짰어야했기 때문에 구조적 제한이 비교적 많은 next.js를 선택한 것이라고 하셨다. 두번째로 next.js는 API 라우트 측면에서 유리한 점이 있다고 한다. 나는 next.js를 써본적이 없어서 이런 장점이 있는지도 몰랐다. 다음에 프로젝트를 하게 되면 한 번 써봐야겠다.

 

 

 

이슈

발생한 이슈는 네가지 정도라고 하셨다. (내가 못듣고 놓친 게 있을 수도.... ) 네개라고 얘기하신건 아닌데 내가 적은걸 보니 네개였다.

 

- 개발 중 발생한 이슈

1. 히든 배민 페이지에 접속하면 커튼이 열리는 모션을 볼 수 있게 만들었는데, 동영상 자동재생이라 ios 저전력 모드에선 작동이 안 된다고 한다. 따로 해결 방법은 없는 것 같았다. 하긴.. 폰 설정인데 그걸 강제로 동작하게 하는건 불가능인 것 같다.

2. 웹 소켓이 최대 500개밖에 연결이 안 됐다. 더 연결을 하려고 하면 기존에 연결된 게 끊기는 이슈가 있었다. 여기서 "Linux Open Files" 라는 개념을 언급하셨는데, 리눅스에서는 모든걸 파일로 여긴다고 한다. 그래서 오픈 파일이라는 개념이 있고, 이는 오픈 가능한 파일 개수를 의미한다. 라이선스를 확인했을 때 1024였다.(최대 1024개의 소켓을 연결할 수 있다는 뜻) 그런데 왜 500개밖에 연결이 안 됐을까? 서비스를 개발할 때 Nginx 리버스 프록시를 사용했는데, 하나의 커넥션이 두개의 커넥션을 먹기 때문에 절반인 500개밖에 연결이 안 됐던 것이다. update라는 매커니즘을 사용해서 해결하셨다고 한다. 이 부분은 내가 잘 몰라서 간략하게만 썼다ㅠ 기술적으로 잘못된 부분이 있으면 알려주시오..

 

+) 깜빡하고 이거 안 올렸다ㅎㅎ 이 부분에 대해 블로그 링크 주셨었다. 더 알고 싶은 사람은 이걸 참고하면 된다.

-      https://techblog.woowahan.com/2569/

 

- 사용 당일에 발생한 이슈

1. 동시접속에 문제가 있었다. 2000명이 한번에 접속하기 시작하면서 서버가 터졌다. 이미지를 줄여서 괜찮을줄 알았는데 줄인 이미지도 컸던 것ㅠ 서버가 죽진 않았는데 느리게 리소스를 줬다. 테스트를 할 때 5000명까지 해봐서 괜찮을줄 알았는데 동시접속은 생각을 못하셨다고 했다.

2. 개인별 점수 현황이 3번째 문제부터 안나왔다. 서버에서 관련 api를 불러오는데 그 api에 문제가 생긴 것. 점수가 같으면 이름 순으로 정렬했는데 이름이 없는(undefined) 사용자가 있었다. 구글로 로그인했을거라 이름이 없을거라고 생각을 못했다고 하셨다.

 

 

 

마지막으로 질의응답 시간을 가졌는데 주로 사이드 프로젝트에 관한 많은 질문과 대답이 오갔고, 기억나는 두가지만 적어보려한다.

1. 기획자 없이 개발자가 기획까지 할 때 주의해야할 것은 문서화 잘하기!! 논의는 잘하는데 정리를 안해두면 까먹는다.

   (개인적으로 공감됐다. 첫 프로젝트를 했을 때 다들 초보라 문서화를 잘 안했었는데 나중에 회의 내용 다 까먹어서 고생  좀 했다...)

2. 사이드 프로젝트를 할 때 실제 사용자를 받을 수 있게끔 해보기. 사용자들에게 피드백을 받으며 배우는 게 많고, 실무에서도 그런 식으로 하니까 도움이 많이 된다.

 

 

 

 정보를 많이 얻어서 좋기도 했지만 무엇보다 누가 시킨 것도 아닌데 시간을 쪼개서 원하는걸 만들었다는 점에서 정말 개발을 좋아하시는게 느껴져서 자극을 받았다. 그리고 개발 관련 얘기를 하실 때 즐거워보이셔서 멋있었다. 나도 즐기는 개발자가 되어야지!!

 아 그리고 직접 히든 배민을 써보게 해주셨다. 두 문제를 풀고 5등까지 선물을 주셨는데 난 둘 다 틀려서 0점 받음.. 눈으로 푸는 문제랑 귀로 푸는 문제 두 개였는데 왜 보지도 못하고 듣지도 못하니 아ㅋㅋ