Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hyunsoo730/capstone_fullstack

πŸŽˆμ„œμšΈμ‹œ 지역 μƒκΆŒ 뢄석 및 μΆ”μ²œ μ„œλΉ„μŠ€
https://github.com/hyunsoo730/capstone_fullstack

querydsl-jpa spring-data-jpa springbatch springboot

Last synced: 4 days ago
JSON representation

πŸŽˆμ„œμšΈμ‹œ 지역 μƒκΆŒ 뢄석 및 μΆ”μ²œ μ„œλΉ„μŠ€

Awesome Lists containing this project

README

        

# μ°½μ—…μŠ€νŒŸνŒŒμΈλ” 🏬


μ°½μ—…μŠ€νŒŸνŒŒμΈλ” 이미지

# μ°½μ—…μŠ€νŒŸνŒŒμΈλ” - μ„œμšΈμ‹œ μƒκΆŒ 뢄석 및 μΆ”μ²œ μ„œλΉ„μŠ€
> **μ„œμšΈμ‹œμ˜ μƒκΆŒμ„ λΆ„μ„ν•˜κ³  μΆ”μ²œν•˜λŠ” μ„œλΉ„μŠ€λ‘œ, 창업을 ν¬λ§ν•˜λŠ” μ‚¬λžŒλ“€μ—κ²Œ 졜적의 μ°½μ—… μž₯μ†Œλ₯Ό μΆ”μ²œν•΄μ£ΌλŠ” 것을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€.**

> **κ°œλ°œκΈ°κ°„: 2023.03 ~ 2023.06 (15μ£Ό)**

## πŸš€ ν”„λ‘œμ νŠΈ μ†Œκ°œ

μ°½μ—…μŠ€νŒŸνŒŒμΈλ”λŠ” 창업을 ν¬λ§ν•˜λŠ” μ‚¬λžŒλ“€μ„ μœ„ν•΄ μ„œμšΈμ‹œμ˜ μƒκΆŒμ„ λΆ„μ„ν•˜κ³  μΆ”μ²œν•˜λŠ” μ„œλΉ„μŠ€μž…λ‹ˆλ‹€. 이 μ„œλΉ„μŠ€λŠ” λ‹€μ–‘ν•œ μƒκΆŒ 데이터λ₯Ό 기반으둜 μƒκΆŒμ˜ νŠΉμ„±κ³Ό νŠΈλ Œλ“œλ₯Ό λΆ„μ„ν•˜μ—¬ 졜적의 μ°½μ—… μž₯μ†Œλ₯Ό μΆ”μ²œν•©λ‹ˆλ‹€. μ‚¬μš©μžκ°€ 직접 μ›ν•˜λŠ” μš°μ„ μˆœμœ„λ₯Ό 선택할 수 있으며, μ°½μ—… μž…μ§€μ— κ°€μ€‘μΉ˜λ₯Ό λΆ€μ—¬ν•˜μ—¬ κ°€μ€‘μΉ˜ 기반으둜 μΆ”μ²œν•©λ‹ˆλ‹€. μ£Όμš” κΈ°λŠ₯μœΌλ‘œλŠ” μƒκΆŒ 뢄석, κ°€μ€‘μΉ˜ 기반 μΆ”μ²œ, μ‚¬μš©μž 리뷰 관리 등이 ν¬ν•¨λ©λ‹ˆλ‹€.

μ°½μ—… μž…μ§€ 선정은 μ°½μ—…μ˜ μ„±νŒ¨λ₯Ό μ’Œμš°ν•˜λŠ” μ€‘μš”ν•œ μš”μ†Œ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ§Žμ€ μ°½μ—…μžλ“€μ΄ 정보 λΆ€μ‘±κ³Ό λΆ„μ„μ˜ μ–΄λ €μ›€μœΌλ‘œ 인해 졜적의 μž…μ§€λ₯Ό μ„ νƒν•˜λŠ” 데 어렀움을 κ²ͺκ³  μžˆμŠ΅λ‹ˆλ‹€. μ°½μ—…μŠ€νŒŸνŒŒμΈλ”λŠ” μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κ³ μž μ„œμšΈμ‹œ μƒκΆŒ 데이터λ₯Ό 뢄석 및 κ°€κ³΅ν•˜μ—¬ μ°½μ—…μžλ“€μ—κ²Œ μ‹€μ§ˆμ μΈ 도움을 μ œκ³΅ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€.

μ°½μ—…μŠ€νŒŸνŒŒμΈλ”λŠ” μ‚¬μš©μž μΉœν™”μ μΈ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 μ°½μ—…μžλ“€μ΄ μ‰½κ²Œ μƒκΆŒ 정보λ₯Ό νƒμƒ‰ν•˜κ³  이해할 수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€. λ˜ν•œ μ‚¬μš©μžκ°€ μ€‘μš”ν•˜κ²Œ μƒκ°ν•˜λŠ” μž…μ§€ 쑰건을 λ°”νƒ•μœΌλ‘œ λ§žμΆ€ν˜• μ°½μ—… μž₯μ†Œλ₯Ό μΆ”μ²œν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 본인듀이 μš°μ„ μœΌλ‘œ μƒκ°ν•˜λŠ” 쑰건에 κΈ°λ°˜ν•œ μ˜μ‚¬ 결정을 내릴 수 있으며, μ°½μ—… 성곡 κ°€λŠ₯성을 높일 수 μžˆμŠ΅λ‹ˆλ‹€.

## πŸ† μˆ˜μƒ

- πŸ₯‡ **μž₯렀상** - 2023 μ„œμšΈμ‹œ 열린데이터 κ²½μ§„λŒ€νšŒ
- μ„œμšΈνŠΉλ³„μ‹œκ°€ μ£Όμ΅œν•˜λŠ” 열린데이터 κ²½μ§„λŒ€νšŒμ—μ„œ μž₯렀상을 μˆ˜μƒν–ˆμŠ΅λ‹ˆλ‹€.
- πŸ₯‡ **μž₯렀상** - 2023 제15회 μ„Έμ’…λŒ€ν•™κ΅ μ°½μ˜μ„€κ³„κ²½μ§„λŒ€νšŒ μž₯렀상
- μ„Έμ’…λŒ€ν•™κ΅μ—μ„œ μ£Όμ΅œν•˜λŠ” μ°½μ˜μ„€κ³„κ²½μ§„λŒ€νšŒμ—μ„œ μž₯렀상을 μˆ˜μƒν–ˆμŠ΅λ‹ˆλ‹€.

## πŸ› οΈ 기술 μŠ€νƒ
### Environment
![Java](https://img.shields.io/badge/Java-007396?style=for-the-badge&logo=java&logoColor=white)
![Spring Boot](https://img.shields.io/badge/Spring%20Boot-6DB33F?style=for-the-badge&logo=springboot&logoColor=white)
![MySQL](https://img.shields.io/badge/MySQL-4479A1?style=for-the-badge&logo=mysql&logoColor=white)
![React](https://img.shields.io/badge/React-61DAFB?style=for-the-badge&logo=react&logoColor=black)

### Config
![npm](https://img.shields.io/badge/npm-CB3837?style=for-the-badge&logo=npm&logoColor=white)
![Gradle](https://img.shields.io/badge/Gradle-02303A?style=for-the-badge&logo=gradle&logoColor=white)

### Development
![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black)
![Spring Data JPA](https://img.shields.io/badge/Spring%20Data%20JPA-6DB33F?style=for-the-badge&logo=spring&logoColor=white)
![MyBatis](https://img.shields.io/badge/MyBatis-000000?style=for-the-badge&logo=mybatis&logoColor=white)
![QueryDSL](https://img.shields.io/badge/QueryDSL-0769AD?style=for-the-badge&logo=QueryDSL&logoColor=white)
![Spring Batch](https://img.shields.io/badge/Spring%20Batch-6DB33F?style=for-the-badge&logo=spring&logoColor=white)
![Spring Quartz](https://img.shields.io/badge/Spring%20Quartz-6DB33F?style=for-the-badge&logo=spring&logoColor=white)

### DevOps
![AWS EC2](https://img.shields.io/badge/AWS%20EC2-232F3E?style=for-the-badge&logo=amazonec2&logoColor=white)

### Communication
![Slack](https://img.shields.io/badge/Slack-4A154B?style=for-the-badge&logo=slack&logoColor=white)
![Notion](https://img.shields.io/badge/Notion-000000?style=for-the-badge&logo=notion&logoColor=white)

## πŸ‘₯ νŒ€ μ†Œκ°œ
### νŒ€μ›
| μ‘°ν˜„μˆ˜ | λ°°μŠΉμ§„ | 이재혁 | 신주희 |
| :------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| | | | |
| [@hyunsoo](https://github.com/HyunSoo730) | [@Seung-jin](https://github.com/pip-izony) | [@Jae-hyeok](https://github.com/JaeHyeokee) | [@Ju-hee](https://github.com/juhee1224) |
| λ°±μ—”λ“œ 개발 | ν”„λ‘ νŠΈμ—”λ“œ 개발 | ν”„λ‘ νŠΈμ—”λ“œ 개발 | λ°±μ—”λ“œ 개발 |

## πŸ™‹β€β™‚οΈ λ°±μ—”λ“œ 개발자 μ—­ν•  및 기여도
| 이름 | μ—­ν•  및 기여도 |
|------|--------------|
| μ‘°ν˜„μˆ˜ | - πŸš€ λ°±μ—”λ“œ 개발 λ¦¬λ“œλ‘œμ„œ ν”„λ‘œμ νŠΈ μ•„ν‚€ν…μ²˜ 섀계 및 개발 총괄
- 🎨 Spring Bootλ₯Ό ν™œμš©ν•œ RESTful API κ΅¬ν˜„ 및 λ¬Έμ„œν™”
- βš™οΈ Spring Batchλ₯Ό ν™œμš©ν•œ 데이터 μˆ˜μ§‘ 및 뢄석 배치 μž‘μ—… κ΅¬ν˜„
- πŸ’Ύ λ°μ΄ν„°λ² μ΄μŠ€ μ„±λŠ₯ μ΅œμ ν™” 및 인덱싱 μž‘μ—… μˆ˜ν–‰
- 🌐 배포 및 운영 ν™˜κ²½ ꡬ좕 및 관리|
| 신주희 | - 🀝 유튜브 νŠΈλ Œλ“œ κ΄€λ ¨ μ„œλ²„ 개발 λ‹΄λ‹Ή
- 🌿 Spring Data JPA, QueryDSL을 ν™œμš©ν•œ 데이터 μ•‘μ„ΈμŠ€ 둜직 개발
- πŸ“Š μƒκΆŒ 데이터 뢄석 μ•Œκ³ λ¦¬μ¦˜ 섀계 및 κ΅¬ν˜„
- πŸ§ͺ API μ„±λŠ₯ ν…ŒμŠ€νŠΈ 및 μ΅œμ ν™” μž‘μ—… μˆ˜ν–‰
- 🎨 μ½”λ“œ λ¦¬νŒ©ν† λ§μ„ ν†΅ν•œ μœ μ§€λ³΄μˆ˜μ„± κ°œμ„ |

## πŸ“Š ERD (Entity-Relationship Diagram)
![ERD](https://i.postimg.cc/PJs1bWs9/ERD.png)

ν”„λ‘œμ νŠΈμ˜ λ°μ΄ν„°λ² μ΄μŠ€λŠ” μœ„μ™€ 같은 ERDλ₯Ό 기반으둜 μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

- `User` ν…Œμ΄λΈ”: μ‚¬μš©μž 정보λ₯Ό μ €μž₯ν•˜λŠ” ν…Œμ΄λΈ”μž…λ‹ˆλ‹€. μ‚¬μš©μžμ˜ κΈ°λ³Έ 정보와 ν•¨κ»˜ μ„ ν˜Έν•˜λŠ” μ°½μ—… μ•„μ΄ν…œ, μ˜ˆμ‚° λ“±μ˜ 정보λ₯Ό κ΄€λ¦¬ν•©λ‹ˆλ‹€.
- `Region` ν…Œμ΄λΈ”: μ„œμšΈμ‹œμ˜ 각 ꡬ역 정보λ₯Ό μ €μž₯ν•˜λŠ” ν…Œμ΄λΈ”μž…λ‹ˆλ‹€. ꡬ역별 μƒκΆŒ ν˜„ν™©κ³Ό νŠΈλ Œλ“œ 정보λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.
- `Store` ν…Œμ΄λΈ”: 각 ꡬ역 λ‚΄ 점포 정보λ₯Ό μ €μž₯ν•˜λŠ” ν…Œμ΄λΈ”μž…λ‹ˆλ‹€. 점포의 μ—…μ’…, 맀좜, κ°œμ—…/폐업 정보 등을 κ΄€λ¦¬ν•©λ‹ˆλ‹€.
- `SalesData` ν…Œμ΄λΈ”: 각 점포의 맀좜 데이터λ₯Ό μ €μž₯ν•˜λŠ” ν…Œμ΄λΈ”μž…λ‹ˆλ‹€. μ‹œκ³„μ—΄ λ°μ΄ν„°λ‘œ κ΅¬μ„±λ˜μ–΄ 있으며, μƒκΆŒ 뢄석에 ν™œμš©λ©λ‹ˆλ‹€.
- `Recommendation` ν…Œμ΄λΈ”: μ‚¬μš©μžμ—κ²Œ μΆ”μ²œλœ μ°½μ—… μž₯μ†Œ 정보λ₯Ό μ €μž₯ν•˜λŠ” ν…Œμ΄λΈ”μž…λ‹ˆλ‹€. μ‚¬μš©μžμ˜ μ„ ν˜Έλ„μ™€ μƒκΆŒ 뢄석 κ²°κ³Όλ₯Ό λ°”νƒ•μœΌλ‘œ μƒμ„±λ©λ‹ˆλ‹€.

## πŸ“… 개발 κΈ°κ°„
- 2023.03 ~ 2023.06 (15μ£Ό)

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

### μƒκΆŒ 데이터 뢄석
- μ„œμšΈμ‹œ 열린데이터 κ΄‘μž₯μ—μ„œ μ œκ³΅ν•˜λŠ” μƒκΆŒ 데이터λ₯Ό μˆ˜μ§‘ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯ν•©λ‹ˆλ‹€.
- μˆ˜μ§‘λœ 데이터λ₯Ό λ°”νƒ•μœΌλ‘œ 각 κ΅¬μ—­μ˜ μƒκΆŒ ν˜„ν™©κ³Ό νŠΈλ Œλ“œλ₯Ό λΆ„μ„ν•©λ‹ˆλ‹€.
- 업쒅별, μ‹œκΈ°λ³„ 맀좜 좔이λ₯Ό μ‹œκ°ν™”ν•˜μ—¬ 차트둜 μ‚¬μš©μžμ—κ²Œ μ œκ³΅ν•©λ‹ˆλ‹€.

### μ°½μ—… 지역 μΆ”μ²œ
- μ‚¬μš©μžλ‘œλΆ€ν„° μ°½μ—… μ•„μ΄ν…œ, μ˜ˆμ‚°, μ„ ν˜Έ 쑰건 등을 μž…λ ₯λ°›μŠ΅λ‹ˆλ‹€.
- μž…λ ₯된 정보λ₯Ό λ°”νƒ•μœΌλ‘œ μƒκΆŒ 뢄석 결과와 λ§€μΉ­ν•˜μ—¬ 졜적의 μ°½μ—… μž₯μ†Œλ₯Ό μΆ”μ²œν•©λ‹ˆλ‹€.
- μΆ”μ²œ κ²°κ³ΌλŠ” 지도에 ν‘œμ‹œλ˜λ©°, 각 μΆ”μ²œ μž₯μ†Œμ˜ 상세 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

### μ‚¬μš©μž 리뷰 관리
- μ‚¬μš©μžλŠ” μΆ”μ²œλ°›μ€ μ°½μ—… μž₯μ†Œμ— λŒ€ν•œ 리뷰λ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
- λ¦¬λ·°λŠ” λ‹€λ₯Έ μ‚¬μš©μžλ“€κ³Ό κ³΅μœ λ˜μ–΄ μ°½μ—… μ˜μ‚¬ 결정에 도움을 μ€λ‹ˆλ‹€.

## πŸ“Ί ν™”λ©΄ ꡬ성

| 메인 νŽ˜μ΄μ§€ | μƒκΆŒ 뢄석 |
| :-------------------------------------------: | :-------------------------------------------: |
| 메인 νŽ˜μ΄μ§€ | μƒκΆŒ 뢄석 |
| μ‚¬μš©μžλŠ” 메인 νŽ˜μ΄μ§€μ—μ„œ μ„œμšΈμ‹œ 지도λ₯Ό 톡해 각 κ΅¬μ—­μ˜ μƒκΆŒ ν˜„ν™©μ„ ν•œ λˆˆμ— νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ°„λ‹¨ν•œ 검색을 톡해 μ›ν•˜λŠ” μ§€μ—­μ˜ 정보λ₯Ό λΉ λ₯΄κ²Œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. | μƒκΆŒ 뢄석 νŽ˜μ΄μ§€μ—μ„œλŠ” μ„ νƒν•œ κ΅¬μ—­μ˜ μƒκΆŒ νŠΈλ Œλ“œμ™€ 점포 ν˜„ν™© 등을 μ‹œκ°ν™”λœ 자료둜 μ œκ³΅ν•©λ‹ˆλ‹€. μ‚¬μš©μžλŠ” 업쒅별, μ‹œκΈ°λ³„ 맀좜 좔이λ₯Ό κ·Έλž˜ν”„λ‘œ ν™•μΈν•˜κ³ , μƒκΆŒμ˜ νŠΉμ§•μ„ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. |

| 유튜브 νŠΈλ Œλ“œ 뢄석 |
| :-------------------------------------------: |
| 유튜브 νŠΈλ Œλ“œ 뢄석 |
| 유튜브 νŠΈλ Œλ“œ 뢄석 νŽ˜μ΄μ§€μ—μ„œλŠ” μ„ νƒν•œ κ΅¬μ—­μ˜ 유튜브 νŠΈλ Œλ“œλ₯Ό νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 인기 μžˆλŠ” 유튜브 채널과 λ™μ˜μƒμ„ ν™•μΈν•˜κ³ , ν•΄λ‹Ή μ§€μ—­μ˜ 관심사λ₯Ό 뢄석할 수 μžˆμŠ΅λ‹ˆλ‹€. |

## πŸŽ‰ ν”„λ‘œμ νŠΈ κ²°κ³Ό 및 μ„±κ³Ό
- 🏬 μ„œμšΈμ‹œμ˜ λ°©λŒ€ν•œ μƒκΆŒ 데이터λ₯Ό 배치 ν”„λ‘œμ„Έμ‹± μžλ™ν™” ꡬ좕을 톡해 효과적으둜 뢄석 및 κ°€κ³΅ν•˜μ—¬ μ°½μ—…μžλ“€μ—κ²Œ μ‹€μ§ˆμ μΈ μΈμ‚¬μ΄νŠΈλ₯Ό μ œκ³΅ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
- πŸ“Š μ‚¬μš©μž μΉœν™”μ μΈ μΈν„°νŽ˜μ΄μŠ€μ™€ 직관적인 μ‹œκ°ν™”λ₯Ό 톡해 μ°½μ—…μžλ“€μ΄ μƒκΆŒ 정보λ₯Ό μ‰½κ²Œ μ΄ν•΄ν•˜κ³  ν™œμš©ν•  수 μžˆλ„λ‘ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
- 🎯 μ‚¬μš©μžμ˜ μš”κ΅¬μ‚¬ν•­μ„ λ°˜μ˜ν•˜μ—¬ κ°€μ€‘μΉ˜ 기반 λ§žμΆ€ν˜• μ°½μ—… μž₯μ†Œ μΆ”μ²œμœΌλ‘œ μ°½μ—…μžλ“€μ˜ λ§Œμ‘±λ„λ₯Ό λ†’μ˜€μŠ΅λ‹ˆλ‹€.
- 🌐 Spring Boot와 JPA, QueryDSL을 ν™œμš©ν•˜μ—¬ μ•ˆμ •μ μ΄κ³  효율적인 RESTful API μ„œλ²„λ₯Ό κ΅¬μΆ•ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
- JPAλ₯Ό λ„μž…ν•˜μ—¬ 객체-관계 맀핑(ORM)을 톡해 λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ νŽΈλ¦¬ν•˜κ²Œ μˆ˜ν–‰ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
- QueryDSL을 ν™œμš©ν•˜μ—¬ 동적 쿼리λ₯Ό μƒμ„±ν•˜κ³  μ‹€ν–‰ν•¨μœΌλ‘œμ¨ λ³΅μž‘ν•œ 검색 쑰건을 μœ μ—°ν•˜κ²Œ μ²˜λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
- πŸ—„οΈ λŒ€λŸ‰μ˜ 데이터λ₯Ό 효과적으둜 κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ λ°μ΄ν„°λ² μ΄μŠ€ 인덱싱과 쿼리 μ΅œμ ν™”λ₯Ό μ§„ν–‰ν•˜μ—¬ 검색 및 쑰회 속도λ₯Ό κ°œμ„ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
- ⏰ Spring Batch와 Quartzλ₯Ό ν™œμš©ν•΄ μƒκΆŒ 데이터 μˆ˜μ§‘ 및 뢄석 배치 μž‘μ—…μ„ μžλ™ν™”ν•˜μ—¬ 운영 νš¨μœ¨μ„±μ„ λ†’μ˜€μŠ΅λ‹ˆλ‹€.
- βœ… JUnit5λ₯Ό ν™œμš©ν•œ λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό μ§€μ†μ μœΌλ‘œ μž‘μ„±ν•˜κ³  μˆ˜ν–‰ν•˜μ—¬ μ„œλΉ„μŠ€μ˜ μ•ˆμ •μ„±μ„ ν™•λ³΄ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

## πŸ”§ κ°œμ„  사항 및 μΆ”ν›„ κ³„νš
- πŸ™Œ μ‚¬μš©μžλ“€μ˜ ν”Όλ“œλ°±μ„ 적극 μˆ˜λ ΄ν•˜μ—¬ μ„œλΉ„μŠ€ μ‚¬μš©μ„±κ³Ό νŽΈμ˜μ„±μ„ μ§€μ†μ μœΌλ‘œ κ°œμ„ ν•΄ λ‚˜κ°ˆ μ˜ˆμ •μž…λ‹ˆλ‹€.
- 예) μ‚¬μš©μžμ˜ μ°½μ—… μ•„μ΄ν…œ 및 μ˜ˆμ‚° λ“± μΆ”κ°€ 정보λ₯Ό κ³ λ €ν•˜μ—¬ λ”μš± μ •κ΅ν•œ μΆ”μ²œ μ„œλΉ„μŠ€ 제곡
- πŸ” μƒκΆŒ 데이터 외에도 더 λ‹€μ–‘ν•œ 데이터(μœ λ™ 인ꡬ 톡계, μ†ŒλΉ„ νŠΈλ Œλ“œ λ“±)λ₯Ό ν™œμš©ν•˜μ—¬ λΆ„μ„μ˜ μ§ˆμ„ λ†’μ΄κ³ μž ν•©λ‹ˆλ‹€.
- πŸ“ˆ μ„œλΉ„μŠ€ λͺ¨λ‹ˆν„°λ§ 및 λ‘œκΉ… 체계λ₯Ό κ°•ν™”ν•˜μ—¬ 잠재적인 문제λ₯Ό 사전에 κ°μ§€ν•˜κ³  μ‹ μ†ν•˜κ²Œ λŒ€μ‘ν•  수 μžˆλ„λ‘ ν•  μ˜ˆμ •μž…λ‹ˆλ‹€.
- πŸš€ 배치 μž‘μ—…μ˜ μ„±λŠ₯을 ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄ λΆ„μ‚° 처리 ν”„λ ˆμž„μ›Œν¬(예: Apache Spark)λ₯Ό λ„μž…ν•˜λŠ” λ°©μ•ˆμ„ κ²€ν† ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

## 🚨 νŠΈλŸ¬λΈ”μŠˆνŒ… κ°€μ΄λ“œ
### 데이터 μˆ˜μ§‘ 배치 μž‘μ—… μ‹€νŒ¨
- 증상: μ™ΈλΆ€ APIλ₯Ό 톡해 μƒκΆŒ 데이터λ₯Ό μˆ˜μ§‘ν•˜λŠ” 배치 μž‘μ—…μ΄ κ°„ν—μ μœΌλ‘œ μ‹€νŒ¨ν•˜λŠ” λ¬Έμ œκ°€ λ°œμƒν•˜μ˜€μŠ΅λ‹ˆλ‹€.
- 원인: μ™ΈλΆ€ API의 응닡 지연 λ˜λŠ” μΌμ‹œμ μΈ λ„€νŠΈμ›Œν¬ λΆˆμ•ˆμ •μœΌλ‘œ 인해 데이터 μˆ˜μ§‘ μž‘μ—…μ΄ μ‹€νŒ¨ν•˜λŠ” κ²ƒμœΌλ‘œ νŒŒμ•…λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
- ν•΄κ²°: Spring Batch의 μž¬μ‹œλ„ κΈ°λŠ₯을 ν™œμš©ν•˜μ—¬ μ‹€νŒ¨ν•œ μž‘μ—…μ„ 일정 κ°„κ²©μœΌλ‘œ μžλ™ μž¬μ‹œλ„ν•˜λ„λ‘ μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€. λ˜ν•œ, μ™ΈλΆ€ API 호좜 μ‹œ μ μ ˆν•œ νƒ€μž„μ•„μ›ƒμ„ μ„€μ •ν•˜κ³ , μ˜ˆμ™Έ 처리λ₯Ό κ°•ν™”ν•˜μ—¬ μ•ˆμ •μ„±μ„ λ†’μ˜€μŠ΅λ‹ˆλ‹€.

### λŒ€μš©λŸ‰ 데이터 처리 μ‹œ μ„±λŠ₯ μ €ν•˜
- 증상: μƒκΆŒ 뢄석 μž‘μ—… μ‹œ λŒ€μš©λŸ‰ 데이터λ₯Ό μ²˜λ¦¬ν•  λ•Œ μ„±λŠ₯ μ €ν•˜ 및 응닡 지연이 λ°œμƒν•˜μ˜€μŠ΅λ‹ˆλ‹€.
- 원인: λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λŒ€λŸ‰μ˜ 데이터λ₯Ό ν•œ λ²ˆμ— λ‘œλ”©ν•˜κ³  μ²˜λ¦¬ν•˜λŠ” κ³Όμ •μ—μ„œ μžλ°” λ©”λͺ¨λ¦¬ μš©λŸ‰μ΄ μ œν•œμ— 도달해 λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
- ν•΄κ²°: νŽ˜μ΄μ§•(Paging) 방식을 μ μš©ν•˜μ—¬ 데이터λ₯Ό μž‘μ€ λ‹¨μœ„λ‘œ λ‚˜λˆ„μ–΄ μ²˜λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€. λ˜ν•œ, JPA의 지연 λ‘œλ”©(Lazy Loading) μ „λž΅μ„ μ‚¬μš©ν•˜μ—¬ ν•„μš”ν•œ λ°μ΄ν„°λ§Œ λ‘œλ”©ν•˜λ„λ‘ μ΅œμ ν™”ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ 쀄이고 μ„±λŠ₯을 κ°œμ„ ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

### Querydsl 동적 쿼리 생성 μ‹œ μ—λŸ¬ λ°œμƒ
- 증상: Querydsl을 μ‚¬μš©ν•˜μ—¬ λ™μ μœΌλ‘œ 쿼리λ₯Ό μƒμ„±ν•˜λŠ” κ³Όμ •μ—μ„œ 컴파일 μ—λŸ¬κ°€ λ°œμƒν•˜λŠ” λ¬Έμ œκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
- 원인: Q-class 생성이 μ œλŒ€λ‘œ 이루어지지 μ•Šμ•„ Querydslμ—μ„œ ν•„μš”λ‘œ ν•˜λŠ” ν΄λž˜μŠ€μ™€ λ©”μ„œλ“œλ₯Ό 찾을 수 μ—†μ—ˆκΈ° λ•Œλ¬Έμ΄μ—ˆμŠ΅λ‹ˆλ‹€.
- ν•΄κ²°: ν”„λ‘œμ νŠΈμ˜ λΉŒλ“œ 섀정을 ν™•μΈν•˜κ³ , APT(Annotation Processing Tool) ν”„λ‘œμ„Έμ„œλ₯Ό μ˜¬λ°”λ₯΄κ²Œ μ„€μ •ν•˜μ—¬ Q-classκ°€ μžλ™μœΌλ‘œ μƒμ„±λ˜λ„λ‘ ν•˜μ˜€μŠ΅λ‹ˆλ‹€. λ˜ν•œ, Querydsl 버전과 ν˜Έν™˜λ˜λŠ” μ˜μ‘΄μ„±μ„ μ‚¬μš©ν•˜κ³  μžˆλŠ”μ§€ ν™•μΈν•˜κ³  ν•„μš”ν•œ 경우 버전을 λ§žμΆ”μ–΄ μ£Όμ—ˆμŠ΅λ‹ˆλ‹€.

μ΄λŸ¬ν•œ νŠΈλŸ¬λΈ”μŠˆνŒ… κ²½ν—˜μ„ λ°”νƒ•μœΌλ‘œ μ„œλΉ„μŠ€μ˜ μ•ˆμ •μ„±κ³Ό μ„±λŠ₯을 μ§€μ†μ μœΌλ‘œ κ°œμ„ ν•΄ λ‚˜κ°ˆ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μ•žμœΌλ‘œλ„ λͺ¨λ‹ˆν„°λ§κ³Ό ν”Όλ“œλ°±μ„ 톡해 λ°œμƒν•  수 μžˆλŠ” 문제λ₯Ό 사전에 λ°©μ§€ν•˜κ³ , μ°½μ—…μŠ€νŒŸνŒŒμΈλ”κ°€ μ°½μ—…μžλ“€μ—κ²Œ λ”μš± μœ μš©ν•œ μ„œλΉ„μŠ€λ‘œ μžλ¦¬λ§€κΉ€ν•  수 μžˆλ„λ‘ λ…Έλ ₯ν•˜κ² μŠ΅λ‹ˆλ‹€.