🔗 서비스 링크:
https://ku-check.vercel.app
- 큐첵은 큐시즘 운영에 흩어져 있던 출결, 상벌점, 공지, 불참사유서 제출을 하나로 통합해 학회 운영을 더 정확하고 간편하게 만드는 전용 관리 서비스입니다.
- 운영진은 반복적인 수기 행정을 줄일 수 있고, 학회원은 내 활동 현황과 이번 주 핵심 정보를 한 곳에서 확인하며 불참사유서까지 앱에서 바로 제출할 수 있습니다.
| 김영록 | 김민지 |
|---|---|
backend |
backend |
| 기술 스택 | 사용 이유 |
|---|---|
| Spring Kotlin | Kotlin은 간결하고 읽기 쉬운 문법을 제공하여 개발 생산성이 높아진다고 판단해 사용했습니다. Java 기반 기술 스택과 완벽히 호환되어 러닝커브가 적다고 생각했습니다. Null-safety 덕분에 런타임 오류(NPE)를 줄일 수 있어 선택했습니다. |
| Spring Data JPA | SQL을 직접 작성하지 않고 객체지향적인 방식으로 DB를 다루기 위해 JPA를 사용하였으며, Spring 환경에서 이를 쉽게 활용할 수 있도록 지원하는 Spring Data JPA를 선택했습니다. |
| AWS EC2 | 서비스 배포 서버로 사용했습니다. |
| AWS S3 | 큐픽 증빙사진, 불참증명서 파일 등을 저장하기 위한 파일 저장소로 사용했습니다. |
| AWS RDS | 타 클라우드 대비 저렴하고, VPC·보안 그룹과 통합되어 안전한 접근 제어가 가능하여 사용했습니다. |
| Docker | 개발 및 배포 환경을 컨테이너화하여 일관된 환경을 유지하기 위해 사용했습니다. |
| GitHub Actions | GitHub 기반으로 CI 환경을 일원화하여 자동화된 빌드 및 테스트 환경을 구축하기 위해 사용했습니다. |
| MySQL 8.x | MySQL 5 대비 향상된 성능, 강화된 보안 기능, 공간 데이터 처리 기능을 제공하여 사용했습니다. |
| Redis | TTL을 제공해 토큰과 같은 세션 정보를 유효시간 기반으로 관리할 수 있습니다. 메모리 기반 저장소로 DB 대비 빠른 속도를 제공하여 로그인 등 세션 관리에 적합합니다. |
| JUnit | JUnit Jupiter/Platform/Vintage 등 모듈형 구성 덕분에 유연하고 확장 가능한 테스트 환경을 제공하여 사용했습니다. |
| AssertJ | 외부 의존성을 모킹해 특정 단위만 독립적으로 테스트할 수 있습니다. 호출 검증, 다양한 입력 조건 설정 등 정교한 테스트 시나리오 구현이 가능하여 선택했습니다. |
| Swagger | 클라이언트–서버 간 API 명세서로 활용하기 위해 사용했습니다. |
e.g. feat: 카카오 로그인 구현 #1
| Type | 내용 |
|---|---|
feat |
새로운 기능 추가 |
fix |
버그 수정 |
hotfix |
서비스 장애 등 긴급 이슈 수정 |
test |
테스트 코드 추가 및 수정, 삭제 |
refactor |
코드 리팩토링 |
deploy |
배포 관련 작업 (CI/CD, 서버 설정, 배포 스크립트 등) |
setting |
개발 환경 세팅 |