사이드 프로젝트를 마무리하며 정리하기로 했다.
짧은 기간이었지만 배운 것과 느낀 것이 참 많았다.
1.프로젝트 소개
번호 생성하기를 누르면 로또 5게임의 랜덤한 번호를 생성해준다.
여기까지는 코딩을 처음배울 때 많이 만드는 부분이라 뭘 더해야 특별할까해서 몇가지 기능을 추가했다.
이러한 통계기능인데, 추출기로 생성한 번호를 실제 당첨 번호와 비교해서 추출기의 당첨확률이 얼마나 되는지 통계를 만들어주는 기능이다.
이 기능을 만들다 테스트로 만든 계정에서 2등 번호가 나왔다. 이 번호를 샀어야 했는데...
이 기능을 위해 스프링 부트의 `@Scheduler`과 `jsoup`라이브러리를 사용했다.
매주 로또 당첨 번호가 공개되면 자동으로 그 번호를 크롤링해 DB에 넣어준다.
그리고 이번주에 생성된 번호와 비교해 당첨번호가 나왔는지 계산해서 DB에 기록해준다.
이 모든 것을 자동화 해두어 별도의 관리없이 사용할 수 있었다.
그리고 개인별 통계 기록을 위해 `spring security`를 활용해 회원가입과 로그인 기능을 구현했다.
구현한 것은 여기까지다.
프로젝트 기간은 3주 정도로, 퇴근 후 짬짬이 만들었다.
대부분의 시간은 AWS를 통한 배포 과정에서 소비되었다.
2.배운점
1) spring boot
회사에서는 레거시 스프링을 사용한다.
이미 세팅이 되어있는 상태에서 진행하고 있기 때문에 솔직히 세팅법은 잘 몰랐다.
스프링은 설정할 게 너무 많아서 무섭기도 했다.
그런데 스프링 부트는 굉장히 편하게 프로젝트를 시작할 수 있었다.
굉장히 굿이었다!
2) JPA
JPA가 워낙 좋다는 말이 많아 일단 써보면서 배우기로 하며 호기롭게 시작했지만 정말 고생길이었다.
어떻게 돌아가게는 만들수는 있었지만 잘 활용하고 있다는 느낌이 들지 않았다.
간단한 쿼리 같은 경우에는 쉽게 구현할 수 있었지만, 조금만 복잡해지면 그냥 내가 쿼리 짜서 쓰는게 편하겠는데 하는 생각이 들며 mybatis가 사무치게 그리워지고는 했다.
다음부터는 뭔가를 사용하려면 공부를 좀 한 뒤에 해야겠다는 다짐을 했다.
3) AWS
이것도 JPA와 마찬가지로 정말 아무것도 모르고 일단 시작했으나, 어떻게 도메인명까지 등록한 뒤 서버를 배포해볼 수 있었다. 내가 만들어둔 웹을 언제 어디서나 보여줄 수 있다는 건 멋진 일이었다.
하지만 내가 보여줄 결과물은 그닥 멋지지 않았다.
사이드 프로젝트 기간중 가장 많이 고생한 부분이 aws였던 것 같다. 이것도 하면서 배우는거지! 라는 당찬 포부로 시작했으나 그 과정이 너무 험난했다. 대신 이 과정에서 리눅스 명령어나 디버깅 스킬이 꽤 많이 늘었으니 헛된 시간은 아니었다고 생각한다.
가장 무서웠던 것은 과금이었다. 프리티어는 공짜인 줄 알았으나 모든 게 공짜는 아니었다!
한달에 대략 5~7천원의 비용이 빠져나갔다. 혹시 나도 모르는 사이에 큰 비용이 빠져나갈까봐 너무 조마조마 했다.
이것도 제대로 사용하려면 공부를 좀 해야겠다고 생각했다.
3.느낀점
다음 사이드 프로젝트는 진행과정을 기록하며 진행해야 겠다.
이번 프로젝트는 일단 결과물을 보고 싶어서 호다닥 진행에 급급했더니, 기록해 놓은 것이 별로 없다!
다 끝난 다음에 차근차근 정리하려 했으나, 생각이 나질않았다.
기록의 중요성을 느끼며 이렇게 프로젝트가 끝난 뒤를 간단히 기록해본다.
대략 3주 정도 퇴근하고 고생해가며 진행했는데, 솔직히 개인적으로는 굉장히 기분이 좋았지만, 워낙 흔한 주제였기 때문에 주변 사람들에게 큰 반응을 얻지는 못했다.
다시 한 번 비주얼과 주제의 중요성을 느낀다.
'사이드 프로젝트 > 로또명당' 카테고리의 다른 글
[Spring Boot 사이드 프로젝트] 4. 정적 리소스(html, css, js) 바로 반영 설정(spring boot devtools) (0) | 2024.05.18 |
---|---|
[Spring Boot 사이드 프로젝트] 3. Thymeleaf Layout 적용 (Tiles 대체) (2) | 2024.05.13 |
[Spring Boot 사이드 프로젝트] 2. 깃허브에 프로젝트 올리기(인텔리제이) (0) | 2024.05.12 |
[Spring Boot 사이드 프로젝트] 1. Spring boot 프로젝트 세팅 (0) | 2024.05.11 |
[Spring Boot 사이드 프로젝트] 0. 사이드 프로젝트의 시작 방법 (0) | 2024.05.10 |