해커톤 - GGUM 해커톤 (가톨릭대 학술제)

Rowan Lee·2024년 10월 31일

대회&해커톤

목록 보기
4/4


가톨릭대학교 빈 강의실 찾기 서비스 CAT-SPOT

깃허브 : https://github.com/GGUM-5

👨‍💻 개발과정 & 나의 역할

역할 : 도서관 크롤러(스케줄러), 도서관 정보 API, 건의사항 API
백엔드 레포 : https://github.com/GGUM-5/GGUM5-back

크롤러

Jsoup으로 학교의 도서관 데이터를 1분 단위로 끌어와 MySQL 서버에 업데이트하고 이를 사용자에게 제공

건의사항 API

건의사항을 제출하는 페이지 외에 페이지는 프론트에서 만들 여유가 없었기에 타협안으로 디스코드 웹훅을 통해 저장되도록 구현

핵심 차별점: 테스트 커버리지 98%

개발자 전원 개발 경험이 있어서 커버리지 100%를 목표로 테스트 코드를 작성해보았다.
테스트 코드를 연습해보고자 처음 진행해보았는데, 아무래도 의존성을 끊어내는 과정이 가장 어려웠다. 크롤러의 경우 특히 모킹을 위해서 html코드를 작성하기도 했다.

직접 느낀 테스트 코드의 장점

  • 수치로 느껴지는 안정성
  • 테스트 코드를 작성하기 위한 적절한 설계 재고민
  • 빠른 테스팅

해커톤에서 테스트 코드를 특히 커버리지를 지표로 내는 것은 시간상 어려운 일이였고, 이 점이 꽤 좋은 평가를 받을 수 있었다.

🚀 결과물

[CAT-SPOT 깃허브]

✨ 제공 서비스

  • 도서관 잔여좌석 실시간 조회
  • 빈강의실 정보 조회
  • 서비스 건의사항

🌊 트러블 슈팅

CORS
https://github.com/GGUM-5/GGUM5-back/issues/15
테스트 코드를 위한 크롤러 설계 변경
https://github.com/GGUM-5/GGUM5-back/issues/10

📝 배우고 느낀 점 & 아쉬운 점

  • 잘한 점
    서비스가 특별하다거나 엄청난 기술을 쓰지는 않았지만, 개발과정에 완성도가 있었다. 개발자 전원 프로젝트 경험이 있어서, 컨벤션을 정하고 이슈를 등록하고 브랜치를 파고 PR을 통해 통합하는 과정이 끝까지 잘 이루어졌다.
    또한 테스트 코드를 공부하기 위해 커버리지를 확실히 확보한 점이 잘했다고 느낀다.

  • 아쉬운 점
    특별히 아쉬운 점은 없었지만, 조금 특별한 기술을 사용하거나 캐쉬서버로 Redis까지 적용했다면 더욱 좋은 성능을 보였을 것 같다.

🖇 관련 링크

[해커톤 홍보글]

profile
CS/Software Engineer

0개의 댓글