🍊0'range Project 회고둝

레일리·2023λ…„ 1μ›” 22일
1
post-thumbnail
post-custom-banner

🦁 λ©‹μŸμ΄μ‚¬μžμ²˜λŸΌ 10κΈ° 해컀톀

orange ν”„λ‘œμ νŠΈλŠ” 멋사 10κΈ° ν•΄μ»€ν†€μ—μ„œ μ§„ν–‰ν•œ ν”„λ‘œμ νŠΈμ΄λ‹€. νŒ€μ€ 기획/λ””μžμΈ(1), ν”„λ‘ νŠΈμ—”λ“œ(2), λ°±μ—”λ“œ 총 5λͺ…μœΌλ‘œ μ΄λ£¨μ–΄μ‘Œλ‹€.

νŒ€λΉŒλ”©

우리 ν•™κ΅μ˜ κ²½μš°λŠ” 기획/λ””μžμΈ 뢄듀이 ν•΄μ»€ν†€μ—μ„œ 진행할 아이디어λ₯Ό λ°œν‘œν•˜κ³  κ°œλ°œμžλ“€μ΄ μ°Έμ—¬ν•˜κ³  싢은 아이디어에 μ°Έμ—¬ν•˜λŠ” λ°©μ‹μœΌλ‘œ νŒ€μ„ κ΅¬μ„±ν–ˆλ‹€. λ‚˜λŠ” νΌμŠ€λ„ λΈŒλžœλ”©μ΄λΌλŠ” 주제의 ν”„λ‘œμ νŠΈμ— μ°Έμ—¬ν–ˆλ‹€.

ν”„λ‘œμ νŠΈ μ†Œκ°œ 및 μ„€λͺ… 🍊

0'rangeλŠ” κ°„λ‹¨ν•˜κ²Œ 'μžμ‹ μ˜ κ°€μΉ˜λ₯Ό λΈŒλžœλ“œν™” ν•˜λŠ” νΌμŠ€λ„ λΈŒλžœλ”© μ„œλΉ„μŠ€'이닀.
μ„œλΉ„μŠ€ μ΄λ¦„μ˜ μžμ„Έν•œ μ„€λͺ…은 μ•„λž˜μ™€ κ°™λ‹€.
λ°œν‘œμžλ£Œ

'0'κ³Ό 'Range'λ₯Ό 묢은 λ‹¨μ–΄λ‘œ, '0'이 보이지 μ•ŠλŠ” 것을 λ‚˜νƒ€λ‚΄λŠ” μˆ«μžμž„μ— κΈ°λ°˜ν•œλ‹€. μ—¬κΈ°μ„œ 보이지 μ•Šλ˜ 것은 μš°λ¦¬λ“€μ˜ '상념'이라고 μ •μ˜ν•œλ‹€. 'Range'λŠ” 'λ²”μœ„, λŒ€, λ‹€μ–‘μ„±'을 λœ»ν•˜λŠ” 단어이닀. λ”°λΌμ„œ 0'Range, μ˜€λ Œμ§€λŠ” μ‚¬λžŒλ“€μ˜ 상념을 κ°€μ‹œν™”ν•˜μ—¬ λ“œλŸ¬λƒ„μœΌλ‘œμ¨ κ·Έλ²”μœ„μ™€ 닀양성을 ν† λŒ€λ‘œ νΌμŠ€λ„ λΈŒλžœλ”©μ„ ν•˜λŠ” 곡간을 μ˜λ―Έν•œλ‹€.

νΌμŠ€λ„ λΈŒλžœλ”©?

λ‚˜λ„ μ΄λ²ˆμ— μ²˜μŒλ“€μ€ λ‹¨μ–΄μ˜€λ‹€. κ·Έλž˜μ„œ 더 ν₯λ―Έκ°€ κ°”μ—ˆλ˜ 것 κ°™λ‹€.

μžμ‹ μ„ λΈŒλžœλ“œν™”ν•˜μ—¬ νŠΉμ • 뢄야에 λŒ€ν•΄μ„œ λ¨Όμ € μžμ‹ μ„ λ– μ˜¬λ¦΄ 수 μžˆλ„λ‘ λ§Œλ“œλŠ” 과정을 λ§ν•œλ‹€. νŠΉμ • λΆ„μ•Όμ—μ„œ μ°¨λ³„ν™”λ˜λŠ” λ‚˜λ§Œμ˜ κ°€μΉ˜λ₯Ό λ†’μ—¬μ„œ μΈμ •λ°›κ²Œλ” ν•˜λŠ” 과정을 λ§ν•œλ‹€.

μ—­ν• 

λ‚˜λŠ” λ°±μ—”λ“œ κ°œλ°œμžλ‘œμ„œ 이 ν”„λ‘œμ νŠΈμ— μ°Έμ—¬ν–ˆλ‹€.

멋사 μ€‘μ•™μ—μ„œ ν”„λ‘ νŠΈλŠ” React, λ°±μ—”λ“œλŠ” Django ꡐ윑 VOD 자료λ₯Ό μ œκ³΅ν•΄μ€€λ‹€. κ·Έλž˜μ„œ 해컀톀 μ°Έμ—¬μž λŒ€λΆ€λΆ„μ€ μœ„ 기술 μŠ€νƒμ„ μ‚¬μš©ν•œλ‹€.

ν•˜μ§€λ§Œ κ·Έλƒ₯ 일반적인 Web Full Stack Frameworkλ‘œμ„œ Djangoλ‘œλŠ” React와 ν˜‘μ—…ν•  μˆ˜κ°€ μ—†λ‹€. ν”„λ‘ νŠΈμ™€ λΆ„λ¦¬λ˜μ–΄ ν˜‘μ—…ν•˜κΈ° μœ„μ—μ„œ λ°±μ—”λ“œλŠ” REST APIλ₯Ό λ§Œλ“€ ν•„μš”κ°€ μžˆλ‹€.

곡뢀

Djangoμ—μ„œ REST APIλ₯Ό λ§Œλ“€κΈ° μœ„ν•΄μ„œλŠ” DRF(Django REST Framework)λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€. ν•˜μ§€λ§Œ 멋사 μ€‘μ•™μ—μ„œλŠ” 이에 κ΄€ν•œ ꡐ윑 자료λ₯Ό μ œκ³΅ν•΄ 주지 μ•Šμ•˜λ‹€.

κ·Έλž˜μ„œ DRF에 κ΄€ν•œ 곡뢀할 자료λ₯Ό μ°Ύλ‹€κ°€ μ•„λž˜ 책을 λ°œκ²¬ν–ˆλ‹€. κ·Έλ•Œ λ‹Ήμ‹œμ—λŠ” μΆœνŒλœμ§€ 2달 정도 밖에 λ˜μ§€ μ•Šμ€ λ”°λˆν•œ μ±…μ΄μ—ˆλ‹€. 그리고 DRF에 κ΄€ν•œ 책은 이게 거의 μœ μΌν–ˆλ‹€. (μ±… λ‚΄μš©λ„ 만쑱)

https://www.django-rest-framework.org/ > λ¬Όλ‘  곡식 λ¬Έμ„œλ„ μ°Έκ³ ν–ˆλ‹€.

곡유

λ‚˜λŠ” 멋사 (λ°±μ—”λ“œ νŠΈλž™)μš΄μ˜μ§„μ΄μ—ˆκ³  μ•„κΈ°μ‚¬μž(동아리원)듀도 ν”„λ‘ νŠΈμ™€ ν˜‘μ—…μ„ μœ„ν•΄ DRF에 λŒ€ν•œ 곡뢀가 ν•„μš”ν–ˆλ‹€.

κ·Έλž˜μ„œ λ‚΄κ°€ μ•„κΈ°μ‚¬μžλΆ„λ“€μ—κ²Œ REST API의 κ°œλ… 및 ν•„μš”μ„±κ³Ό DRF의 κ°„λž΅ν•œ κ°œλ… 그리고 곡뢀 자료λ₯Ό μ†Œκ°œν•˜λŠ” μ„Έμ…˜(λ°œν‘œ)λ₯Ό μ§„ν–‰ν–ˆλ‹€. λ‚˜λ„ κ΄€λ ¨ κ°œλ…λ“€μ„ 정리할 수 μžˆμ–΄ 쒋은 κΈ°νšŒμ˜€λ‹€.

λ°œν‘œμžλ£Œ

개발

멋사 해컀톀은 μ–΄λŠμ •λ„ 미리 κ°œλ°œμ„ ν•΄μ˜€λŠ” νŠΉμ§•μ΄ μžˆλ‹€. κ·Έλž˜μ„œ 해컀톀 λ‹ΉμΌμ—λŠ” μžμ‹ λ“€μ΄ λ§Œλ“  ν”„λ‘œμ νŠΈλ₯Ό ν™λ³΄ν•˜κ±°λ‚˜ λ§ˆλ¬΄λ¦¬ν•˜μ§€ λͺ»ν•œ ν”„λ‘œμ νŠΈλ₯Ό 마무리 ν•œλ‹€.

κ·Έλž˜μ„œ κ°œλ°œμ—λŠ” μ•½ 1.5달 정도 μ†Œμš”λœ 것 κ°™λ‹€.

κΈ°λŠ₯

κΈ°νšν•œ μ„œλΉ„μŠ€μ˜ κΈ°λŠ₯은 μ•„λž˜μ™€ κ°™λ‹€. λŒ€λΆ€λΆ„ κ²Œμ‹œνŒ CRUDλ₯Ό μ‘μš©ν•˜λ©΄ κ°„λ‹¨ν•˜κ²Œ κ΅¬ν˜„ν•  수 μžˆλŠ” κΈ°λŠ₯λ“€μ΄μ—ˆλ‹€.

  • νšŒμ›κ°€μž…, 둜그인, λ‘œκ·Έμ•„μ›ƒ
  • ν”„λ‘œν•„ 정보 보기, νŽΈμ§‘
  • νŒ”λ‘œμš°, μ–ΈνŒ”λ‘œμš°, νŒ”λ‘œμ›Œ&νŒ”λ‘œμž‰ 보기
  • λ‚΄λΆ€ 페λ₯΄μ†Œλ‚˜(value, weakness, strength, likes) CRUD
  • μ™ΈλΆ€ 페λ₯΄μ†Œλ‚˜(solve, career, literacy, language, mbti) CRUD
  • ν™œλ™ μΆ”μ²œ(ν”„λ¦¬μ¦˜) 및 CRUD
  • νƒœκ·Έ CRUD

섀계

λ””μžμΈ

기획/λ””μžμ΄λ„ˆλΆ„μ΄ Figma둜 λ””μžμΈμ„ ν•΄μ£Όμ…¨λ‹€ -> λ³΄λŸ¬κ°€κΈ°

λ¬Όλ‘  κ°œλ°œμžλ“€κ³Όλ„ 회의λ₯Ό ν•˜λ©΄μ„œ κ΅¬ν˜„ κ°€λŠ₯μ„±, ν•„μš”μ„± 등을 따지며 같이 μˆ˜μ •ν•΄ κ°”λ‹€.

전체 μ‹œμŠ€ν…œ ꡬ쑰

전체 κ΅¬μ‘°λŠ” μ•„λž˜μ™€ κ°™λ‹€. λ°±μ—”λ“œλŠ” DRF둜 APIλ₯Ό λ§Œλ“€κ³  ν”„λ‘ νŠΈλŠ” React둜 APIλ₯Ό μ‚¬μš©ν•΄ 화면을 κ΅¬μ„±ν•œλ‹€.

λ°μ΄ν„°λ² μ΄μŠ€

ER-Diagram λ³΄λŸ¬κ°€κΈ°

λ‹Ήμ—°νžˆ λ¬΄μž‘μ • κ°œλ°œμ„ μ‹œμž‘ν•˜λŠ”κ²ƒ 보닀 ν…Œμ΄λΈ”μ„ μ„€κ³„ν•˜κ³  μ‹œμž‘ν•˜λŠ”κ²Œ 쒋을 것 κ°™μ•„ ER-Diagram을 μž‘μ„±ν–ˆλ‹€. μ΄λ•Œ 처음으둜 erdcloudλΌλŠ” 것을 μ•Œκ²Œ 됐고 μ‚¬μš©ν–ˆλ‹€. (MySQL μ‚¬μš©)

배포

API μ„œλ²„

이번 해컀톀 후원사인 ν΄λΌμš°λ“œνƒ€μž… μ—μ„œ μ„œλ²„λ₯Ό μ œκ³΅ν•΄ μ€˜μ„œ API μ„œλ²„λ₯Ό ν΄λΌμš°λ“œνƒ€μž…μ— λ°°ν¬ν–ˆλ‹€.

그리고 λ‹€λ₯ΈλΆ„듀도 배포에 μžˆμ–΄ 어렀움이 μžˆμ„κ²ƒ κ°™μ•„ μ•„λž˜μ™€ 같이 λ°°ν¬ν•˜λŠ” 방법을 ν¬μŠ€νŒ… ν–ˆμ—ˆλ‹€.
Cloudtype에 Django drf RESTfull API λ°°ν¬ν•˜κΈ°
Freenom 무료 도메인 생성 및 CloudFlare 등둝, CloudType에 도메인 μ—°κ²°

ν΄λΌμš°λ“œνƒ€μž…μ€ μ»¨ν…Œμ΄λ„ˆ 기반의 ν΄λΌμš°λ“œμ„œλΉ„μŠ€λ‘œμ„œ λ³΅μž‘ν•œ μ„œλ²„μΈν”„λΌ 관리λ₯Ό κ°„νŽΈν•˜κ²Œ ν•  수 μžˆλŠ” PaaS ν΄λΌμš°λ“œλ₯Ό μ œκ³΅ν•œλ‹€. λ°°ν¬μ‹œ ν•„μš”ν•œ μ—¬λŸ¬ μ„ΈνŒ…κ³Ό μ€€λΉ„λ₯Ό μžλ™ν™” ν•΄μ„œ μ•„μ£Ό κ°„νŽΈν•˜κ²Œ μ„œλΉ„μŠ€λ₯Ό 배포할 수 μžˆλ‹€.(κ΅Ώ)

DB μ„œλ²„

λ°μ΄ν„°λ² μ΄μŠ€λŠ” AWS RDS에 λ°°ν¬ν–ˆλ‹€. 처음 μ‚¬μš©ν•΄ λ³΄λŠ” κ²ƒμ΄μ—ˆλŠ”λ° μ—¬λŸ¬ νŠœν† λ¦¬μ–Όμ„ 따라 ν•˜λ‹ˆ 어렡지 μ•Šκ²Œ ν•  수 μžˆμ—ˆλ‹€.

API λ¬Έμ„œ

ν”„λ‘ νŠΈμ™€ ν˜‘μ—…μ„ μœ„ν•΄μ„œλŠ” API λ¬Έμ„œλ₯Ό μž‘μ„±ν•΄μ•Ό ν•œλ‹€. Swaggerλ₯Ό μ‚¬μš©ν•˜λ©΄ κ°„νŽΈν•˜κ²Œ λ¬Έμ„œλ₯Ό λ§Œλ“€μˆ˜ μžˆμ—ˆμ§€λ§Œ, 왠지 직접 μž‘μ„±ν•΄ 보고 싢은 μš•μ‹¬(?)이 생겨 λ…Έμ…˜μ— μž‘μ„±ν•˜κ²Œ 됐닀.

API λ¬Έμ„œ(배포 쀑단)

API ν…ŒμŠ€νŠΈ

APIλ₯Ό λ§Œλ“€μ—ˆμœΌλ©΄ μš”μ²­ν–ˆμ„ λ•Œ μ–΄λ–€ 값을 λ°˜ν™˜ ν•΄μ£ΌλŠ”μ§€ 확인할 ν•„μš”κ°€ μžˆλ‹€. 이λ₯Ό μœ„ν•΄ Insomniaλ₯Ό μ‚¬μš©ν–ˆλ‹€.(Postmanμ΄λΌλŠ” 것도 μžˆλ‹€)

λŒμ•„λ³΄λ©°

λ°°μ› λ˜μ 

API에 λŒ€ν•œ 이해

κ°€μž₯ μ’‹μ•˜λ˜ 것은 REST API에 λŒ€ν•΄ μ΄ν•΄ν•œ 것이닀. μ΄μ „μ—λŠ” Kakao API, OpenAPI와 같이 μ—¬λŸ¬ 곡개 API듀이 있고 이것듀을 μ΄μš©ν•˜λ©΄ νŽΈλ¦¬ν•œ μ„œλΉ„μŠ€λ₯Ό λ§Œλ“€ 수 μžˆλ‹€λŠ” κ±Έ 읡히 λ“€μ–΄μ™”λ‹€. ν•˜μ§€λ§Œ μ–΄λ–»κ²Œ λ™μž‘ν•˜κ³  μ‚¬μš©ν•˜λŠ”μ§€ 그리고 μ™œ ν•„μš”ν•œμ§€μ— λŒ€ν•΄ μ •ν™•νžˆ μ΄ν•΄ν•˜μ§€ λͺ»ν–ˆμ—ˆλ‹€.

이번 κΈ°νšŒμ— REST APIλ₯Ό 직접 μ„€κ³„ν•˜κ³  λ§Œλ“€μ–΄ λ΄„μœΌλ‘œμ„œ λ§Žμ€ 것듀을 이해할 수 μžˆμ—ˆλ‹€. (ν•˜μ§€λ§Œ λΆ„λͺ… 아직 λͺ¨λ₯΄λŠ” 게 λ§Žμ„ 것이닀. κ³΅λΆ€ν•˜μž!)

Git flow μ „λž΅

기쑴에도 git을 μ‚¬μš©ν•˜κΈ°λŠ” ν–ˆμ§€λ§Œ κ·Έλƒ₯ main λΈŒλžœμΉ˜μ— commitν•˜λŠ” μ •λ„μ˜€λ‹€. κ·Έλ™μ•ˆ 1인 κ°œλ°œμ΄μ–΄μ„œ λ¬Έμ œκ°€ μ—†μ—ˆμ§€λ§Œ ν˜‘μ—…μ—μ„œλŠ” λΆ„μ—…κ³Ό μ½”λ“œ 병합 κ³Όμ •μ—μ„œ λ¬Έμ œκ°€ 생긴닀.

λ‹€λ₯Έ 동아리원을 톡해 git flowλ₯Ό μ•Œκ²Œ λ˜μ–΄ ν•œ 번 적용 μ‹œμΌœ 보기둜 ν–ˆλ‹€. λ¬Όλ‘  μ•„λž˜ 이미지와 같이 μ„ΈλΆ€μ μœΌλ‘œ μ‚¬μš©ν•˜μ§€λŠ” μ•Šμ•˜λ‹€.

크게 μ•„λž˜μ™€ 같이 브랜치λ₯Ό λ‚˜λˆ„μ–΄ μ‚¬μš©ν–ˆλ‹€. feature λΈŒλžœμΉ˜μ—μ„œ κΈ°λŠ₯을 κ°œλ°œν•˜κ³  λ¬Έμ œκ°€ μ—†λ‹€λ©΄ develop λΈŒλžœμΉ˜μ— mergeν•˜λŠ” λ°©μ‹μ΄μ—ˆλ‹€.

  • main
  • develop(default)
  • feature1
  • feature2

ν˜„μ—…μ—μ„œλ„ μ‚¬μš©λœλ‹€ ν•˜λ‹ˆ μ•žμœΌλ‘œ 더 읡힐 ν•„μš”κ°€ μžˆλ‹€κ³  μƒκ°ν•œλ‹€.

Secret Key 관리

SECRET_KEY

A secret key for a particular Django installation. This is used to provide cryptographic signing, and should be set to a unique, unpredictable value.

Github에 Django ν”„λ‘œμ νŠΈλ₯Ό Public으둜 μ˜¬λ¦¬λ‹ˆ λ³΄μ•ˆ κ΄€λ ¨ 메일이 μ™”μ—ˆλ‹€. μ΄λ•Œ 처음으둜 μ—¬λŸ¬ λΉ„λ°€ν‚€ κ΄€λ¦¬μ˜ μ€‘μš”μ„±μ„ κΉ¨λ‹¬μ•˜λ‹€. 그리고 이 문제λ₯Ό ν•΄κ²°ν•˜κ³  μ•„λž˜μ™€ 같이 기둝을 해놨닀.
Django secret key μž¬μƒμ„± 및 뢄리

λ”λΆˆμ–΄ AWS RDS λ°μ΄ν„°λ² μ΄μŠ€ 연결에 κ΄€λ ¨ν•œ 정보듀 λ˜ν•œ λΆ„λ¦¬ν•˜μ—¬ 적용 μ‹œμΌ°λ‹€.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': get_secret("DJANGO_DB_NAME"),
        'USER': get_secret("DJANGO_DB_USERNAME"),
        'PASSWORD': get_secret("DJANGO_DB_PASSWORD"),
        'HOST': get_secret("DJANGO_DB_HOST"),
        'PORT': get_secret("DJANGO_DB_PORT"),
        'OPTIONS':{
            'init_command' : "SET sql_mode='STRICT_TRANS_TABLES'"
        }
    }
}

μ•„μ‰¬μ› λ˜μ 

ν”„λ‘ νŠΈμ™€ μ—°κ²°

μ΄λ²ˆμ— λ‚΄κ°€ λ§Œλ“  APIλ₯Ό ν”„λ‘ νŠΈμ™€ μ—°κ²°ν•΄ μ™„μ„±λœ 결과물을 보고 μ‹Άμ—ˆμ§€λ§Œ κ·ΈλŸ¬μ§€ λͺ»ν–ˆλ‹€. 😒 λ‹€λ“€ μ΄λ²ˆμ— Reactλ₯Ό 처음 κ³΅λΆ€ν•˜λ©΄μ„œ ν”„λ‘ νŠΈ μž‘μ—…μ„ μ§„ν–‰ν–ˆλ‹€. κ·ΈλŸ¬λ‹€ λ³΄λ‹ˆ 곡뢀 μ‹œκ°„μ΄ κΈΈμ–΄μ Έμ„œ 해컀톀이 끝날 λ•ŒκΉŒμ§€ μ™„μ„±ν•˜μ§€λ₯Ό λͺ»ν–ˆλ‹€.

λ‚΄κ°€ λ§Œλ“  APIκ°€ 잘 λ™μž‘ν•˜λŠ”μ§€ 확인을 λͺ»ν•΄ μ•„μ‰¬μ› μ§€λ§Œ(λ¬Όλ‘  λ°±μ—”λ“œμ—μ„œ ν…ŒμŠ€νŠΈλŠ” ν–ˆλ‹€) λ‚΄κ°€ λΆ€μ‘±ν•œ 점을 μ•Œ 수 μžˆμ—ˆλ‹€. 이λ₯Ό 톡해 λŠλ‚€ 것은 λ°±μ—”λ“œ κ°œλ°œμ„ ν•˜λ”λΌλ„ ν”„λ‘ νŠΈμ— λŒ€ν•œ 이해도 ν•„μš”ν•˜λ‹€λŠ” 것이닀. λ°±μ—”λ“œλŠ” λ°°ν¬κΉŒμ§€ λ§ˆλ¬΄λ¦¬λ˜μ—ˆλŠ”λ° ν”„λ‘ νŠΈλ₯Ό 도와주고 싢어도 React κ΄€λ ₯ 지식이 μ—†λ‹€ λ³΄λ‹ˆ 도와쀄 μˆ˜κ°€ μ—†μ–΄ 아쉬웠닀.

해컀톀이 λλ‚˜κ³ ..

해컀톀이 λλ‚˜κ³ .. 학기도 λλ‚˜κ³ .. νŒ€μ›λ“€μ—κ²Œ "ν”„λ‘œμ νŠΈ λ§ˆλ¬΄λ¦¬ν•˜μž!"라고 ν•˜κ³  μ‹Άμ—ˆμ§€λ§Œ 각자 μ„œλ‘œ λ‹€λ₯Έ κΈΈμ—μ„œ λ°”μ˜κ²Œ μ‚΄κ³  μžˆμ–΄ κ·ΈλŸ¬μ§€ λͺ»ν–ˆλ‹€. κ·Έλž˜μ„œ 0'range ν”„λ‘œμ νŠΈλŠ” μ΄λ ‡κ²Œ λ§ˆλ¬΄λ¦¬λλ‹€.

마무리

μ•„μ‰¬μ› λ˜ 것도 μžˆμ—ˆμ§€λ§Œ 정말 배운 게 λ§Žμ•˜λ˜ ν”„λ‘œμ νŠΈμ˜€λ‹€. μ•žμœΌλ‘œ κ°œλ°œν•˜λŠ” 데 μžˆμ–΄ 이 κ²½ν—˜μ€ 맀우 μœ μš©ν•  것이닀. 배우고 μ•„μ‰¬μ› λ˜ 점을 λ°”νƒ•μœΌλ‘œ μ•žμœΌλ‘œ λ”μš±λ” μž¬λ°ŒλŠ” ν”„λ‘œμ νŠΈλ₯Ό 이어 λ‚˜κ°ˆ 것이닀!!

Project Github repository

profile
λ‚˜μ•Ό, 개발자
post-custom-banner

1개의 λŒ“κΈ€

comment-user-thumbnail
2023λ…„ 11μ›” 22일

μ•ˆλ…•ν•˜μ„Έμš” :) ꡭ비지원 λΆ€νŠΈμΊ ν”„ μ—˜λ¦¬μŠ€νŠΈλž™μž…λ‹ˆλ‹€! 개발 곡뢀 μ—΄μ‹¬νžˆ ν•˜κ³  κ³„μ‹œκ΅°μš”! λ©‹μ§€μ‹­λ‹ˆλ‹€ :)
ν˜Ήμ‹œ μ‹ μž…μœΌλ‘œ 개발 κ³΅λΆ€ν•˜λ©΄μ„œ κΈ°μˆ λ©΄μ ‘μ— λŒ€ν•œ λŒ€λΉ„κ°€ λ§‰λ§‰ν•˜μ‹œλ‹€λ©΄, 이번 κΈ°μˆ λ©΄μ ‘ νŠΉκ°•λ„ 관심 κ°€μ Έλ³΄μ‹œλ©΄ 쒋을 것 κ°™μ•„ λŒ“κΈ€λ‘œ 행사 μ•ˆλ‚΄λ“œλ €μš”~

ν”„λ‘ νŠΈ/ λ°±μ—”λ“œ λͺ¨λ‘ μ‹€λ ₯있고, μ‹€μ œ λ©΄μ ‘κ΄€μœΌλ‘œ ν™œλ™ν•˜κ³  계신 개발자 μ½”μΉ˜λ‹˜κ»˜μ„œ 무료둜 μ§„ν–‰ν•˜μ‹œλ‹ˆ μ°Έμ—¬ν•΄ λ³΄μ„Έμš”> https://festa.io/events/4389

그럼 μ˜€λŠ˜λ„ ν™”μ΄νŒ…μž…λ‹ˆλ‹€!πŸ™‡πŸ»β€β™€οΈπŸ’ͺ🏻

λ‹΅κΈ€ 달기