Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Jesuji/nomad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

130 Commits

Repository files navigation

๐ŸŒŽ ํ•œ๊ตญ์—์„œ ๊ฐ€๊นŒ์šด ์ž๊ตญ ์Œ์‹์ ์„ ์‰ฝ๊ฒŒ ์ฐพ๋Š” ์„œ๋น„์Šค nomad

๐Ÿ“Ž ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

์ด ํ”„๋กœ์ ํŠธ๋Š” ํ•œ๊ตญ์„ ๋ฐฉ๋ฌธํ•œ ์™ธ๊ตญ์ธ ์—ฌํ–‰์ž๋“ค์ด ๋ฐ˜๊ฒฝ 5km ์ด๋‚ด์—์„œ ์ž๊ตญ ์Œ์‹์„ ํŒ๋งคํ•˜๋Š” ์Œ์‹์ ์„ ์†์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž๋Š” ํ˜„์žฌ ์œ„์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฃผ๋ณ€์˜ ์ž๊ตญ ์Œ์‹์ ์„ ์ถ”์ฒœ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ถ”์ฒœ๋ฐ›์€ ์Œ์‹์ ์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์Œ์‹์  ์ด์šฉ ํ›„, ๋ฆฌ๋ทฐ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ™์€ ๊ตญ์ ์˜ ์‚ฌ์šฉ์ž๋“ค๋ผ๋ฆฌ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋Š” ์ฑ„ํŒ… ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Ž ๊ธฐํš ๋ฐฐ๊ฒฝ

ํ•œ๊ตญ์„ ๋ฐฉ๋ฌธํ•˜๋Š” ์™ธ๊ตญ์ธ ๊ด€๊ด‘๊ฐ๋“ค์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ, ํ˜„์ง€ ์Œ์‹์— ์ต์ˆ™ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ž๊ตญ์˜ ์Œ์‹์ด ๊ทธ๋ฆฌ์šด ์—ฌํ–‰์ž๋“ค์ด ๋งŽ์•„์กŒ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์›ํ•˜๋Š” ์Œ์‹์„ ํŒŒ๋Š” ์‹๋‹น์„ ์ฐพ๊ธฐ ์–ด๋ ต๊ฑฐ๋‚˜ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์œ„์น˜ ๊ธฐ๋ฐ˜ ์ถ”์ฒœ ์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•˜์—ฌ ๊ฐ€๊นŒ์šด ์ž๊ตญ ์Œ์‹์ ์„ ์ง€๋„์— ํ‘œ์‹œํ•˜์—ฌ ํŽธ๋ฆฌํ•˜๊ฒŒ ์Œ์‹์ ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋ณธ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐํšํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ฆฌ๋ทฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๋ฐฉ๋ฌธํ•œ ์Œ์‹์ ์— ๋Œ€ํ•œ ์‹ค์ œ ํ‰๊ฐ€๋ฅผ ๊ณต์œ ํ•จ์œผ๋กœ์จ, ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ณ  ๋ณด๋‹ค ๋งŒ์กฑ์Šค๋Ÿฌ์šด ์‹์‚ฌ ๊ฒฝํ—˜์„ ๋„์šธ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.


โญ๏ธ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ‘ค ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ(์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ)

  • ํšŒ์› ๊ฐ€์ž…
  • ๋กœ๊ทธ์ธ

๐Ÿ“ ์œ„์น˜ ๊ธฐ๋ฐ˜ ์Œ์‹์  ์ถ”์ฒœ

  • ํšŒ์›๊ฐ€์ž… ๋•Œ ๋ฐ›์€ ๊ตญ์ ์„ ํ™œ์šฉ

  • ์‚ฌ์šฉ์ž์˜ ํ˜„์žฌ ์œ„์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ˜๊ฒฝ 5km ๋‚ด ์ž๊ตญ ์Œ์‹์  ์ถ”์ฒœ

  • React Native Maps๋ฅผ ํ™œ์šฉํ•œ ์ง€๋„ ํ‘œ์‹œ

  • ๐Ÿ‡ป๐Ÿ‡ณ ๋ฒ ํŠธ๋‚จ ์Œ์‹์ 

  • ๐Ÿ‡ฎ๐Ÿ‡น ์ดํƒˆ๋ฆฌ์•„ ์Œ์‹์ 


๐Ÿ“ ๋ฆฌ๋ทฐ ์ž‘์„ฑ ๋ฐ ํ‰์  ์‹œ์Šคํ…œ

  • ๋ฐฉ๋ฌธํ•œ ์Œ์‹์ ์— ๋Œ€ํ•œ ๋ฆฌ๋ทฐ ์ž‘์„ฑ ๋ฐ ๋ณ„์  ํ‰๊ฐ€ ๊ธฐ๋Šฅ

  • ๋ฆฌ๋ทฐ ์ž‘์„ฑ

  • ํ”„๋กœํ•„ -> ๋‚ด ๋ฆฌ๋ทฐ ์กฐํšŒ

  • ํ”„๋กœํ•„ -> ๋ฆฌ๋ทฐ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ


๐Ÿ’ฌ ์ฑ„ํŒ… ๊ธฐ๋Šฅ

  • WebSocket์„ ํ™œ์šฉํ•œ 1:1 ์ฑ„ํŒ… ๊ฐ€๋Šฅ

๐Ÿ” ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ (ํ•ด์‹œํƒœ๊ทธ ๊ธฐ๋ฐ˜ ํ•„ํ„ฐ๋ง)

  • ์Œ์‹์ ์˜ ๋ฆฌ๋ทฐ ๋‚ด ํ•ด์‹œํƒœ๊ทธ ๋ถ„์„์„ ํ†ตํ•ด ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ œ๊ณต

๐Ÿ‘ค ํ”„๋กœํ•„ ์กฐํšŒ


๐Ÿ“ท ์Œ์‹์  ์‚ฌ์ง„ ์ œ๊ณต

  • ๐ŸŒŽ Google Places API์—์„œ ์Œ์‹์  ์‚ฌ์ง„์„ ๊ฐ€์ ธ์™€ ํ‘œ์‹œ
  • โ˜๏ธ AWS S3 bucket์— ์ €์žฅํ•˜์—ฌ ์ด๋ฏธ์ง€ ์บ์‹ฑ ๋ฐ ์ตœ์ ํ™”

๐Ÿ“• ํ™œ์šฉ ๋ฐ์ดํ„ฐ

-> https://www.bigdata-culture.kr/bigdata/user/data_market/detail.do?id=43de70c0-0337-11ee-a67e-69239d37dfae


๐Ÿ“• API ๋ช…์„ธ์„œ

-> https://desert-walker-411.notion.site/4e4ce146174148e6bf6000dd85e84647?v=9fb95dab867a410aa1123183f1a3934c&pvs=4


๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ

๐Ÿ“Œ Frontend

  • React Native
  • React Native Maps
  • Axios

๐Ÿ“Œ Backend

  • Spring Boot
  • Spring Security (์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ)
  • JPA & MySQL
  • Google Places API (์Œ์‹์  ์ •๋ณด ๋ฐ ์‚ฌ์ง„ ์ œ๊ณต)
  • Amazon S3 (์ด๋ฏธ์ง€ ์ €์žฅ)

๐Ÿ“Œ Dev Tools & Test

  • iOS Simulator
  • Postman

๐Ÿ“Œ ๊ณ ์ฐฐ

1๏ธโƒฃ ์ดˆ๊ธฐ์— ๋„ค์ด๋ฒ„ ์ง€๋„ API๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋‚˜ React Native ํ™˜๊ฒฝ์—์„œ์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋กœ React Native Maps๋กœ ๋ณ€๊ฒฝํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— react-native-geolocation-service๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์œ„์น˜ ์ •๋ณด๋ฅผ ๋ฐ›์•„์™”์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ GPS ์‹ ํ˜ธ๊ฐ€ ์•ฝํ•˜๊ฑฐ๋‚˜ ๊ถŒํ•œ์ด ์ œํ•œ๋œ ๊ฒฝ์šฐ ์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด, ์ž„์‹œ๋ฐฉํŽธ์œผ๋กœ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์ง์ ‘ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์—ฐ๋™ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ–ฅํ›„์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์œ„์น˜๋ฅผ ์ง์ ‘ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ณด๋‹ค ์•ˆ์ •์ ์ธ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ฐœ์„ ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

2๏ธโƒฃ ์ผ๋ถ€ ์Œ์‹์ ์—์„œ ์ด๋ฏธ์ง€ URL์ด ์กด์žฌํ•˜์ง€ ์•Š์•„ ์˜ค๋ฅ˜ ๋ฐœ์ƒํ•˜์˜€๊ณ , Google Places API๋ฅผ ํ†ตํ•ด ์ฐพ์€ photoUrl์ด ์—†์„ ๊ฒฝ์šฐ, "๋Œ€ํ‘œ ์‚ฌ์ง„ ์—†์Œ"์„ ๋ฐ˜ํ™˜ํ•˜๋Š”๊ฑธ๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

3๏ธโƒฃ React Native์—์„œ ํ˜„์žฌ ์œ„์น˜๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ๋ฐฑ์—”๋“œ์— ์ „์†กํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‘ ๋ฒˆ ์š”์ฒญ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์—ˆ๋Š”๋ฐ, useEffect ๋‚ด ์˜์กด์„ฑ ๋ฐฐ์—ด ๋ฏธ์„ค์ •์œผ๋กœ ์ธํ•ด ์ค‘๋ณต ์š”์ฒญ ๋ฐœ์ƒํ•˜๋Š”๊ฒŒ ์›์ธ์ด์˜€๊ณ , useEffect์—์„œ ์˜์กด์„ฑ ๋ฐฐ์—ด์„ ์ •ํ™•ํ•˜๊ฒŒ ์„ค์ •ํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

4๏ธโƒฃ ์ดˆ๊ธฐ์— ์Œ์‹์ ์˜ ๋ฉ”๋‰ด ์ •๋ณด๊ฐ€ ์žˆ๋Š” csv ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„๋ณด๋‹ค๊ฐ€ ์—†์–ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฆฌ๋ทฐ ์ž‘์„ฑ ์‹œ ํ•ด์‹œํƒœ๊ทธ ํ˜•ํƒœ๋กœ ๋จน์—ˆ๋˜ ๋ฉ”๋‰ด๋ฅผ ์ž…๋ ฅํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜์—ฌ ์ด๋ฅผ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์— ํ™œ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

5๏ธโƒฃ ํ”„๋ก ํŠธ์—”๋“œ ์ฝ”๋“œ์™€ ๋จธ์ง€๋ฅผ ํ•  ๋•Œ ์ž˜๋ชป ์„ค์ •๋œ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ ํ˜„์žฌ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ถ”ํ›„์— ์‹คํ–‰๋˜๋„๋ก ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


๐Ÿš€ ํ–ฅํ›„ ์—…๋ฐ์ดํŠธ

  • ๋‹ค๊ตญ์–ด ์ง€์›(์˜์–ด, ์ผ๋ณธ์–ด, ๋ฒ ํŠธ๋‚จ์–ด ๋“ฑ)
  • ๋ฆฌ๋ทฐ ๋ฐ ํ”„๋กœํ•„ ์‚ฌ์ง„ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์œ„์น˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • ๊ตญ์ ์ด ๊ฐ™์€ ์ฑ„ํŒ… ์นœ๊ตฌ ์ถ”์ฒœ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

๐Ÿ™‹โ€โ™‚๏ธ Developer

Backend Backend Frontend Frontend
๊น€๋ช…์„ฑ ์ œ์ˆ˜์ง€ ์•ˆ์†Œ์œค ๋ฐ•์ค€ํ•˜

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

AltStyle ใซใ‚ˆใฃใฆๅค‰ๆ›ใ•ใ‚ŒใŸใƒšใƒผใ‚ธ (->ใ‚ชใƒชใ‚ธใƒŠใƒซ) /