8000 GitHub - 6161990/Happve: ๐Ÿต ์„œ์šธํŠน๋ณ„์‹œ ์ฑ„์‹ ์‹๋‹น ๊ฐ€์ด๋“œ Happve(Happy Vegan)
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ Happve Public

๐Ÿต ์„œ์šธํŠน๋ณ„์‹œ ์ฑ„์‹ ์‹๋‹น ๊ฐ€์ด๋“œ Happve(Happy Vegan)

Notifications You must be signed in to change notification settings

6161990/Happve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

18 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Happve

๐Ÿต ์„œ์šธํŠน๋ณ„์‹œ ์ฑ„์‹ ์‹๋‹น ๊ฐ€์ด๋“œ Happy Vegan


20210710100653


1. ์ œ์ž‘ ๊ธฐ๊ฐ„ & ์ฐธ์—ฌ ์ธ์›

  • 2021๋…„ 08์›” 09์ผ ~ 2021๋…„ 08์›” 30์ผ
  • ํŒ€ ํ”„๋กœ์ ํŠธ (6๋ช…)
  • ๋งก์€ ์—ญํ•  : ์‹๋‹น ์ƒ์„ธ๋ณด๊ธฐ, ๊ฑด์˜ํ•˜๊ธฐ, ๋ฆฌ๋ทฐ ๋ชจ์•„๋ณด๊ธฐ ํŽ˜์ด์ง€ ๊ธฐ๋Šฅ ๊ตฌํ˜„

2. ์‚ฌ์šฉ๊ธฐ์ˆ 

Back-end

  • Java 16
  • Amazon RDS for MySQL
  • Spring boot
  • Spring Security
  • Spring JPA

Front-end

  • HTML, CSS3
  • JavaScript, jQuery

Tool & Program

  • IntelliJ IDEA 2021-03v
  • Navicat Premium 15.0
  • Visual Studio Code
  • Adobe XD
  • Slack , Notion

3. ERD ์„ค๊ณ„

20210907155051


4. ์š”๊ตฌ์‚ฌํ•ญ


5. ํ•ต์‹ฌ๊ธฐ๋Šฅ

์ด ์„œ๋น„์Šค์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์€ ์‹๋‹น ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์„œ์šธ ์ „์—ญ์— ์žˆ๋Š” ๋น„๊ฑด ์‹๋‹น์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ํŽ˜์ด์ง€์—์„œ ์‹๋‹น์„ ํด๋ฆญํ•˜๋ฉด ์„œ์šธ์‹œ ๊ณต๊ณต๋ฐ์ดํ„ฐ ์˜คํ”ˆ API๋ฅผ ์—ฐ๋™ํ•ด ์‹๋‹น ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹๋‹น ๊ฒ€์ƒ‰ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹๋‹น์— ๋Œ€ํ•œ ๋ฆฌ๋ทฐ๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ๋ทฐ์˜ ์‚ฌ์ง„์—…๋กœ๋“œ, ๊ธ€ ์ˆ˜์ •, ๊ธ€ ์‚ญ์ œ ๋˜ํ•œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ฐ€๊ณ  ์‹ถ์€ ์‹๋‹น์ด๋‚˜ ์ž์ฃผ ๊ฐ€๋Š” ์‹๋‹น์— ๋Œ€ํ•ด '์ฐœ' ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


6. ํ•ต์‹ฌ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

โ–ถ 6.1 ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ ์˜คํ”ˆ API๋ฅผ ์ž๋ฐ” ๊ฐ์ฒด๋กœ ๋งคํ•‘ํ•˜๋Š” ๋ฌธ์ œ

  • detail.html๋Š” ๋น„๊ฑด ์‹๋‹น ์ƒ์„ธ ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •๋ณด๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์˜คํ”ˆ API๋ฅผ ์ด์šฉํ•œ ๋น„๊ฑด ์‹๋‹น์˜ ์ •๋ณด
    • ์นด์นด์˜ค API๋ฅผ ์ด์šฉํ•œ ์ง€๋„์ƒ ์œ„์น˜ ์ •๋ณด
    • ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋“ค์ด ์ž‘์„ฑํ•œ ํ•ด๋‹น ๋น„๊ฑด ์‹๋‹น ๋ฆฌ๋ทฐ
  • ์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ ๊ตฌํ˜„์€ JSONParse์™€ Jackson ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ ObjectMapper๋ฅผ ์ด์šฉํ•ด Json ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋ฐ” ๊ฐ์ฒด๋กœ parsing ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    • ์‹๋‹น์˜ ๊ณ ์œ  ๋ฒˆํ˜ธ๋ฅผ @PathVariable๋กœ ๋ฐ›์•„์™€ ํ•ด๋‹น ์‹๋‹น ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.
    • ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ๋Š” JSON node๋ฅผ JSONObject์™€ JSONArray ํ˜•๋ณ€ํ™˜์„ ํ†ตํ•ด ๊บผ๋‚ด์–ด RestaurantAPI ์ž๋ฐ” ๊ฐ์ฒด๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ๊ธฐ์กด์ฝ”๋“œ


20210907143525

  • writeValueAsString, readTree ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด JsonNode๋กœ ๋ณ€ํ™˜๋œ ๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜์”ฉ ๋ณ€์ˆ˜์— ๋‹ด์Šต๋‹ˆ๋‹ค.
  • ๋ณ€ํ™˜์„ ๋งˆ์นœ ๋ณ€์ˆ˜๋ฅผ ๋‹ค์‹œ ์ž๋ฐ” ๊ฐ์ฒด๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•ด๋‹น ์‚ฌ์ง„์—๋Š” ์ „๋ถ€ ๋‹ค ๋‹ด๊ธฐ์ง€ ์•Š์•˜์ง€๋งŒ ๋ณ€์ˆ˜๊ฐ€ 31๊ฐœ์ธ ์ƒํ™ฉ์—์„œ ํ•ด๋‹น ๋ฐฉ์‹์€ ์ƒ๋‹นํžˆ ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

๐Ÿ“ ๊ฐœ์„ ๋œ ์ฝ”๋“œ ๐Ÿ“ ์ฝ”๋“œํ™•์ธ

  • String์œผ๋กœ ๋ณ€ํ™˜๋œ JsonObject ๊ฐ์ฒด๋ฅผ readValue ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์ž๋ฐ” ๊ฐ์ฒด๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.
  • @JsonProperty๋ฅผ ์ด์šฉํ•ด ๋Œ€๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ์˜คํ”ˆ API ๋ฐ์ดํ„ฐ๋ฅผ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฐ” ๊ฐ์ฒด ๋ณ€์ˆ˜์— ๋งคํ•‘๋˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.




โ–ถ 6.2 ์‹๋‹น์— ๋Œ€ํ•œ ๋ฆฌ๋ทฐ ๋ณ„์  List์—์„œ ArrayIndexOutOfBoundsException ์ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ

๐Ÿ“ ๊ธฐ์กด์ฝ”๋“œ

20210907150325

  • ์ปฌ๋ ‰์…˜ ๋ฐฐ์—ด์—์„œ get ๋ฉ”์†Œ๋“œ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ฐจ๋ก€๋กœ ๊บผ๋‚ด๋ฉด, ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ์Œ์ˆ˜ ์ธ๋ฑ์Šค์— ๋Œ€ํ•œ ์š”์ฒญ์ผ ๊ฒฝ์šฐ ArrayIndexOutOfBoundsException ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ๊ฐœ์„ ๋œ ์ฝ”๋“œ ๐Ÿ“ ์ฝ”๋“œํ™•์ธ

  • Stream์˜ limit ๋ฉ”์†Œ๋“œ์™€ filter, map ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์ค‘๊ฐ„์—ฐ์‚ฐ, forEach ๋ฉ”์†Œ๋“œ๋กœ ์ตœ์ข…์—ฐ์‚ฐ์„ ๊ฑฐ์ณ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
  • null๊ฐ’์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ์™€ ์ปฌ๋ ‰์…˜์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ •ํ•ด์ง„ ์ˆซ์ž๋งŒํผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์–ด ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.




โ–ถ 6.3 ๊ทธ ์™ธ ์ฒ˜๋ฆฌ ์‚ฌํ•ญ

  • ์นด์นด์˜ค ์ง€๋„ API๋ฅผ ์ด์šฉํ•œ ์‹๋‹น ์ง€๋„์ƒ ์œ„์น˜ ์„ค์ •์—์„œ x, y์ขŒํ‘œ๋ณ€์ˆ˜ ํ• ๋‹น ์ฒ˜๋ฆฌ ๐Ÿ“Œ์ฝ”๋“œํ™•์ธ
    • Thymeleaf์˜ inline ์„ ์ด์šฉํ•˜์—ฌ ๋ฐ›์•„์˜จ x, y์ขŒํ‘œ๋ฅผ javascript ๋ณ€์ˆ˜์— ํ• ๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฑด์˜ํ•˜๊ธฐ์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ”์„ธ์ง€ ์ „๋‹ฌ ์ฒ˜๋ฆฌ
    • ์‚ฌ์šฉ์ž๊ฐ€ ๊ฑด์˜ ๋‚ด์šฉ์ด ์ „๋‹ฌ๋˜์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋„๋ก, DB์— ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฝ์ž…๋˜๋ฉด id๋ฅผ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค.
    • ๋ฐ›์•„์˜จ id์— ๊ฐ’์ด ๋“ค์–ด์žˆ๋‹ค๋ฉด Controller์—์„œ RedirectAttribute๋กœ ์ƒํƒœ ๊ฐ’์„ true๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ“Œ์ฝ”๋“œํ™•์ธ
    • View์—์„œ๋Š” status๊ฐ€ true๋ฉด ๊ฑด์˜์‚ฌํ•ญ ๋ฐ•์Šค์— "๊ฑด์˜ ๋‚ด์šฉ์ด ์ „๋‹ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋˜์–ด ์‚ฌ์šฉ์ž๊ฐ€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ์ฝ”๋“œํ™•์ธ


7. ํŽ˜์ด์ง€ ์„ค๋ช…

๋ณธ์ธ์ด ๊ตฌํ˜„ํ•œ ๋ถ€๋ถ„๋งŒ โœ” ํ‘œ์‹œ

index.html

์‚ฌ์ดํŠธ์˜ ํ™ˆ ํ™”๋ฉด ํŽ˜์ด์ง€

์ฑ„์‹ ๊ด€๋ จ ํ™˜๊ฒฝ ์ •๋ณด, ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์ œ๊ณต

signup.html

ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€

์‚ฌ์šฉ์ž ๋‹‰๋„ค์ž„ ๋˜๋Š” ์ด๋ฉ”์ผ , ํŒจ์Šค์›Œ๋“œ, ์ฑ„์‹ ์œ ํ˜• ์„ ์ž…๋ ฅ๋ฐ›์Œ
@Valid์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฐ’๋“ค์— ๋Œ€ํ•ด ์ปค์Šคํ…€ ๊ฒ€์ฆํ•จ
๋ชจ๋“  ๊ฒ€์ฆ์„ ๋งˆ์น˜๊ณ  ํšŒ์›๊ฐ€์ž…์ด ์™„๋ฃŒ ๋˜์—ˆ์„ ๊ฒฝ์šฐ Spring Security๋กœ ๋กœ๊ทธ์ธ ์ƒํƒœ๋กœ ์œ ์ง€์‹œํ‚ค๊ณ  ๋ฉ”์ธํŽ˜์ด์ง€๋กœ redirect

login.html

๋กœ๊ทธ์ธ ํŽ˜์ด์ง€

๋‹‰๋„ค์ž„ ๋˜๋Š” ์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ ๋ฐ›์•„ ๋™์ž‘, ์œ ํšจํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ
์„ธ์…˜์„ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ฟ ํ‚ค์— ์„ธ์…˜์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ rememberMe ์ฟ ํ‚ค๋ฅผ ์ €์žฅ

โœ” details.html

์‹๋‹น ์ƒ์„ธ ํŽ˜์ด์ง€

์˜คํ”ˆ API ์ •๋ณด์™€ ์—ฐ๋™ํ•ด ์‹๋‹น ์ฃผ์†Œ, ์ „ํ™”๋ฒˆํ˜ธ, ๋ฉ”๋‰ด ๋“ฑ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Œ
๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ํ•ด๋‹น ์‹๋‹น์— ๋Œ€ํ•œ ๋ฆฌ๋ทฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Œ
์นด์นด์˜ค ์ง€๋„ API๋ฅผ ์ด์šฉํ•ด ์‹๋‹น ์œ„์น˜๋ฅผ ์ง€๋„์ƒ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

โœ” commu.html

์‚ฌ์šฉ์ž๋“ค์ด ์ž‘์„ฑํ•œ ๋ฆฌ๋ทฐ ๋ชจ์•„๋ณด๊ธฐ ํŽ˜์ด์ง€

๋ฆฌ๋ทฐ ์ž‘์„ฑ์ž, ๋ฆฌ๋ทฐ ๋“ฑ๋ก์‹œ ์—…๋กœ๋“œํ•œ ์ด๋ฏธ์ง€, ๋ณ„์ ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
ํ•ด๋‹น ๋ฆฌ๋ทฐ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฆฌ๋ทฐํ•œ ์‹๋‹น ์ƒ์„ธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•จ

โœ” suggestion.html

๊ฑด์˜ํ•˜๊ธฐ ํŽ˜์ด์ง€

์ด๋ฉ”์ผ๊ณผ ๋‚ด์šฉ์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ @Validated๋ฅผ ์‚ฌ์šฉํ•ด ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๊ฒ€์ฆํ•จ

error.html

์—๋Ÿฌ ํŽ˜์ด์ง€

spring boot default ์—๋Ÿฌ ํŽ˜์ด์ง€๋กœ ์‚ฌ์šฉํ•จ

mypage.html

ํšŒ์› ํ”„๋กœํ•„ ํŽ˜์ด์ง€

ํšŒ์› ์ด๋ฉ”์ผ๊ณผ ๋‹‰๋„ค์ž„, ์ฑ„์‹ ์ฃผ์˜์ž ์œ ํ˜•์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

mypagebookmark.html

์ฆ๊ฒจ์ฐพ๊ธฐ ํŽ˜์ด์ง€

ํ‰์†Œ ์ฆ๊ฒจ์ฐพ๊ธฐ๋ฅผ ํ•ด๋‘” ์‹๋‹น๊ณผ ์‚ฌ์šฉ์ž ๋ณธ์ธ์ด ์ž‘์„ฑํ•œ ๋ฆฌ๋ทฐ๋ฅผ ํ•œ๋ฐ ๋ชจ์•„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
Ajax๋ฅผ ์ด์šฉํ•˜์—ฌ DB์™€์˜ ๋น„๋™๊ธฐ ํ†ต์‹ ์œผ๋กœ ๊ตฌํ˜„

updatepassword / updateprofile.html

ํšŒ์› ์ •๋ณด ์ˆ˜์ • ํŽ˜์ด์ง€

๋‹‰๋„ค์ž„, ์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ

writereview.html

๋ฆฌ๋ทฐ ์ž‘์„ฑ ํŽ˜์ด์ง€

์‹๋‹น์— ๋Œ€ํ•œ ๋ฆฌ๋ทฐ์™€ ๋ณ„์ , ์ด๋ฏธ์ง€๋ฅผ multipart๋กœ ์ „์†ก
๋กœ๊ทธ์ธ ๋˜์–ด์žˆ๋Š” ์ƒํƒœ์—์„œ๋งŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„
๋กœ๊ทธ์ธ ์ƒํƒœ๊ฐ€ ์•„๋‹ ๊ฒฝ์šฐ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ์œ ๋„

searchresult / 2 / 3.html

๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ํŽ˜์ด์ง€

๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ๋ฅผ ์‹๋‹น / ์Œ์‹ ์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ ์šฉํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๋“œ๋กญ๋ฐ•์Šค์—์„œ ์„ ํƒ.


8. ํ˜‘์—…๋ฐฉ์‹

๐Ÿ’ก ์ „์ฒด์ ์ธ ์ฝ”๋“œ ๊ด€๋ฆฌ GitHub, ์‹ค์‹œ๊ฐ„ ์ด์Šˆ & ์ฝ”๋“œ๋ฆฌ๋ทฐ Slack , ์ง„ํ–‰์ƒํ™ฉ & ์Šค์ผ€์ฅด ๊ด€๋ฆฌ Notion


  • GitHub (private repository)

20210911112007


  • Slack

20210911111313


  • Notion

20210911111633

About

๐Ÿต ์„œ์šธํŠน๋ณ„์‹œ ์ฑ„์‹ ์‹๋‹น ๊ฐ€์ด๋“œ Happve(Happy Vegan)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0