Skip to content

πŸŽ“λˆ„κ΅¬λ‚˜ μ°Έμ—¬κ°€λŠ₯ν•œ ν‰μƒν•™μŠ΅, ν•™μŠ΅μž₯μ—μ„œ λ†“μΉ˜λŠ” κ±° 없이 λˆ„λ €λ³΄μ„Έμš”πŸŽ“

Notifications You must be signed in to change notification settings

LikeLion-11th-SKHU/hakSeubJang-BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ν•™μŠ΅μž₯, μ „κ΅­ ν‰μƒν•™μŠ΅ κ°•μ’Œ μ°ΎκΈ° μ„œλΉ„μŠ€πŸŽ“

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

λ©‹μŸμ΄ μ‚¬μžμ²˜λŸΌμ˜ 11κΈ° 전체 해컀톀 μΆœν’ˆμž‘μœΌλ‘œ μ „κ΅­μ˜ ν‰μƒν•™μŠ΅ κ°•μ’Œλ₯Ό μ°Ύμ•„μ£ΌλŠ” μ›Ήμ‚¬μ΄νŠΈλ₯Ό κΈ°νšν•˜κ²Œ λ˜μ—ˆλ‹€. ν•΄λ‹Ή ν•΄μ»€ν†€μ˜ μΆœν’ˆ 기쀀은 "μ‚¬νšŒ 각 λΆ„μ•Όμ—μ„œ λ°œμƒν•˜λŠ” 디지털 격차 ν•΄μ†Œμ— 도움을 쀄 수 μžˆλŠ” μ„œλΉ„μŠ€ μ œμž‘"μ΄μ—ˆλ‹€. λ§Žμ€ 고민을 ν•˜λ˜ 쀑 κ³΅κ³΅μ„œλΉ„μŠ€ λΆ„μ•Όκ°€ 디지털화 λ˜μ–΄κ°€λ©΄μ„œ μ‚¬νšŒμ  μ·¨μ•½ 계측에 μœ„μΉ˜ν•œ μ‚¬λžŒλ“€μ΄ 정보 접근에 λ§Žμ€ 어렀움을 κ²ͺκ³  μžˆλŠ” 것을 ν™•μΈν•˜μ˜€λ‹€. 이에 따라 곡곡데이터λ₯Ό μ΄μš©ν•˜μ—¬ μƒλŒ€μ μœΌλ‘œ μ ‘κ·Όν•˜κΈ° μ–΄λ €μš΄ μ •λ³΄μ˜ 접근성을 λ†’μ—¬μ„œ λͺ¨λ“  μ‚¬λžŒμ΄ ν•΄λ‹Ή 정보 취득에 μžˆμ–΄ μš©μ΄ν•˜κ²Œλ” ν•˜κ³ μž ν•˜μ˜€λ‹€.

πŸ‘©πŸ»β€πŸ’» Server

μ˜€λ™μž¬

πŸ‘©πŸ»β€πŸ’» Client

κΉ€μ€ν˜œ λ°±ν•˜μœ€ 박지균

2. ν‰μƒν•™μŠ΅μ˜ λΆˆν‰λ“±μ„±

ν™œμš©ν•  수 μžˆλŠ” 곡곡데이터, 즉 ν”„λ‘œμ νŠΈμ˜ μ£Όμ œκ°€ λ˜λŠ” 데이터λ₯Ό νƒμƒ‰ν•˜λ˜ 쀑 ν‰μƒν•™μŠ΅μ΄λΌλŠ” λΆ„μ•Όλ₯Ό λ°œκ²¬ν•˜κ²Œ λ˜μ—ˆλ‹€. ν‰μƒν•™μŠ΅μ˜ 사전적 μ •μ˜λŠ” "개인의 μžμ•„μ‹€ν˜„μ„ μœ„ν•˜μ—¬ μ–Έμ œ μ–΄λ””μ„œλ‚˜ μ›ν•˜λŠ” κ΅μœ‘μ„ λ°›μ•„ μ‚Άμ˜ μ§ˆμ„ ν–₯μƒμ‹œν‚¬ 수 μžˆλŠ” κ΅μœ‘μ„ μ΄μΉ­ν•˜λŠ” 것" 이닀. ν•˜μ§€λ§Œ μ•„μ΄λŸ¬λ‹ˆν•˜κ²Œλ„ 사전적 μ •μ˜μ™€ λ°˜ν•˜κ²Œ, ν•œκ΅­κ΅μœ‘κ°œλ°œμ›μ˜ 2022년도 ν†΅κ³„μžλ£Œμ—μ„œλŠ” μ†Œλ“μ΄ 높을 수둝, λ‚˜μ΄κ°€ μ Šμ„ 수둝, 지역이 μˆ˜λ„κΆŒ 지역일 수둝 μ°Έμ—¬μœ¨μ΄ λ†’μ•˜λ˜ 반면 μ‚¬νšŒμ  μ·¨μ•½κ³„μΈ΅μ˜ μ°Έμ—¬μœ¨μ€ μ €μ‘°ν•œ 것을 확인할 수 μžˆμ—ˆλ‹€. μ΄λŠ” ν‰μƒν•™μŠ΅μ˜ μˆ˜κ°•μ‹ μ²­κ³Ό κ°•μ’Œ μˆ˜κ°• μžμ²΄κ°€ μ˜¨λΌμΈν™” λ˜μ–΄κ°€λ©΄μ„œ 정보 접근에 μ œμ•½μ΄ λ°œμƒν•œ κ²ƒμœΌλ‘œλ„ 해석할 수 μžˆμ—ˆλ‹€.

3. μ „κ΅­ν‰μƒν•™μŠ΅κ°•μ’Œ 곡곡데이터

ν•΄λ‹Ή ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜κΈ° μœ„ν•΄μ„œ κ³΅κ³΅λ°μ΄ν„°ν¬ν„Έμ˜ "μ „κ΅­ν‰μƒν•™μŠ΅κ°•μ’Œν‘œμ€€λ°μ΄ν„°"λ₯Ό ν™œμš©ν•˜μ˜€λ‹€. ν•΄λ‹Ή λ°μ΄ν„°λŠ” μ „κ΅­μ˜ λͺ¨λ“  ν‰μƒν•™μŠ΅ κ°•μ’Œλ₯Ό μΌκ΄„μ μœΌλ‘œ λͺ¨μ•„ 놓은 λ°μ΄ν„°λ‘œ κ°•μ’Œλͺ…, κ°•μ’Œ λ‚΄μš©, 강사λͺ…, ꡐ윑 κΈ°κ΄€ λ“± λ‹€μ–‘ν•œ 데이터λ₯Ό μ œκ³΅ν•œλ‹€. λ˜ν•œ μ œκ³΅ν•˜λŠ” 데이터 ν˜•μ‹ μ—­μ‹œ XLS, JSON, XML, CSV ν˜•μ‹μ˜ νŒŒμΌλ°μ΄ν„° 뿐만 μ•„λ‹ˆλΌ OpenAPIλ₯Ό 톡해 μ‹€μ‹œκ°„ λ°μ΄ν„°κΉŒμ§€ μ œκ³΅ν•œλ‹€. 이λ₯Ό 기반으둜 ν”„λ‘œμ νŠΈμ˜ ERDλ₯Ό μ„€κ³„ν•˜κ³  λ°μ΄ν„°λ² μ΄μŠ€μ— ν•΄λ‹Ή 데이터λ₯Ό νŒŒμ‹±ν•˜μ—¬ μ €μž₯ν•˜μ˜€λ‹€. κ°„λ‹¨ν•œ 원리λ₯Ό μ„€λͺ…ν•˜μžλ©΄ ν˜„μž¬κΉŒμ§€μ˜ λ°μ΄ν„°λŠ” JSON 포맷의 파일 데이터λ₯Ό ν™œμš©ν•˜μ—¬ μ„œλ²„ μ‹€ν–‰κ³Ό λ™μ‹œμ— μ €μž₯을 μ§„ν–‰ν•˜μ˜€κ³ , μΆ”ν›„ 맀일 μ—…λ°μ΄νŠΈ λ˜λŠ” κ°•μ’Œ μ •λ³΄λŠ” OpenAPIλ₯Ό ν™œμš©ν•˜μ—¬ μŠ€μΌ€μ€„λ§μ„ 톡해 맀일 00μ‹œ 00뢄에 μžλ™μœΌλ‘œ 데이터λ₯Ό λΆˆλŸ¬μ˜€λ„λ‘ ν•˜μ˜€λ‹€. λ˜ν•œ μ ‘μˆ˜ κΈ°κ°„μ΄λ‚˜ ꡐ윑 기간이 μ’…λ£Œλœ λ‚ μ§œλŠ” μ €μž₯ν•˜μ§€ μ•Šκ±°λ‚˜ μ‚­μ œν•˜μ˜€μœΌλ©° μŠ€μΌ€μ€„λ§μ„ 톡해 맀일 D-Dayλ₯Ό κ³„μ‚°ν•˜μ—¬ μ—…λ°μ΄νŠΈ ν•˜μ˜€λ‹€.

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

ν•΄λ‹Ή ν”„λ‘œμ νŠΈλŠ” κ°•μ’Œ 검색 및 필터링을 ν†΅ν•œ 쑰회, μ†Œμ…œ λ‘œκ·ΈμΈμ„ ν†΅ν•œ κ°•μ’Œ μ°œν•˜κΈ° 및 ν›„κΈ° μž‘μ„±μ˜ κΈ°λŠ₯을 주둜 κ΅¬ν˜„ν•˜μ˜€λ‹€. λ”°λΌμ„œ Lecture(κ°•μ’Œ), User, Wish(찜), Review(ν›„κΈ°) 총 4개의 ν…Œμ΄λΈ”μ„ ν™œμš©ν•˜μ˜€μœΌλ©° λ°μ΄ν„°λ² μ΄μŠ€μ—λŠ” μ΅œμ†Œν•œμ˜ μ •λ³΄λ§Œ μ €μž₯ν•˜κ³  μœ μΆ” κ°€λŠ₯ν•œ μ •λ³΄λŠ” μ΅œλŒ€ν•œ λ‘œμ§μ„ 톡해 κ΅¬ν˜„ν•˜κ³ μž ν•˜μ˜€λ‹€. νŽ˜μ΄μ§€μ˜ 경우 λžœλ”© νŽ˜μ΄μ§€μΈ index.html, κ°•μ’Œ 리슀트 νŽ˜μ΄μ§€μΈ list.html, κ°•μ’Œ 상세 정보인 detail.html, κ°•μ’Œ ν›„κΈ° μž‘μ„± νŽ˜μ΄μ§€μΈ create.html 및 edit.html 그리고 μ°œν•œ κ°•μ’Œ, μž‘μ„±ν•œ ν›„κΈ° λ“±μ˜ μœ μ € 정보λ₯Ό μ—΄λžŒν•  수 μžˆλŠ” mypage.html둜 κ΅¬μ„±ν•˜μ˜€λ‹€.

5. κ°•μ’Œ 검색 및 필터링을 ν†΅ν•œ 쑰회 κΈ°λŠ₯

κ°•μ’Œ κ²€μƒ‰μ˜ 경우 ν•΄λ‹Ή κ°•μ’Œλͺ…을 κΈ°μ€€μœΌλ‘œ 검색을 ν•  수 μžˆλ„λ‘ κ΅¬ν˜„ν•˜μ˜€λ‹€. μ΄λŠ” JPA query creation(쿼리 λ©”μ†Œλ“œ μžλ™ κ΅¬ν˜„) κΈ°λŠ₯을 ν™œμš©ν•˜μ—¬ κ°„λ‹¨ν•˜κ²Œ κ΅¬ν˜„ν•˜μ˜€λ‹€. 검색창을 톡해 Request Parameterλ₯Ό 전달 λ°›μœΌλ©΄ 이λ₯Ό ν™œμš©ν•œ apiλ₯Ό 톡해 ν•΄λ‹Ή 검색 λ‚΄μš©μ„ ν¬ν•¨ν•˜λŠ” κ°•μ’Œλͺ…을 가진 κ°•μ’Œλ“€μ„ λ¦¬ν„΄ν•˜λ„λ‘ ν•˜μ˜€λ‹€. 필터링 κΈ°λŠ₯의 경우 query creation을 ν™œμš©ν•˜κΈ°μ—λŠ” 둜직이 λ„ˆλ¬΄ λ³΅μž‘ν•΄μ§€κΈ°μ— κ°„λ‹¨ν•˜κ²Œ Stream filterλ₯Ό 톡해 ν•΄λ‹Ήλ˜λŠ” 필터에 λ§žλŠ” κ°•μ’Œλ₯Ό κ±ΈλŸ¬λ‚΄μ–΄ λ¦¬ν„΄ν•˜λŠ” 방식을 ν™œμš©ν•˜μ˜€λ‹€. λ˜ν•œ 전체 κ°•μ’Œμ˜ μˆ˜κ°€ 6000κ°œμ— μœ‘λ°•ν–ˆκΈ° λ•Œλ¬Έμ— pagination κΈ°λŠ₯을 ν™œμš©ν•˜μ—¬ ν•œ νŽ˜μ΄μ§€μ— 9개의 κ°•μ’Œλ§Œ μ‘°νšŒλ˜λ„λ‘ κ΅¬ν˜„ν•˜μ˜€λ‹€.

6. μ°œν•˜κΈ° κΈ°λŠ₯ 및 ν›„κΈ° μž‘μ„± κΈ°λŠ₯

λ‘œκ·ΈμΈν•œ μœ μ €λ₯Ό μœ„ν•œ κΈ°λŠ₯으둜써 ν•΄λ‹Ή κ°•μ’Œλ₯Ό μ°œν•˜κ³  ν›„κΈ°λ₯Ό μž‘μ„±ν•  수 μžˆλŠ” κΈ°λŠ₯을 κ΅¬ν˜„ν•˜μ˜€λ‹€. ν•΄λ‹Ή κΈ°λŠ₯ λͺ¨λ‘ κ°•μ’Œ ν…Œμ΄λΈ”κ³Ό μœ μ € ν…Œμ΄λΈ”μ˜ κΈ°λ³Έν‚€λ₯Ό μ™Έλž˜ν‚€λ‘œ λ°›μ•„μ„œ ν…Œμ΄λΈ”μ„ κ΅¬μ„±ν•˜κ³  찜과 ν›„κΈ°λ₯Ό 생성 λ˜λŠ” μ‚­μ œν•  λ•Œ λ ˆμ½”λ“œκ°€ μƒμ„±λ˜κ±°λ‚˜ μ‚­μ œλ˜λŠ” ν˜•μ‹μœΌλ‘œ κ΅¬μ„±ν•˜μ˜€λ‹€. μž‘μ„±ν•œ ν›„κΈ°μ˜ 경우 λ§ˆμ΄νŽ˜μ΄μ§€ λ˜λŠ” 상세 정보 νŽ˜μ΄μ§€μ—μ„œ μ—΄λžŒν•  수 μžˆλ„λ‘ κ΅¬μ„±ν•˜μ˜€λ‹€.

7. μ†Œμ…œ 둜그인

Spring Security와 OAuth 2.0을 ν™œμš©ν•˜μ—¬ ꡬ글 둜그인과 넀이버 λ‘œκ·ΈμΈμ„ μ—°λ™ν•˜μ—¬ 둜그인 κΈ°λŠ₯을 κ΅¬ν˜„ν•˜μ˜€λ‹€. μœ μ €μ— λŒ€ν•œ λ§Žμ€ 정보가 ν•„μš”ν•˜μ§€λŠ” μ•ŠκΈ° λ•Œλ¬Έμ— 자체 둜그인 κΈ°λŠ₯은 κ΅¬ν˜„ν•˜μ§€ μ•Šμ•˜λ‹€. ν•΄λ‹Ή μ„œλΉ„μŠ€ μ‚¬μ΄νŠΈμ—μ„œ client 인증 정보λ₯Ό λ°œκΈ‰ λ°›κ³  μœ μ €μ˜ 정보λ₯Ό λ°›μ•„μ™”μœΌλ©° μ„Έμ…˜ μ €μž₯ κΈ°λŠ₯을 ν™œμš©ν•˜μ—¬ κΆŒν•œ 및 인증이 ν•„μš”ν•œ 곳에 이λ₯Ό μ μš©ν•˜μ˜€λ‹€.

8. ν™œμš© μŠ€νƒ

ν•΄λ‹Ή ν”„λ‘œμ νŠΈλŠ” 기본적으둜 μŠ€ν”„λ§ λΆ€νŠΈ 2.7.14 버전과 Thymeleafλ₯Ό ν™œμš©ν•˜μ—¬ μ œμž‘λ˜μ—ˆλ‹€. μ›Ήμ„œλ²„ ν”„λ‘œκ·Έλž˜λ°μ΄λ‹€ λ³΄λ‹ˆ ν”„λ‘ νŠΈμ™€ λ°±μ—”λ“œ ꡬ뢄이 λͺ…ν™•ν•˜μ§€ μ•Šκ³  와이어 ν”„λ ˆμž„ ν˜•μ‹μœΌλ‘œ λ””μžμΈμ΄ 적용 λ˜μ§€ μ•Šμ€ λ·°λ₯Ό 톡해 λ°±μ—”λ“œ κΈ°λŠ₯을 ν…ŒμŠ€νŠΈν•˜κ³  μΆ”ν›„ ν•„μš”ν•œ λ””μžμΈμ„ μž…νžˆλŠ” λ°©μ‹μœΌλ‘œ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜μ˜€λ‹€. 전체 ν™œμš© μŠ€νƒμ€ λ‹€μŒκ³Ό κ°™λ‹€.

9. 기타 κ΅¬ν˜„ λͺ¨μŠ΅

About

πŸŽ“λˆ„κ΅¬λ‚˜ μ°Έμ—¬κ°€λŠ₯ν•œ ν‰μƒν•™μŠ΅, ν•™μŠ΅μž₯μ—μ„œ λ†“μΉ˜λŠ” κ±° 없이 λˆ„λ €λ³΄μ„Έμš”πŸŽ“

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •