diff --git a/README.md b/README.md index 5a66c2b..481fd84 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # ๐Ÿš•SAFE-T ![๋ฆฌ๋“œ๋ฏธ ๋ฉ”์ธ](my-app/public/readme/main.png) - ๋ฐฐํฌ URL : http://safe-t.o-r.kr/ ## ํŒ€ ์†Œ๊ฐœ @@ -13,8 +12,9 @@ ![๊ธฐ๋Šฅ ๊ฐœ์š”](my-app/public/readme/team.png) | ๊น€์‹œ์› | ๊น€์• ๋ฆฌ | ๋ฐฑ์„ธํฌ | ์œ ์Šน์ธ | ์ด์˜์ฃผ | | ------ | ------ |------| ------ | ------ | +| ![profile](https://avatars.githubusercontent.com/u/121426422?v=4) | ![profile](https://avatars.githubusercontent.com/u/163821598?v=4) |![profile](https://avatars.githubusercontent.com/u/132613722?v=4)| ![profile](https://avatars.githubusercontent.com/u/144124353?v=4) | ![profile](https://avatars.githubusercontent.com/u/77565980?v=4) | | BE | FE | BE | FE | FE | -| @seaniiio | @aeli22 | @sae2say | @seung-in-Yoo | @abyss-s | +| [@seaniiio](https://github.com/seaniiio) | [@aeli22](https://github.com/aeli22) | [@sae2say](https://github.com/sae2say) | [@seung-in-Yoo](https://github.com/seung-in-Yoo) | [@abyss-s](https://github.com/abyss-s) | ## ๊ธฐ์ˆ  ์Šคํƒ @@ -26,48 +26,17 @@ ## ์„œ๋น„์Šค ์†Œ๊ฐœ -๋น ๋ฅด๊ณ  ๊ฐ„ํŽธํ•œ ๋””์ง€ํ„ธ ์ทจ์•ฝ ๊ณ„์ธต ํŠนํ™” ํƒ์‹œ ํ˜ธ์ถœ ์„œ๋น„์Šค - -## ์ œ์•ˆ ์ด์œ  - -- ๋Š˜์–ด๋‚˜๋Š” ์ทจ์•ฝ ๊ณ„์ธต - - ํ˜„์žฌ ์šฐ๋ฆฌ๋‚˜๋ผ๋Š” ์ทจ์•ฝ๊ณ„์ธต์ด๋ผ ๋ถ€๋ฅผ์ˆ˜ ์žˆ๋Š” ๋…ธ์ธ ๋ฐ ์žฅ์• ์ธ ๋“ฑ์˜ ์ธ๊ตฌ๊ฐ€ ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.์ „์ฒด ์ธ๊ตฌ ๋Œ€๋น„ ์žฅ์• ์ธ์˜ ๋น„์œจ์€ 5.1%, 65์„ธ ์ด์ƒ ์ธ๊ตฌ๋Š” 17.5%๋กœ, ํ˜„์žฌ๋„ ์ทจ์•ฝ๊ณ„์ธต์ด ์ด ์ธ๊ตฌ์˜ 20% ์ด์ƒ์„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๊ณ , 2070๋…„์ด ๋˜๋ฉด ์ทจ์•ฝ๊ณ„์ธต์˜ ๋น„์œจ์ด 50% ์ด์ƒ์ด ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ธก๋ฉ๋‹ˆ๋‹ค. -- ์ด๋กœ ์ธํ•œ ๋””์ง€ํ„ธ ๊ฒฉ์ฐจ์˜ ์‹ฌํ™” - - ํŠนํžˆ ์ทจ์•ฝ๊ณ„์ธต์€ ์Šค๋งˆํŠธํฐ ์‚ฌ์šฉ ๋ฏธ์ˆ™, ํ™”๋ฉด๊ณผ ์กฐ์ž‘ ๋ฐฉ๋ฒ•์˜ ๋ณต์žกํ•จ์œผ๋กœ ์ธํ•ด ๋””์ง€ํ„ธ ๊ฒฉ์ฐจ๊ฐ€ ์‹ฌํ™”๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ํƒ์‹œ ํ˜ธ์ถœ ์•ฑ ์‚ฌ์šฉ์ด ์–ด๋ ค์›Œ ์ฆ‰์„์—์„œ ํƒ์‹œ๋ฅผ ์žก์œผ์‹œ๋Š” ์–ด๋ฅด์‹ ๋“ค์€ ์•„๋ฌด๋ฆฌ ๊ธฐ๋‹ค๋ ค๋„ ์˜ˆ์•ฝํƒ์‹œ๋ฐ–์— ๋ณด์ด์ง€ ์•Š์•„์„œ ๋ถˆํŽธ์„ ๊ฒช๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. -- ์‹œ์žฅ ๋ถ„์„ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ์ธก๋ฉด ๋ถ„์„ - - ํ˜„์žฌ ํƒ์‹œ ํ˜ธ์ถœ ์•ฑ ์‹œ์žฅ์€ ๊พธ์ค€ํžˆ ์„ฑ์žฅ ์ค‘์ด๋ฉฐ, 10๋…„ ๋‚ด์— ๋‘ ๋ฐฐ ์ด์ƒ ๊ทœ๋ชจ๋กœ ํ™•๋Œ€๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ €ํฌ ์„œ๋น„์Šค๋Š” ๋ณ‘์›, ๋ณต์ง€๊ด€ ๋“ฑ ์ทจ์•ฝ๊ณ„์ธต์ด ๋งŽ์ด ์ด์šฉํ•˜๋Š” ์‹œ์„ค๊ณผ ํƒ์‹œ ํšŒ์‚ฌ ์‚ฌ์ด์—์„œ ์ค‘๊ฐœ ์—ญํ• ์„ ํ•˜๋ฉฐ, ๊ธฐ์—… ๋ฐ ๊ณต๊ณต๊ธฐ๊ด€๊ณผ์˜ ์—ฐ๊ณ„๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์„œ๋น„์Šค๋ฅผ ํ™๋ณดํ•˜์—ฌ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - -## ํ”„๋กœ์ ํŠธ ๊ณผ์ • - -![1](my-app/public/readme/plan1.png) -![2](my-app/public/readme/plan2.png) -![3](my-app/public/readme/plan3.png) +๋น ๋ฅด๊ณ  ๊ฐ„ํŽธํ•œ ๋””์ง€ํ„ธ ์ทจ์•ฝ ๊ณ„์ธต ํŠนํ™” ํƒ์‹œ ํ˜ธ์ถœ ์„œ๋น„์Šค, **SAFE-T**์ž…๋‹ˆ๋‹ค. ## ๊ธฐ๋Šฅ ![๊ธฐ๋Šฅ ๊ฐœ์š”](my-app/public/readme/service.png) -- **๋ฐ˜์‘ํ˜• ์›น/์•ฑ** - - ๋ฐ์Šคํฌํƒ‘, ํƒœ๋ธ”๋ฆฟ, ํœด๋Œ€ํฐ ๋ชจ๋“  ๊ธฐ๊ธฐ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ -- **ํšŒ์›๊ฐ€์ž…** - - ์ž…๋ ฅ๋ž€ ์œ ํšจ์„ฑ์„ ๊ฒ€์ฆ๋ฐ›์•„ ์•ˆ์ „ํ•œ ๊ฐ€์ž… ๊ฐ€๋Šฅ - - ์—ฐ๋ฝ์ฒ˜๋‚˜ ์ด๋ฉ”์ผ ๋“ฑ์˜ ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์„ ๊ฒฝ์šฐ, ๊ฐ€์ž… ๋ถˆ๊ฐ€ -- **๋กœ๊ทธ์ธ** - - JWT ๊ธฐ๋ฐ˜์˜ ํ† ํฐ ์ธ์ฆ์„ ํ†ตํ•œ ์•ˆ์ „ํ•œ ๋กœ๊ทธ์ธ - - ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋Šฅ ์ด์šฉ ๋ถˆ๊ฐ€ -- **๋‚ด ์ •๋ณด ํ™•์ธ** - - ํšŒ์›๊ฐ€์ž…์—์„œ ์‚ฌ์šฉํ•œ ์ฃผ์š” ๊ฐœ์ธ์ •๋ณด๋ฅผ ํ™•์ธ - - ๋ณดํ˜ธ์ž์™€ ์ฃผ์†Œ์ง€ ์ •๋ณด ์ถ”๊ฐ€ ๋“ฑ๋ก ๋ฐ ํ™•์ธ ๊ฐ€๋Šฅ -- **ํ˜„ ์œ„์น˜์—์„œ ํƒ์‹œ ํ˜ธ์ถœ** - - ์ถœ๋ฐœ์ง€ ๋ฐ ๋„์ฐฉ์ง€ ์ž…๋ ฅํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ํ˜ธ์ถœ - - QR ์Šค์บ”์„ ํ†ตํ•ด ๋ฏธ๋ฆฌ ์ €์žฅํ•œ ์ฃผ์†Œ์ง€๋กœ ๋น ๋ฅด๊ณ  ๊ฐ„ํŽธํ•˜๊ฒŒ ํ˜ธ์ถœ -- **ํƒ์‹œ ๋ฐฐ์ฐจ** - - ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ํƒ์‹œ๋“ค์˜ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ๋ฐฐ์ฐจ - - ๊ธฐ์‚ฌ ์ •๋ณด์™€ ์š”๊ธˆ, ์†Œ์š” ์‹œ๊ฐ„ ์•ˆ๋‚ด -- **๋ณดํ˜ธ์ž ๊ธด๊ธ‰ ํ˜ธ์ถœ** - - ์œ„๊ธ‰ ์ƒํ™ฉ ์‹œ ๋ฏธ๋ฆฌ ์ €์žฅํ•œ ๋ณดํ˜ธ์ž์—๊ฒŒ ์ฆ‰์‹œ ์•Œ๋ฆผ - -## ์‹คํ–‰ +## ์ฃผ์š” ๊ธฐ๋Šฅ + +![์ฃผ์š” ๊ธฐ๋Šฅ](my-app/public/readme/detail.png) + +## ์‹คํ–‰ ๋ฐฉ๋ฒ• ```bash git clone https://github.com/likelion-inha-hackathon-2/Summerthon-FE.git @@ -76,84 +45,83 @@ npm i npm run start ``` -## ์ฃผ์š” ํด๋” ๊ตฌ์กฐ - -- apis - - ์‚ฌ์šฉํ•œ api๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ๊ธฐ๋Šฅ๋งˆ๋‹ค ๋ถ„๋ฆฌ -- pages -- components -- assets - - ์ด๋ฏธ์ง€, ์•„์ด์ฝ˜ ๋“ฑ์„ ์ €์žฅํ•˜๋Š” ํด๋” -- hooks - - useForm: ํผ ์ž…๋ ฅ๋ž€์—์„œ ๋ณ€ํ•˜๋Š” value๋“ค์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ด€๋ฆฌ - -## ์˜์กด์„ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - -- `styled-components`: ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ๋ง์— ์‚ฌ์šฉ -- `axios`: ๋ฐฑ์—”๋“œ์™€ GET, POSTํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ -- `buffer, path-browserify, os-browserify`: webpack ๋ชจ๋“ˆ ๋ฒ„์ „ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ -- `react-modal`: ์ฃผ์†Œ์ง€ ์ถ”๊ฐ€, ๋ณดํ˜ธ์ž ์ถ”๊ฐ€, ํƒ์‹œ ํ˜ธ์ถœ ์ทจ์†Œํ•  ๋•Œ ๋ชจ๋‹ฌ ์ฐฝ ์‚ฌ์šฉ -- `xml-js`: XML ๋ฐ์ดํ„ฐ๋ฅผ JSON์œผ๋กœ ๋ณ€ํ™˜ - -## ์™ธ๋ถ€ API - - - -- [Daum ์šฐํŽธ๋ฒˆํ˜ธ ์„œ๋น„์Šค](https://postcode.map.daum.net/guide) - - ํšŒ์›๊ฐ€์ž… ์‹œ ๋„๋กœ๋ช… ์ฃผ์†Œ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ -- [Kakao Rest API](https://developers.kakao.com/docs/latest/ko/local/dev-guide) - - ์œ„๋„,๊ฒฝ๋„์™€ ๋„๋กœ๋ช…์ฃผ์†Œ ์–‘๋ฐฉํ–ฅ ๋ณ€ํ™˜ -- [Kakao ์ง€๋„ API](https://apis.map.kakao.com/web/guide/#ready) - - ์ถœ๋ฐœ์ง€ โ†’ ๋ชฉ์ ์ง€ ๊ธธ์ฐพ๊ธฐ, ๊ฒฝ๋กœ ํ‘œ์‹œ -- [Kakao ๋ชจ๋นŒ๋ฆฌํ‹ฐ API](https://developers.kakaomobility.com/docs/navi-api/origins/) - - ๋‹ค์ค‘ ์ถœ๋ฐœ์ง€ ๊ธธ์ฐพ๊ธฐ API๋ฅผ ํ™œ์šฉํ•ด ์—ฌ๋Ÿฌ ํƒ์‹œ๋“ค ์ค‘ ๊ฐ€๊นŒ์šด ํƒ์‹œ๋ฅผ ๋ฐฐ์ฐจ - -## ํ˜‘์—… ๋ฐฉ์‹ - -![ํ˜‘์—… ๋ฐฉ์‹](my-app/public/readme/cowork1.png) -![ํ˜‘์—… ๋ฐฉ์‹](my-app/public/readme/cowork2.png) -![ํ˜‘์—… ๋ฐฉ์‹](my-app/public/readme/cowork3.png) - -## ํŠน๋ณ„ํžˆ ์‹ ๊ฒฝ ์“ด ๋ถ€๋ถ„ +## ํด๋” ๊ตฌ์กฐ -> JWT ํ† ํฐ ์ธ์ฆ๋ฐฉ์‹ - -- BE: ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„์— ๋กœ๊ทธ์ธ์„ ์š”์ฒญํ•˜๋ฉด ์„œ๋ฒ„๋Š” access token๊ณผ refresh token์„ ๋ฐœ๊ธ‰ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. -- FE: ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ access token์„ ๋ณ€์ˆ˜๋กœ ๊ด€๋ฆฌํ•˜์—ฌ ์š”์ฒญ ํ—ค๋”์— Authorization ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ(ex. `Bearer ${accessToken}`)ํ•ฉ๋‹ˆ๋‹ค. - -> ๋ฐ˜์‘ํ˜•์œผ๋กœ ๊ตฌํ˜„ - -- ๋ชจ๋ฐ”์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐ์Šคํฌํƒ‘์—์„œ๋„ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ธฐ์กด ํƒ์‹œ ์„œ๋น„์Šค์™€์˜ ์ฐจ๋ณ„์ ์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค. - -### FE - -> ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„ - -- ๋‹จ์ผ ์ฑ…์ž„์˜ ์›์น™ - - ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ๋Š” ํ•˜๋‚˜์˜ ์ผ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ตœ๋Œ€ํ•œ ๋ถ„๋ฆฌํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค. - - ์˜ˆ๋ฅผ ๋“ค๋ฉด ์„œ๋น„์Šค ํŠน์„ฑ ์ƒ ํผ ์ž…๋ ฅ์ด ๋งŽ์•„ input ๋ ˆ์ด๋ธ”๊ณผ ์ž…๋ ฅ์ฐฝ์„ ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ๋กœ ๋งŒ๋“ค์–ด์„œ ๋ผ๋ฒจ name๋งŒ ๋ฐ”๊ฟ”์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. - -### BE - -> ํƒ์‹œ ํ˜ธ์ถœ ์‹œ์Šคํ…œ - -์ถœ๋ฐœ์ง€์ธ ์ธํ•˜๋Œ€ ๊ทผ์ฒ˜์— ํƒ์‹œ๋“ค์„ ๋žœ๋คํ•˜๊ฒŒ ์ƒ์„ฑํ•˜๊ณ , ๊ธธ์ฐพ๊ธฐ API๋ฅผ ์ด์šฉํ•˜์—ฌ ์ถœ๋ฐœ์ง€๋กœ๋ถ€ํ„ฐ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ํƒ์‹œ๋ฅผ ๋ฐฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ํƒ์‹œ ๊ธฐ์‚ฌ ์ •๋ณด์™€ ํ•จ๊ป˜ ํƒ์‹œ๊ฐ€ ๋„์ฐฉํ•˜๋Š” ๋ฐ์— ๊ฑธ๋ฆฌ๋Š” ์˜ˆ์ƒ ์‹œ๊ฐ„๊ณผ ๋ฐ ์ถœ๋ฐœ์ง€๋กœ๋ถ€ํ„ฐ ๋ชฉ์ ์ง€๊นŒ์ง€์˜ ์˜ˆ์ƒ ๋น„์šฉ์„ returnํ•ฉ๋‹ˆ๋‹ค. - -## ๋” ๋ฐœ์ „์‹œํ‚ฌ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด? - -- ์ด๋ฒˆ์— ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•œ ๋ถ€๋ถ„๋“ค์„ ์ƒ๊ฐํ•ด๋ณด๋ฉด ํ˜„์œ„์น˜ ๋ฐ›์•„์˜ค๊ธฐ, ๋‹ค์ค‘ ๊ฒฝ์œ ์ง€ ๊ธธ์ฐพ๊ธฐ API ๋“ฑ์„ ํ™œ์šฉํ•˜์—ฌ ํƒ์‹œ ์šด์ „ํ•˜๋Š” ๊ธฐ์‚ฌ๋‹˜๋“ค๋„ ์šฐ๋ฆฌ ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•ด ํ˜ธ์ถœ ์ˆ˜๋ฝํ•˜๊ธฐ, ๊ฒฐ์ œ ๊ธฐ๋Šฅ ๋“ฑ์ด ์žˆ์—ˆ๋‹ค. - - - ํŠนํžˆ API๋ฅผ ์ด์šฉํ•˜์—ฌ ํ˜„์žฌ ์œ„์น˜๋ฅผ ๋ฐ›์•„์˜ค๋ ค๊ณ  ์‹œ๋„ํ–ˆ์œผ๋‚˜, ์ธ์ฒœ์—์„œ ํ˜„ ์œ„์น˜๋ฅผ ๋ถˆ๋Ÿฌ์˜ด์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ฏธ๊ตญ์œผ๋กœ ์œ„์น˜๊ฐ€ ๋œจ๋Š” ๋“ฑ ์˜ค์ฐจ๊ฐ€ ๋„ˆ๋ฌด ์ปค์„œ ๊ทธ ๋ถ€๋ถ„์€ ๋ณด๋ฅ˜ํ–ˆ๋‹ค. ๊ตฌํ˜„์„ ์ œ๋Œ€๋กœ ๋ชปํ•œ ๊ฑด ์•„์‰ฝ์ง€๋งŒ ํŠน์ • ์ง€์—ญ ๋ฐ˜๊ฒฝ ๋‚ด์—์„œ ์„œ๋น„์Šคํ•œ๋‹ค๋ฉด ์ถฉ๋ถ„ํžˆ ์ƒ์—…์ ์ธ ๊ฐ€์น˜๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. - -- ์ฝ”๋“œ ํฌ๋งคํ„ฐ์˜ ๋ถ€์žฌ +``` +๐Ÿ“ฆsrc + โ”ฃ ๐Ÿ“‚apis + โ”ƒ โ”ฃ ๐Ÿ“œauthApi.js + โ”ƒ โ”ฃ ๐Ÿ“œemailApi.js + โ”ƒ โ”ฃ ๐Ÿ“œkakaoApi.js + โ”ƒ โ”— ๐Ÿ“œtaxiApi.js + โ”ฃ ๐Ÿ“‚assets + โ”ƒ โ”ฃ ๐Ÿ“‚icons + โ”ƒ โ”ƒ โ”— ๐Ÿ“œarrow.png + โ”ƒ โ”ฃ ๐Ÿ“‚images + โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œbutton-call.png + โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œbutton-cancel.png + โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œbutton-emer.png + โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œbutton-scan.png + โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œlogo.png + โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œtaxi.png + โ”ƒ โ”ƒ โ”— ๐Ÿ“œuser.png + โ”ƒ โ”— ๐Ÿ“œimage.js + โ”ฃ ๐Ÿ“‚components + โ”ƒ โ”ฃ ๐Ÿ“‚Button + โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAddButton.jsx + โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œButton.jsx + โ”ƒ โ”ƒ โ”— ๐Ÿ“œCancleButton.jsx + โ”ƒ โ”ฃ ๐Ÿ“‚Container + โ”ƒ โ”ƒ โ”— ๐Ÿ“œContainer.jsx + โ”ƒ โ”ฃ ๐Ÿ“‚Flex + โ”ƒ โ”ƒ โ”— ๐Ÿ“œFlex.jsx + โ”ƒ โ”ฃ ๐Ÿ“‚Header + โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œHeader1.jsx + โ”ƒ โ”ƒ โ”— ๐Ÿ“œHeader2.jsx + โ”ƒ โ”ฃ ๐Ÿ“‚Image + โ”ƒ โ”ƒ โ”— ๐Ÿ“œImage.jsx + โ”ƒ โ”ฃ ๐Ÿ“‚Input + โ”ƒ โ”ƒ โ”— ๐Ÿ“œInput.jsx + โ”ƒ โ”ฃ ๐Ÿ“‚Layout + โ”ƒ โ”ƒ โ”— ๐Ÿ“œLayout.jsx + โ”ƒ โ”ฃ ๐Ÿ“‚Map + โ”ƒ โ”ƒ โ”— ๐Ÿ“œMap.jsx + โ”ƒ โ”ฃ ๐Ÿ“‚Modal + โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAddAddressModal.jsx + โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAddProtectorModal.jsx + โ”ƒ โ”ƒ โ”— ๐Ÿ“œModal.jsx + โ”ƒ โ”ฃ ๐Ÿ“‚Radio + โ”ƒ โ”ƒ โ”— ๐Ÿ“œRadio.jsx + โ”ƒ โ”ฃ ๐Ÿ“‚Taxi + โ”ƒ โ”ƒ โ”— ๐Ÿ“œTaxi.jsx + โ”ƒ โ”— ๐Ÿ“‚Typo + โ”ƒ โ”ƒ โ”— ๐Ÿ“œTypo.jsx + โ”ฃ ๐Ÿ“‚hooks + โ”ƒ โ”— ๐Ÿ“œuseForm.jsx + โ”ฃ ๐Ÿ“‚pages + โ”ƒ โ”ฃ ๐Ÿ“œArriveLocation.jsx + โ”ƒ โ”ฃ ๐Ÿ“œCall.jsx + โ”ƒ โ”ฃ ๐Ÿ“œEmerCall.jsx + โ”ƒ โ”ฃ ๐Ÿ“œHome.jsx + โ”ƒ โ”ฃ ๐Ÿ“œLogin.jsx + โ”ƒ โ”ฃ ๐Ÿ“œMain.jsx + โ”ƒ โ”ฃ ๐Ÿ“œMoreMyInfo.jsx + โ”ƒ โ”ฃ ๐Ÿ“œMyInfo.jsx + โ”ƒ โ”ฃ ๐Ÿ“œScan.jsx + โ”ƒ โ”— ๐Ÿ“œSignUp.jsx + โ”ฃ ๐Ÿ“œApp.css + โ”ฃ ๐Ÿ“œApp.jsx + โ”ฃ ๐Ÿ“œindex.css + โ”— ๐Ÿ“œindex.js +``` - - Prettier ์ต์Šคํ…์…˜ ์„ค์ •์ด ์„œ๋กœ ๋‹ฌ๋ผ์„œ ํ˜ผ๋ž€์ด ์ƒ๊ฒผ๋˜ ์ ์ด ์žˆ๋‹ค. ๋‹ค์Œ์—๋Š” ์ฝ”๋“œํฌ๋งคํ„ฐ๋ฅผ ํ†ต์ผํ•˜๊ฑฐ๋‚˜ ๋ฏธ๋ฆฌ ์„ธํŒ…ํ•˜์—ฌ ํŒ€์›๋“ค ๊ฐ„ ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ๊ฒ ๋‹ค. +## ํ”„๋กœ์ ํŠธ ์ผ์ • -- ์ฝ”๋“œ ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜์˜ ๋ถ€์žฌ +![1](my-app/public/readme/plan1.png) +![2](my-app/public/readme/plan2.png) +![3](my-app/public/readme/plan3.png) - - ๋”ฐ๋กœ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ฅผ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ๋„ค์ด๋ฐ ๊ทœ์น™์„ ์ •ํ•œ ์ ์ด ์—†์—ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์„œ๋กœ ๊ฐ™์€ ํŒŒ์ผ์ด๋‚˜ ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ •ํ•˜์—ฌ ์ˆ˜์ •ํ•˜๋Š” ์‹œ๊ฐ„์ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋Š˜์—ˆ๋‹ค. ํšŒ์˜๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ์ ์ธ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ํŒ€์›๋“ค๋ผ๋ฆฌ ๊ณต์œ ํ–ˆ๋‹ค๋ฉด ๋” ํšจ์œจ์ ์œผ๋กœ ํ˜‘์—…ํ•  ์ˆ˜ ์žˆ์—ˆ์„ ๊ฒƒ์ด๋‹ค. +## ํ˜‘์—… -- ๋Šฆ์€ ๋ ˆ์ด์•„์›ƒ ๋ฆฌํŒฉํ† ๋ง - - ํ•ด์ปคํ†ค ์ „๋‚  ๊ธ‰ํ•˜๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐ˜์‘ํ˜•์œผ๋กœ ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋””์ž์ธ ๊ธฐํš ์‹œ ์‚ฌ์šฉ์ž ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์ด๋ฏ€๋กœ ์ดํ›„ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์‹ค์ œ ์Šค๋งˆํŠธํฐ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์›น/์•ฑ ํ”„๋กœํ† ํƒ€์ž…์„ ์ œ๋Œ€๋กœ ์ œ์ž‘ํ•ด์•ผ ๊ฒ ๋‹ค. +![ํ˜‘์—…](my-app/public/readme/cowork1.png) +![ํ˜‘์—…](my-app/public/readme/cowork2.png) diff --git a/my-app/README.md b/my-app/README.md index 1d6e5a3..59ee29d 100644 --- a/my-app/README.md +++ b/my-app/README.md @@ -1,5 +1,2 @@ ## README.md -1. `cd my-app` -2. `npm i` -3. `npm run start` diff --git a/my-app/public/readme/cowork3.png b/my-app/public/readme/cowork3.png deleted file mode 100644 index 7c9ac32..0000000 Binary files a/my-app/public/readme/cowork3.png and /dev/null differ diff --git a/my-app/public/readme/detail.png b/my-app/public/readme/detail.png new file mode 100644 index 0000000..a2032e6 Binary files /dev/null and b/my-app/public/readme/detail.png differ