이번 동아리에 지원한 신입생 분들 께
선린인고 20학번 신입생 여러분 원하는 동아리 준비하느라 수고 많으셨습니다 ㅠㅠ
저는 지원 페이지의 서버 로직을 담당하여 개발한 Layer7 19기 부부장 김연규라고 합니다.
여러분들의 지원을 관리하였던 지원 페이지에 대해 궁금할거같아, 나름의 비하인드(?) 스토리를 준비했습니다.
글 쓰는 재주가 없어서 재미 없을 수도 있는데, 그냥 이런 일 들이 있었다 생각하고 즐겁게 봐주시면 좋을것 같아요.
글에 들어가기 전
솔직히 말하자면, 시스템이라고 민망할 정도의 그냥 웹 서버 였습니다.
설레는 마음으로 신입생을 기다리며 개발을 했어야 했습니다. 그런데 제가 소프트웨어 마에스트로 11기 지원 준비 때문에 두시간 만에 급하게 만들어 낸거라 부족한 점 투성이였습니다.
기술적으로 의미있는 글은 절대!! 아니니 '이렇게 하면 안되는구나!' 라는 배움을 찾으셨으면 좋겠습니다.
그럼 편하게 글 적겠습니다.
지원 시스템을 만들자!
어느날 동아리 형의 카톡이 옵니다.
그리고 이런 문자에 시달립니다.
기술적으로 어려운 부분은 전혀 없었습니다.
그리고 귀찮은 일 투성이였기 때문에 재밌을거같다는 김연규의 판단이 훌륭한 판단 개소리 이라는걸 깨닫기 까지 5일도 걸리지 않았습니다.
사용하기 매우 쉽지만, 커스텀한 작업을 하기 복잡해서 저의 계륵인 Django라는 웹 프레임워크를 사용해 api서버를 만들기로 합니다.
저는 당시 go 라는 언어로 백엔드 공부를 하고 있었습니다.
그런데 왜 굳이 Django로 개발을 하게 되었냐면요!
- 일단 가장 익숙한게 Django
- Django에서 기본 관리자 페이지 제공
- 마감 기한이 있는 완벽 주의자를 위한 웹 프레임워크
- 당시에 SW마에스트로 준비
하는척 하느라 바빴고, 집에서 넷플릭스를 봐야했습니다... 아니 미스터 션샤인 처음봤는데 이렇게 재밌는 드라마 였나요? TMI 죄송합니다..
- 당시에 SW마에스트로 준비
그래서 개발 자체는 크게 어렵지 않게 끝냈습니다.
근데 분명히 코드 짤 때 제대로 테스트를 안했는데 프론트엔드에서 연결해보니 오류가 없어서 불안하긴 했습니다.
지원을 받자
코로나19 사태로 인해서 개학이 미뤄짐과 동시에 동아리 지원도 미뤄졌죠!
이런 말이 있습니다. '이 코드를 짤 때는 신과 나만이 알았지만, 이젠 신만 아신다..!'
그도 그럴게, 2월 중순에 2시간 만에 작성한 코드인데 6월에 와서야 기억이 날리가 없죠..
그리고 미친짓을 합니다.
에라 모르겠다.. 버그도 없다고 하는데 그냥 오픈하자..! 어떻게든 되겠지! 서버가 뒤지겠어! 추가 기능 넣을게 뭐가 있겠어!
힘들었던 부분
각 동아리 페이지는 각 동아리의 개성있는 디자인으로 만들어졌습니다.
후배님들, 열심히 지원페이지 디자인 한 선배들에게 박수주세요..! 개발자가 디자인 좋아하기 힘듭니다..
다시 말하면, 서버와 연동되는 부분을 프론트엔드를 맡은 현우형이 하나하나 수정해 줘야 한다는 뜻입니다.
제가 동아리 임원들한테 이 시스템을 쓰자고 했는데..
다시 말하면, 제가 그 중간에서 파일 전달하고 수정사항을 전달해야 한다는거였죠.
이게 한 두번이면 그럴 수 있는데, 수정사항은 시시각각 발생하고 특히나 면접 지원 전에 면접 질문 수정이 이뤄져서 화가 많이 났었습니다...
지원 게시!
그렇게 갑자기, 무슨 일인지 예정되었던 시간에서 변경되어 6월 3일 17시에 지원 폼이 오픈되었습니다!
그런데 다음과 같은 문제가 있었습니다..
- 서버 개 느림
- db문제인가 싶었는데 지원 이미 받고있는데 디비 마이그레이션 하는건 말이 안됨
- 결국 개발자 모드로 오픈함
- 생각외로 잘 작동함..! 속도 겁나 빨라짐!! 개꿀!!
그런데 문제가 있습니다. 개발자 모드로 오픈하면요, 파이썬위에서 개발된 웹서버가 작동하는거라 많은 수의 사용자가 접속하면 크래시가 날 수 도 있다는점입니다. 그래도 다행히 24*3=72, 100명도 안되는 친구들이 사용할 시스템이기 때문에 그냥 서버에 올리고 빌어보기로 했습니다.
반성 할 점
반성할게 참 많습니다..
- 귀찮다고 db로 멀쩡한 물건 안쓰고, 속도 느린 sqlite3씀
- 자동 배포안하고, 직접 tmux로 올림
- 테스트 코드 작성 안함
- 백업시스템에 대한 생각이 없었음
- 정말 실제로 큰일 날 뻔 했었거든요.
- 디버그 모드로 운영
그래도 그나마 잘한점을 찾자면..
- 지원 폼과 질문이 동아리마다 다 다르죠, 데이터의 일관성이 없다는 뜻입니다.
- 이를 처리 하기 위해 textfield 안에 json을 넣어 처리한게 (아 죄송합니다. 글을 쓸 때는 독자를 고려하고 작성해야하는데... 어려우면 무시하셔도 됩니다.) 제 개인적으로는 좀 뿌듯했고, (사실 postgresql에서 제공하는 jsonfield가 없어서 textfield에 넣는 꼼수를 부린거긴 합니다.)
- 두시간만에 뚝 딱!
알아주실 점
- 재밌게 쓰긴했지만 이러면 절대 안되고요..
- 지금 많은 반성을 하고 있습니다..
이상입니다. 글 읽어주셔서 감사해용.
'Computer Science' 카테고리의 다른 글
프로토콜 버퍼(protocol buffer)란? (0) | 2020.12.14 |
---|---|
SW 마에스트로 11기 후기 (3) | 2020.11.29 |
SW 마에스트로 11기 지원기 (0) | 2020.05.16 |
Go 후기: 너로 정했다! (0) | 2020.03.01 |
폭력적인 동생을 혼내주자! - Mild Controller 개발 일지(?) (1) | 2020.02.08 |