-
Notifications
You must be signed in to change notification settings - Fork 13
0.0.1(beta) 패치 노트
- 0.0.1(beta)
- 2023.01.15
- 정답 질의 시 관계 없는 답변도 함께 제공되는 버그를 해결했습니다
- answer 파일이 한 줄로만 입력되어야 하는 불편함을 개선했습니다
- 정답 폴더의 구조가 변경되었습니다
- 정답 질의 방식이 간편해졌습니다
- 기능 변경 커밋
답변 불일치 버그와 answer 파일 구조의 불편함 때문에 부득이하게 폴더 구조를 변경해서 해결했습니다
기존에는 awk 명령어를 활용해서 각 문제 별 한 줄을 할당했기 때문에 답변이 1줄을 넘어갈 수 없었습니다. 이 부분이 불편하기도 하고 기여할 때에도 어려움이 있을 수 있겠다 싶어 수정했습니다
기존의 정답 질의 방식이 너무 불편하다는 의견이 있어 RID
라는 alias를 등록해 질의 파일인 query.sh
로 바로 매칭할 수 있도록 변경했습니다
정식 버전은 frontend/backend당 약 20문제 정도 쌓였을 때 v1.0.0를 배포하려고 합니다. 지금은 주먹구구로 main 브랜치에서만 활동하지만, 정식 배포 부터는 조금 더 체계적으로 배포할 예정입니다
정식 버전 배포와 함께 웹 버전 배포도 함께 고려중입니다. 현재는 매 배포마다 유저들이 다시 pull 해야 한다는 치명적인 단점이 존재합니다. 그러나 웹 배포로 변경한다면 사용자 입장에서는 도메인만 같다면 지속적인 서비스를 이용 가능하므로 훨씬 간단한 이용이 가능하겠다는 생각이 듭니다
그러나 걱정인 부분은, 사용자들이 통계적으로 몇 번이나 터미널을 여는지 가늠할 수 없어 트래픽을 예상하기가 힘들다는 점입니다. 따라서 짧은 기간 동안만 배포해 보고, 안정적으로 활용 가능하다면 유지할 예정입니다. 그렇지 않다면 이메일 구독 서비스를 열어 새 버전 출시마다 메일을 보내주는 구조로 가야 할 것 같습니다
웹 버전도 함께 배포한다면 EC2 인스턴스에 Docker, Node 서버를 올릴 계획입니다. Node 특성 상 쉽게 서버가 죽을 수 있다는 점 때문에 Docker 위에 올리고 Node가 오픈될 때는 txt 파일들에서 정보를 읽어와 자료구조에 올려 warm up합니다. 사실상 필요한 정보가 많지 않기 때문에 앱 내 메모리 캐시 만으로 모든 것이 해결 가능할 것으로 보아 굳이 리소스가 들어가는 DB 등은 사용할 필요가 없어 보입니다
API 서버에서 필요한 내용은 랜덤 함수 / 캐싱에 최적화된 알고리즘 (ex. 검색 성능을 위해 한 배열이 아닌 여러 배열을 쪼개어 선언 후 찾아가기) / warm up 코드 / Docker를 활용한 fail over / 로깅 정도가 있을 것 같습니다
최적화를 위해 고려한 바로는 Node / Python / C++이 있습니다. 우선 언어들을 한 바퀴 돌아보고 네트워크 성능이 좋은 언어를 선택할 예정입니다. 아마 서버 코드도 직접 구현해야할 것 같습니다. 필요한 내용이 한정적이다 보니, 굳이 다양한 기능을 가지고 무거운 함수를 사용할 필요가 없는 것 같습니다. 멀티 스레드도 필요하지 않을 것 같습니다
로깅도 Mongo 등을 이용하기 보다는 json 파일로 만들고 허프만 코드 등을 구현해서 압축 파일로 만드는 게 성능 면에서 우수할 것 같습니다
처음 생각했을 땐 굉장히 간단하다고 생각했는데 고려하다 보면 원하는 바가 끝도 없이 늘어나는 것 같습니다
여기까지 와서 읽어주셔서 정말 감사드립니다