Code Monkey home page Code Monkey logo

capstone_fullstack's Introduction

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

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

μ°½μ—…μŠ€νŒŸνŒŒμΈλ” - μ„œμšΈμ‹œ μƒκΆŒ 뢄석 및 μΆ”μ²œ μ„œλΉ„μŠ€

μ„œμšΈμ‹œμ˜ μƒκΆŒμ„ λΆ„μ„ν•˜κ³  μΆ”μ²œν•˜λŠ” μ„œλΉ„μŠ€λ‘œ, 창업을 ν¬λ§ν•˜λŠ” μ‚¬λžŒλ“€μ—κ²Œ 졜적의 μ°½μ—… μž₯μ†Œλ₯Ό μΆ”μ²œν•΄μ£ΌλŠ” 것을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€.
κ°œλ°œκΈ°κ°„: 2023.03 ~ 2023.06 (15μ£Ό)

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

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

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

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

πŸ† μˆ˜μƒ

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

πŸ› οΈ 기술 μŠ€νƒ

Environment

Java Spring Boot MySQL React

Config

npm Gradle

Development

JavaScript Spring Data JPA MyBatis QueryDSL Spring Batch Spring Quartz

DevOps

AWS EC2

Communication

Slack Notion

πŸ‘₯ νŒ€ μ†Œκ°œ

νŒ€μ›

μ‘°ν˜„μˆ˜ λ°°μŠΉμ§„ 이재혁 신주희
@hyunsoo @Seung-jin @Jae-hyuk @Ju-hee
λ°±μ—”λ“œ 개발 ν”„λ‘ νŠΈμ—”λ“œ 개발 ν”„λ‘ νŠΈμ—”λ“œ 개발 λ°±μ—”λ“œ 개발

πŸ™‹β€β™‚οΈ λ°±μ—”λ“œ 개발자 μ—­ν•  및 기여도

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

πŸ“Š ERD (Entity-Relationship Diagram)

ERD

ν”„λ‘œμ νŠΈμ˜ λ°μ΄ν„°λ² μ΄μŠ€λŠ” μœ„μ™€ 같은 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 버전과 ν˜Έν™˜λ˜λŠ” μ˜μ‘΄μ„±μ„ μ‚¬μš©ν•˜κ³  μžˆλŠ”μ§€ ν™•μΈν•˜κ³  ν•„μš”ν•œ 경우 버전을 λ§žμΆ”μ–΄ μ£Όμ—ˆμŠ΅λ‹ˆλ‹€.

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

capstone_fullstack's People

Contributors

pip-izony avatar hyunsoo730 avatar juhee1224 avatar jhyeok2 avatar jaehyeokee avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.