Skip to content

About

πŸƒβ€β™‚οΈ μ „κ΅­ λ§ˆλΌν†€ λŒ€νšŒ 일정 λͺ¨λ°”일 μ›Ήμ•± - μ‹€μ‹œκ°„ 검색, 필터링, PWA 지원

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

4 Commits

Folders and files

Repository files navigation

λ§ˆλΌν†€ λŒ€νšŒ 일정 - λͺ¨λ°”일 μ΅œμ ν™” μ„œλΉ„μŠ€

ν”„λ‘œμ νŠΈ κ°œμš”

κΈ°μ‘΄ λ§ˆλΌν†€ λŒ€νšŒ 일정 μ‚¬μ΄νŠΈ(http://marathon.pe.kr/index_calendar.html)λ₯Ό λͺ¨λ°”일에 μ΅œμ ν™”ν•˜μ—¬ μ œκ³΅ν•˜λŠ” SpringBoot 기반 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μž…λ‹ˆλ‹€.

μ£Όμš” κΈ°λŠ₯

  • πŸ“± λͺ¨λ°”일 μ΅œμ ν™”λœ λ°˜μ‘ν˜• UI/UX
  • πŸ” λ‹€μ–‘ν•œ 쑰건으둜 λ§ˆλΌν†€ λŒ€νšŒ 검색
    • μ’…λͺ©λ³„ ν•„ν„° (ν’€μ½”μŠ€, ν•˜ν”„, 10K, 5K, 기타)
    • μš”μΌλ³„ ν•„ν„°
    • μ ‘μˆ˜μƒνƒœλ³„ ν•„ν„° (μ ‘μˆ˜μ€‘, μ ‘μˆ˜μ™„λ£Œ, μ ‘μˆ˜μ˜ˆμ •)
    • 지역별 ν•„ν„° (μ „κ΅­ 17개 μ‹œλ„)
    • 년도/월별 ν•„ν„°
  • πŸƒβ€β™‚οΈ μ‹€μ‹œκ°„ λŒ€νšŒ 정보 제곡
  • πŸ“… λŒ€νšŒ 일정 μΊ˜λ¦°λ” λ·°
  • πŸ”— λŒ€νšŒ μ ‘μˆ˜ 링크 μ—°κ²°
  • πŸ’Ύ PWA 지원 (μ•± μ„€μΉ˜ κ°€λŠ₯)

기술 μŠ€νƒ

  • Backend: Spring Boot 3.2.0, JPA/Hibernate
  • Frontend: Thymeleaf, HTML5, CSS3, JavaScript
  • Database: H2 (개발), PostgreSQL (운영)
  • Build Tool: Gradle 8.4
  • Deployment: Docker, CloudType.io

둜컬 μ‹€ν–‰ 방법

사전 μš”κ΅¬μ‚¬ν•­

  • Java 17 이상
  • Gradle 8.x 이상 (λ˜λŠ” Gradle Wrapper μ‚¬μš©)

μ‹€ν–‰ 단계

# μ €μž₯μ†Œ 클둠
git clone [repository-url]
cd marathon-mobile-app

# μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰
./gradlew bootRun

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹€ν–‰λ˜λ©΄ http://localhost:8080 μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

Gradle λͺ…λ Ήμ–΄

# ν”„λ‘œμ νŠΈ λΉŒλ“œ
./gradlew build

# μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰
./gradlew bootRun

# ν…ŒμŠ€νŠΈ μ‹€ν–‰
./gradlew test

# JAR 파일 생성
./gradlew bootJar

Docker둜 μ‹€ν–‰

# Docker 이미지 λΉŒλ“œ
docker build -t marathon-mobile-app .

# μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰
docker run -p 8080:8080 marathon-mobile-app

CloudType.io 배포

  1. GitHub에 μ†ŒμŠ€μ½”λ“œ ν‘Έμ‹œ
  2. CloudType.ioμ—μ„œ μƒˆ ν”„λ‘œμ νŠΈ 생성
  3. GitHub μ €μž₯μ†Œ μ—°κ²°
  4. λΉŒλ“œνŒ©: Java 선택
  5. λΉŒλ“œ λͺ…λ Ή: ./gradlew bootJar
  6. μ‹€ν–‰ λͺ…λ Ή: java -jar build/libs/marathon-mobile-app.jar
  7. 포트: 8080 μ„€μ •
  8. μžλ™ 배포 μ™„λ£Œ

ν™˜κ²½ λ³€μˆ˜ μ„€μ • (운영 ν™˜κ²½)

# λ°μ΄ν„°λ² μ΄μŠ€ μ„€μ • (PostgreSQL μ‚¬μš©μ‹œ)
SPRING_DATASOURCE_URL=jdbc:postgresql://[host]:[port]/[database]
SPRING_DATASOURCE_USERNAME=[username]
SPRING_DATASOURCE_PASSWORD=[password]

# ν”„λ‘œνŒŒμΌ μ„€μ •
SPRING_PROFILES_ACTIVE=prod

API μ—”λ“œν¬μΈνŠΈ

  • GET / - 메인 νŽ˜μ΄μ§€
  • GET /api/events - λ§ˆλΌν†€ 이벀트 API (JSON)
    • 쿼리 νŒŒλΌλ―Έν„°: category, dayOfWeek, registrationStatus, region, year, month

ν”„λ‘œμ νŠΈ ꡬ쑰

src/
β”œβ”€β”€ main/
β”‚   β”œβ”€β”€ java/com/marathon/app/
β”‚   β”‚   β”œβ”€β”€ MarathonMobileApplication.java
β”‚   β”‚   β”œβ”€β”€ controller/
β”‚   β”‚   β”‚   └── MarathonController.java
β”‚   β”‚   β”œβ”€β”€ model/
β”‚   β”‚   β”‚   β”œβ”€β”€ MarathonEvent.java
β”‚   β”‚   β”‚   └── MarathonEventRepository.java
β”‚   β”‚   β”œβ”€β”€ service/
β”‚   β”‚   β”‚   β”œβ”€β”€ MarathonEventService.java
β”‚   β”‚   β”‚   └── MarathonCrawlerService.java
β”‚   β”‚   └── config/
β”‚   β”‚       └── DataInitializer.java
β”‚   └── resources/
β”‚       β”œβ”€β”€ templates/
β”‚       β”‚   └── index.html
β”‚       β”œβ”€β”€ static/
β”‚       β”‚   β”œβ”€β”€ css/style.css
β”‚       β”‚   β”œβ”€β”€ js/app.js
β”‚       β”‚   └── manifest.json
β”‚       └── application.properties
└── test/
    └── java/com/marathon/app/

build.gradle          # Gradle λΉŒλ“œ μ„€μ •
settings.gradle       # Gradle ν”„λ‘œμ νŠΈ μ„€μ •
gradle/               # Gradle Wrapper νŒŒμΌλ“€
gradlew              # Gradle Wrapper μ‹€ν–‰ 슀크립트 (Unix)

νŠΉμ§•

  • λͺ¨λ°”일 퍼슀트: λͺ¨λ°”일 ν™˜κ²½μ— μ΅œμ ν™”λœ UI/UX
  • λ°˜μ‘ν˜• λ””μžμΈ: λ‹€μ–‘ν•œ ν™”λ©΄ 크기에 적응
  • Progressive Web App: μ•± μ„€μΉ˜ 및 μ˜€ν”„λΌμΈ 지원
  • μ‹€μ‹œκ°„ 데이터: μžλ™ 크둀링으둜 μ΅œμ‹  정보 제곡
  • μ‚¬μš©μž μΉœν™”μ : 직관적인 필터링 및 검색 κΈ°λŠ₯

개발 κ³„νš

  • μ‹€μ œ λ§ˆλΌν†€ μ‚¬μ΄νŠΈ 크둀링 κ΅¬ν˜„
  • μ‚¬μš©μž 즐겨찾기 κΈ°λŠ₯
  • ν‘Έμ‹œ μ•Œλ¦Ό κΈ°λŠ₯
  • λŒ€νšŒ ν›„κΈ° 및 평점 μ‹œμŠ€ν…œ
  • 카카였맡/넀이버맡 연동

λΌμ΄μ„ΌμŠ€

MIT License

κΈ°μ—¬ 방법

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

문의

μ΄μŠˆλ‚˜ κ°œμ„ μ‚¬ν•­μ΄ μžˆμœΌμ‹œλ©΄ GitHub Issuesλ₯Ό 톡해 λ¬Έμ˜ν•΄μ£Όμ„Έμš”.

About

πŸƒβ€β™‚οΈ μ „κ΅­ λ§ˆλΌν†€ λŒ€νšŒ 일정 λͺ¨λ°”일 μ›Ήμ•± - μ‹€μ‹œκ°„ 검색, 필터링, PWA 지원

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages