습관을 만들고, 목표를 달성하는 챌린지 플랫폼
Makify는 사용자들이 개인적인 목표나 습관을 달성할 수 있도록 돕는 챌린지 플랫폼입니다.
예치금 시스템을 통해 동기부여를 제공하고, 실시간 인증을 통해 목표 달성을 재미있게 만듭니다.
스터디 모임에서 지각 벌금을 모임통장으로 관리하던 경험에서 시작했습니다. "8시까지 학원 도착하기", "벌금으로 커피 쏘기" 같은 소소한 약속들을 더 체계적으로 관리하고 싶었고,
챌린저스 앱에서 영감을 받아 웹에서 직접 인증할 수 있는 나만의 챌린지 서비스를 구현했습니다.
| 사용자 화면 #1 - 챌린지 목록 | 사용자 화면 #2 - 검색어 자동 완성 |
|---|---|
![]() |
![]() |
| 사용자 화면 #3 - 챌린지 상세 | 사용자 화면 #4 - 외부 결제 API |
![]() |
![]() |
| 사용자 화면 #5 - 마이페이지 | 사용자 화면 #6 - 인증하기 |
![]() |
![]() |
| 사용자 화면 #7 - 내 인증 내역 | 사용자 화면 #8 - 다른 사람 인증 내역 |
- 챌린지 생성 / 목록 / 상세 조회
- 카테고리, 공개 여부, 인증 빈도 설정
- 예치금 기반 참여 시스템 (고정 / 자유 예치금)
- 비공개 챌린지 참여 코드 지원
- 카메라 / 앨범 업로드로 인증 사진 제출
- 인증 시간대 제한 설정
- AWS S3 이미지 저장
- Trie + Redis 기반 실시간 자동완성
- AOP 기반 검색 로그 수집
- Iamport API 연동 예치금 결제
- Facade 패턴으로 결제 로직 분리
- BigDecimal 기반 금액 계산
- JWT 기반 인증 (Access + Refresh Token, Redis 저장)
- Spring AOP 로깅
- AWS EC2 + RDS + S3 연동 완료
- HTTPS 적용 (Nginx + Let's Encrypt)
- GitHub Actions CI/CD 자동 배포
- Java 17 - 최신 자바 LTS 버전
- Spring Boot 3.2 - 메인 프레임워크
- Spring Security - 인증/인가 시스템
- Spring Data JPA - ORM 및 데이터 액세스
- JWT - 토큰 기반 인증
- MySQL 8.0 - 메인 데이터베이스
- Redis 7.0 - 캐싱 및 세션 스토어
- Thymeleaf - 서버사이드 템플릿 엔진
- Bootstrap 5 - UI 프레임워크
- JavaScript ES6+ - 클라이언트 사이드 로직
- AWS EC2 - 서버 호스팅
- Gradle - 빌드 도구
- Git - 버전 관리
src/main/java/com/xladmt/makify/
├── application/ # 애플리케이션 서비스 (Facade 패턴)
│ └── PaymentFacade.java
├── challenge/ # 챌린지 도메인
│ ├── controller/
│ ├── service/
│ ├── repository/
│ ├── dto/
│ └── validator/
├── payment/ # 결제 도메인
│ ├── controller/
│ ├── service/
│ ├── repository/
│ └── dto/
├── member/ # 회원 도메인
│ ├── controller/
│ ├── service/
│ └── repository/
├── common/ # 공통 컴포넌트
│ ├── entity/ # 공통 엔티티
│ ├── constant/ # 상수 정의
│ ├── config/ # 설정 클래스
│ ├── exception/ # 예외 처리
│ └── validator/ # 검증 로직
└── MakifyApplication.java





