제 프로젝트는 사용자가 특정 차트를 고르면, 코스피 코스닥 전 종목의 과거(5년) 차트들을 모두 탐색하여 가장 유사한 차트 10개 정도를 골라 사용자에게 보여주는 것이 목표입니다.
비슷한 차트 검색기
전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요?
www.similarchart.com
새 노트북 구입! 싱글벙글도 잠시
저는 노트북을 2018년에 구입한 후 6년 동안 사용했습니다. 노트북이 노후화가 심해져서 그런지 최근에 속도가 매우 느려지고 성능저하가 심했습니다. 그래서 큰맘 먹고 새 노트북을 구입했습니다.
처음 받았을 땐 기분이 매우 좋더군요. 기존 노트북보다 속보다 몇 배는 더 빠르고 쾌적했습니다. 그리고 곧이어 개발환경을 세팅하기 시작했습니다. mysql, docker, vscode 등등..
그리고 여기서 도커의 장점이 드러납니다. 제 프로젝트에는 많은 라이브러리들을 pip install 해야하는데, 그럴 필요 없이 이 환경을 build 명령어 한 번에 세팅이 가능합니다.
docker-compose build
docker-compose up
도커의 장점을 다시한번 느끼면서 docker-compose up을 했습니다. 제 프로젝트는 데이테베이스에 아무 값도 없으면 초기 설정을 해야 한다고 인식하고 초기 설정을 자동으로 수행합니다.(테이블 자동생성, 11년 치 주가데이터 불러오기, 주식 종목 정보 불러오기 등)
그렇게 프로젝트를 실행시키니, 여기저기서 밑 빠진 독같이 에러가 발생했습니다. 나름 자동화를 한다고 코드를 만들었는데, 이렇게 프로젝트를 처음부터 다시 시작하는 테스트는 해본지 너무 오래되었기에 생각지 못한 에러들이 많이 발생하였습니다.
예를 들면, 제 프로젝트는 주가 데이터를 저장하는 stock_data 테이블이 있습니다. 이 테이블에 데이터를 넣기 위해서는 similar이라는 테이블의 정보가 필요한데, similar은 반대로 stock_data에 값이 존재해야지만 데이터를 넣을 수 있습니다. 이와 같이 특정 테이블의 값에 의존하는 함수들이 얽혀있는 경우가 많았습니다.
테스트의 중요성
그러고보니 Spring 공부를 할 때와 소프트웨어공학 공부를 할 때 단위 테스트, 통합 테스트 등 테스트에 관련해서 공부를 했었는데, 막상 프로젝트를 진행하면서는 좀 테스트를 소홀히 했던 것 같습니다. 앞으로는 아예 백지상태부터 실행해 보는 테스트도 빼먹으면 안 되겠네요.
테스트할 때 최소 3~4시간 단위이고, 아예 처음부터 실행하면 거의 10시간 가까이 되어 저도 모르게 꺼려했던 것 같습니다.
개인프로젝트긴 하지만..
물론 맨 처음 테이블 생성부터 다시 프로젝트를 실행해 보는 경우는 많지 않습니다. 이렇게 노트북이나 컴퓨터를 새로 샀을 경우 말고는 흔치 않겠네요. 물론 이 프로젝트가 개인 프로젝트가 아니라 팀 프로젝트였다면 새로 합류하는 팀원도 프로젝트를 받아 잘 실행되어야 할 것입니다.
비록 개인 프로젝트이지만, 다른 사람도 이 프로젝트를 실행해 볼 수 있고, 다른 사람도 내 코드를 읽어야 한다고 생각하고 프로젝트를 진행해야겠습니다.
적당히 돌아가게끔 하여 몇몇 지인들에게 보여주는 프로젝트와 실제로 사용자들에게 배포하는 프로젝트는 공 들이는 게 차원이 다른 것 같네요.
'프로젝트' 카테고리의 다른 글
프로젝트15. 모든 사용자 기능 구현완료! 힘들었던 점과 식겁했던 순간 (1) | 2024.02.17 |
---|---|
프로젝트14. 웹페이지 다국어 간단하게 지원하는 방법(직접 제작) (0) | 2024.02.17 |
웹 프로젝트12. 메세지국제화 직접 구현(외국인이 내 웹페이지에?) (0) | 2024.02.17 |
웹 프로젝트11. 클린코드고 뭐고 일단 돌아가게 만들자? 괜찮으려나.. (0) | 2024.02.17 |
웹 프로젝트 - 10. AWS 청구서 분석3 (RDS, KMS, VPC) (0) | 2024.02.17 |