ormi-pixstar / pixstar

1 stars 1 forks source link

🌠 Pixstar


κ°œμš”

🌠 "Pixstar"은 이미지λ₯Ό 톡해 일상을 κ³΅μœ ν•˜λŠ” SNS μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.
πŸ“Œ 이미지와 κ°„λ‹¨ν•œ κ²Œμ‹œκΈ€μ„ κ³΅μœ ν•¨μœΌλ‘œμ¨ λ‹€λ₯Έ μ‚¬λžŒκ³Ό 일상을 κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
❀️ λ§ˆμŒμ— λ“œλŠ” κ²Œμ‹œκΈ€μ€ μ’‹μ•„μš”λ₯Ό 눌러 마음의 ν‘œμ‹œλ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
✏️ λŒ“κΈ€μ„ 톡해 μ—¬λŸ¬ μ‚¬λžŒκ³Ό κ²Œμ‹œκΈ€μ— λŒ€ν•΄ μ†Œν†΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.



[λͺ©μ°¨]

  1. ν”„λ‘œμ νŠΈ λͺ©ν‘œμ™€ κΈ°λŠ₯
  2. ν”„λ‘œμ νŠΈ κΈ°κ°„
  3. μ—­ν•  λΆ„λ‹΄ 및 νŒ€μ› μ†Œκ°œ
  4. 개발 ν™˜κ²½ 및 배포 URL
  5. ν”„λ‘œμ νŠΈ 섀계
  6. 각자의 ν›„κΈ°

1. ν”„λ‘œμ νŠΈ 동기 및 기획

1.1 ν”„λ‘œμ νŠΈ λͺ©ν‘œ

1.2 κΈ°λŠ₯



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

2023.08.18 ~ 20223.09.05



3. μ—­ν•  λΆ„λ‹΄ 및 νŒ€μ› μ†Œκ°œ

이동섭 μ΄μ§€μˆ˜ 맹지연 κΉ€μ˜μ‘°
@tosecfromback @LJS0000 @M-JiYeon @KimYeongJo
ν”„λ‘œμ νŠΈλ¦¬λ”
User App κ΅¬ν˜„
λ°œν‘œ μ€€λΉ„
κ²Œμ‹œκΈ€ 검색 κΈ°λŠ₯ κ΅¬ν˜„
FrontEnd
μ˜ˆμ™Έμ²˜λ¦¬ 및 λ¦¬νŒ©ν† λ§
λŒ“κΈ€ 및 λŒ€λŒ“κΈ€ κΈ°λŠ₯ κ΅¬ν˜„
README μž‘μ„±
APIλͺ…μ„Έ μž‘μ„±
κ²Œμ‹œκΈ€ κΈ°λŠ₯ κ΅¬ν˜„
파일 μ—…λ‘œλ“œ κΈ°λŠ₯ κ΅¬ν˜„
λ°œν‘œμžλ£Œ μ€€λΉ„



4. 개발 ν™˜κ²½ 및 배포 URL

4.1 κ°œλ°œν™˜κ²½

4.1.1 μ‚¬μš©ν•œ μ–Έμ–΄

4.1.2 ν”„λ ˆμž„μ›Œν¬

4.1.3 ν™œμš©ν•œ 라이브러리

4.1.4 DB

4.2 배포 ν™˜κ²½

4.3 배포 URL



5. ν”„λ‘œμ νŠΈ ꡬ쑰 및 μ—­ν•  λΆ„λ‹΄

5.1 Use Case Diagram

/src_readme/Pixstar_UCD.png

5.2 ν΄λ”νŠΈλ¦¬

Pixstar
β”œβ”€Β .gitignore
β”œβ”€Β README.md
β”œβ”€Β post
β”‚Β Β β”œβ”€Β __init__.py
β”‚Β Β β”œβ”€Β migrations
β”‚Β Β β”‚Β Β β”œβ”€Β 0001_initial.py
│  │  └─ __init__.py
β”‚Β Β β”œβ”€Β models.py
β”‚Β Β β”œβ”€Β serializers.py
β”‚Β Β β”œβ”€Β storage.py
β”‚Β Β β”œβ”€Β urls.py
│  └─ views.py
β”‚Β Β β”œβ”€Β urls.py
β”œβ”€Β user
β”‚Β Β β”œβ”€Β __init__.py
β”‚Β Β β”œβ”€Β authentication.py
β”‚Β Β β”œβ”€Β migrations
β”‚Β Β β”‚Β Β β”œβ”€Β 0001_initial.py
│  │  └─ __init__.py
β”‚Β Β β”œβ”€Β models.py
β”‚Β Β β”œβ”€Β serializers.py
β”‚Β Β β”œβ”€Β urls.py
│  └─ views.py
β”œβ”€Β requirements.txt
└─ README.md

5.3 API λͺ…μ„Έμ„œ

API λͺ…μ„Έμ„œ



6. 각자의 ν›„κΈ°

πŸ‘¨πŸ»β€πŸ’» κΉ€μ˜μ‘°
ν˜‘μ—… 및 브랜치 μ „λž΅μ„ μœ„ν•œ κΉƒν—ˆλΈŒ μ‚¬μš©λ²•μ„ 더 μ΅ν˜€μ•Όν•œλ‹€κ³  λŠκΌˆμŠ΅λ‹ˆλ‹€.
μ €λŠ” κ²Œμ‹œκΈ€ CRUD, 이미지 κ΄€λ ¨ κΈ°λŠ₯을 λ‹΄λ‹Ήν•˜μ˜€λŠ”λ°, 닀쀑 이미지 μ²˜λ¦¬λ„ 처음이고, AWS S3도 처음 μ΄μš©ν•˜λ‹€λ³΄λ‹ˆ 맀우 μž¬λ―Έμžˆμ—ˆμŠ΅λ‹ˆλ‹€. 그리고 ν΄λΌμ΄μ–ΈνŠΈμ— λ³΄λ‚΄λŠ” 데이터λ₯Ό μ’€ 더 κ³ λ €λ₯Ό ν•΄μ•Όκ² λ‹€λŠ” 생각을 ν–ˆμŠ΅λ‹ˆλ‹€.
νŒ€ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ νŒ€μ›λΆ„λ“€μ΄ μ‚¬μš©ν•œ μ½”λ“œμ™€ νˆ΄μ„ 보고 배우며, λ‹€μ–‘ν•œ κ²½ν—˜μ„ μ ‘ν•  수 μžˆλŠ” 쒋은 κΈ°νšŒμ˜€μŠ΅λ‹ˆλ‹€.

πŸ‘©πŸ»β€πŸ’» 맹지연
ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ ν˜‘μ—…μ„ ν•  λ•Œ 각자 맑은 κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λ©΄μ„œ μ†Œν†΅μ˜ μ€‘μš”μ„±μ— λŒ€ν•΄ κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€.
μ†Œν†΅μ—†μ΄ κ΅¬ν˜„μ„ μ§„ν–‰ν•˜λ‹€λ³΄λ©΄ λ‚΄κ°€ μž‘μ—…ν•œ 것듀이 μ΄μ „μ˜ κ²ƒλ“€λ‘œ λŒμ•„κ°€κ±°λ‚˜ λ™μž‘μ΄ ν•˜μ§€ μ•ŠλŠ” κ²½μš°κ°€ μžˆμ—ˆλŠ”λ° μ„œλ‘œ μ–΄λ–»κ²Œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ˜€λŠ”μ§€ κ³΅μœ ν•˜λ©΄μ„œ ν•΄κ²°ν•˜λŠ” 과정을 λ°°μ› μŠ΅λ‹ˆλ‹€.
그리고 닀같이 λͺ¨λ₯΄λŠ” λΆ€λΆ„κ³Ό μ—λŸ¬λ₯Ό κ³΅μœ ν•˜κ³ , λ‹€λ₯Έ νŒ€μ›λ“€μ΄ κ΅¬ν˜„ν•œ μ½”λ“œλ₯Ό λ³΄λ©΄μ„œ λͺ¨λ₯΄λ˜ 지식을 μ•Œκ²Œ λ˜μ–΄ μ’‹μ•˜μŠ΅λ‹ˆλ‹€.

πŸ‘¨πŸ»β€πŸ’» 이동섭
ν”„λ‘œκ·Έλž˜λ° νŒ€ν”„λ‘œμ νŠΈλ₯Ό 처음 μ§„ν–‰ν•˜κ²Œλ˜λ©΄μ„œ ν˜‘μ—½κ³Ό κ΄€λ ¨λœ νˆ΄μ— λŒ€ν•΄μ„œ μ’€ 더 곡뢀해야 ν•œλ‹€λŠ” 점과 κ°œλ°œν™˜κ²½μ— μžˆμ–΄ 버전관리 툴의 μ€‘μš”μ„±μ— λŒ€ν•΄μ„œ λ‹€μ‹œ ν•œ 번 μƒκ°ν•˜κ²Œ λ˜λŠ” 점 λ“± λ‹€μ–‘ν•œ ν•œ 생각이 λ“€μ—ˆμ§€λ§Œ κ·Έ 쀑 κΈ°λŠ₯λ“€ 쀑 κ°œλ°œκ³Όμ •μ— μžˆμ–΄μ„œ λ‹€λ₯Έ κΈ°λŠ₯듀에 영ν–₯을 쀄 수 μžˆλŠ” 것을 κ΅¬ν˜„ν•˜λŠ” 것에 λŒ€ν•œ μš°μ„ λ„λ₯Ό 생각해 λ΄μ•Όν•œλ‹€λŠ” 점이 인상이 깊게 λ‚¨μ•˜μŠ΅λ‹ˆλ‹€.
μ €λŠ” νšŒμ›κ°€μž…κ³Ό λ‘œκ·ΈμΈμ— κ΄€ν•œ κΈ°λŠ₯을 κ΅¬ν˜„ν–ˆλŠ”λ° ν•΄λ‹Ή κΈ°λŠ₯을 κ΅¬ν˜„μ΄ 쑰금 더 빨리 κ΅¬ν˜„λ˜μ—ˆλ‹€λ©΄ λ‹€λ₯Έ νŒ€μ›λΆ„λ“€μ΄ κ΅¬ν˜„ν•΄μ£Όμ‹  κΈ°λŠ₯κ³Ό ν•¨κ»˜ ν…ŒμŠ€νŠΈλ₯Ό μ’€ 더 빨리 μ§„ν–‰ν•˜λ©΄μ„œ κΈ°λŠ₯듀을 합쳀을 λ•Œ λ°œμƒν•˜λŠ” μ—λŸ¬λ₯Ό 더 빨리 λ°œκ²¬ν•˜κ²Œ 되고 더 높은 완성도λ₯Ό κ°€μ Έκ°ˆ 수 μžˆμ§€ μ•Šμ•˜μ„κΉŒλΌλŠ” 생각이 λ“œλŠ” 과정이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. ν”„λ‘œμ νŠΈκ°€ λλ‚˜κ°€λŠ” μ‹œμ μ—μ„œ νŒ€ν”„λ‘œμ νŠΈ κΈ°κ°„ 쀑 μž‘μ„±ν•œ 제 개인의 μž‘μ—…μΌμ§€λ₯Ό λ‹€μ‹œ ν•œ 번 읽어보고 ν”„λ‘œμ νŠΈ 기간을 λ˜μ§‘μ–΄ 봀을 λ•Œ λ‹€μŒλΆ€ν„°λŠ” κΈ°λŠ₯λ“€κ°„μ˜ μƒν˜Έμž‘μš©μ„ 유기적으둜 μƒκ°ν•˜λ©΄μ„œ 각 κΈ°λŠ₯λ“€ 쀑 μš°μ„ μ μœΌλ‘œ κ΅¬ν˜„ 될 κΈ°λŠ₯을 생각해봐야 κ² λ‹€λŠ” 점이 제일 큰 μ†Œκ°μž…λ‹ˆλ‹€.

πŸ‘©πŸ»β€πŸ’» μ΄μ§€μˆ˜
μ˜€λžœλ§Œμ— νŒ€ν”„λ‘œμ νŠΈ μž‘μ—…μ„ ν•˜λ©΄μ„œ μ¦κ±°μ› μŠ΅λ‹ˆλ‹€. ν˜‘μ—…μ€ 개인 μž‘μ—…κ³Ό 비ꡐ해 κΈ°νšμ΄λ‚˜ κ΅¬ν˜„ λ‹¨κ³„μ—μ„œ 더 λ§Žμ€ λ¦¬μ†ŒμŠ€κ°€ ν•„μš”ν–ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ ν”„λ‘œμ νŠΈλ₯Ό λ°œμ „μ‹œν‚€κ³  문제λ₯Ό ν•΄κ²°ν•˜λŠ” κ³Όμ •μ—μ„œ κ·Έ λ¦¬μ†ŒμŠ€ μ΄μƒμ˜ κ°€μΉ˜λ₯Ό μ°½μΆœν•  수 μžˆλ‹€λŠ” 것을 이번 ν”„λ‘œμ νŠΈμ—μ„œ λŠκΌˆμŠ΅λ‹ˆλ‹€. 문제 해결을 μœ„ν•΄ 닀같이 κ³ λ―Όν•˜κ³ , μ„œλ‘œμ˜ μ½”λ“œλ₯Ό κ²€ν† ν•˜λŠ” 과정에 λ§Žμ€ μ‹€λ ₯ ν–₯상이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 특히  λ‹€λ₯Έ νŒ€μ›λ“€κ³Ό ν•¨κ»˜ μž‘μ—…μ„ ν•˜κ³  μžˆλ‹€λŠ” 것 μžμ²΄κ°€ 큰 힘이 λμŠ΅λ‹ˆλ‹€. 
μ½”λ“œλ₯Ό μž‘μ„±ν•  λ•ŒλŠ” SRP 원칙과 ν•¨κ»˜ 좔상화와 λͺ¨λ“ˆν™”λ₯Ό μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€. κΈ°λ³Έμ μ΄μ§€λ§Œ μ€‘μš”ν•œ 1)인증인가 처리의 λ³΄μ•ˆμ„±μ„ λ†’μ΄λŠ” 방법, 2)이미지 νŒŒμΌμ„ λ‹€λ£° λ•Œ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„μ˜ μ—­ν• , 3)λΉ„μ¦ˆλ‹ˆμŠ€λ‘œμ§μ„ 효율적으둜 κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ μ½”λ“œμ˜ ꡬ성, 4)RESTfulν•œ API μž‘μ„± 등을 κ³ λ―Όν•˜μ˜€μŠ΅λ‹ˆλ‹€. 
S3 버킷에 이미지λ₯Ό μ €μž₯ν•˜κ³  μ΅œμ ν™”ν•˜λŠ” 주체에 λŒ€ν•΄ 고민이 κ°€μž₯ 기얡에 λ‚¨μŠ΅λ‹ˆλ‹€. μ²˜μŒμ—λŠ” λ ˆμ΄ν„΄μ‹œμ™€ λ¦¬μ†ŒμŠ€ μ‚¬μš©μ„ κ³ λ €ν•΄ ν΄λΌμ΄μ–ΈνŠΈκ°€ μ ν•©ν•˜μ§€ μ•Šλ‚˜ 생각을 ν–ˆμ—ˆλŠ”λ° ν΄λΌμ΄μ–ΈνŠΈμ˜ μ»΄ν“¨νŒ… μ„±λŠ₯에 λŒ€ν•œ λΆˆν™•μ‹€μ„±μ— 기댈 수 μ—†λ‹€λŠ” 점. λ”λΆˆμ–΄ λΆ„μ‚° μ„œλ²„λ₯Ό μ΄μš©ν•˜λ©΄ μ„±λŠ₯ κ°œμ„ μ΄ κ°€λŠ₯ν•˜λ‹€λŠ” 점 등을 이유둜 이미지 처리의 μ£Όμ²΄λŠ” μ„œλ²„κ°€ 더 μ ν•©ν•˜κ² λ‹€κ³  생각을 λ°”κΎΈλŠ” 계기가 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 아직 정닡에 가깝지 μ•Šκ³ , 기초적인 고민일지라도 이런 μ‹μœΌλ‘œ 문제λ₯Ό λ°œκ²¬ν•˜κ³  ν•΄κ²° 방법을 μƒκ°ν•˜λŠ” 과정이 μ„±μž₯ν•  수 μžˆλŠ” κΈ°νšŒκ°€ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.