Skip to content

jinhuyk/semasicencedata-portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

18 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

์„ธ๋งˆ๊ณ ๋“ฑํ•™๊ต ๋ฌผํ’ˆ๊ด€๋ฆฌ ์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ

๋ชฉ์ฐจ

ํ”„๋กœ์ ํŠธ ์ œ๋ชฉ

์„ธ๋งˆ๊ณ ๋“ฑํ•™๊ต ๋ฌผํ’ˆ๊ด€๋ฆฌ ์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ

๊ธฐํš ๋ฐ ๊ฐœ๋ฐœ

๋ฌธ์ง„ํ˜ (๊ธฐํš, ๊ฐœ๋ฐœ)

์ œ์ž‘ ๊ธฐ๊ฐ„

2022.03.05 ~ 2022.03.19

์‚ฌ์šฉ ๊ธฐ์ˆ 

  • Front-End: Ejs , Css , Bootstrap
  • Back-End: Node-Js, Express, MongoDB

๋ฐฐํฌ

์„ธ๋งˆ๊ณ  ๊ณผํ•™์‹ค ๋ฌผํ’ˆ๊ณผํ•™์‚ฌ์ดํŠธ

CloudTYPE ์—์„œ ๋ฐฐํฌํ•˜์˜€์Œ.

์ˆ˜์ •์‚ฌํ•ญ

Fixed(2022.12.30)

์ถ”ํ›„ ์˜ˆ์ •

  • ~~REST.API ์— ์˜๊ฑฐํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • ๋น ๋ฅธ ์ ‘์†์„ ์œ„ํ•ด WebView ์•ฑ ์ œ์ž‘ ์˜ˆ์ • ๋ฐ ํ”Œ๋ ˆ์ด์Šคํ† ์–ด์— ๋ฐฐํฌ ์˜ˆ์ •

ํ”„๋กœ์ ํŠธ ๊ธฐํš ๋ฐฐ๊ฒฝ

2020๋…„ ๊ณ ๋“ฑํ•™๊ต ์†Œ์† ๋™์•„๋ฆฌ(SEDA) ์—์„œ ๊ณผํ•™์‹ค ๋ฌผํ’ˆ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ, ๊ณผํ•™์‹ค์˜ ๋ฌผํ’ˆ๋“ค์„ ๋ฐ์ดํ„ฐ๋กœ ์ €์žฅ ํ•œ ํ›„์— ์ด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•œ ์ ์ด ์žˆ์Œ.

  • 2019๋…„ - ๋ฌผํ’ˆ์— ๋Œ€ํ•œ RFID์นด๋“œ๋ฅผ ์ œ์ž‘, node-mcu ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฆฌ๋”๊ธฐ์— ๋ฌผํ’ˆ ์นด๋“œ๋ฅผ ๋Œ€๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ œ์ž‘
  • 2020๋…„ - HTML์„ ์ด์šฉํ•˜์—ฌ ๋ฌผํ’ˆ์— ๋Œ€ํ•œ ํŽ˜์ด์ง€๋ฅผ ๊ณ„์† ์ž‘์„ฑ, QR์ฝ”๋“œ์™€ ๋งค์น˜๋ฅผ ์‹œํ‚จ ํ›„ ํ•ด๋‹น QR์„ ์ฐ์œผ๋ฉด ๋ฌผํ’ˆ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์›นํŽ˜์ด์ง€ ์ œ์ž‘.

ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ์˜ ๋ฌธ์ œ

  • ์ถ”๊ฐ€๋กœ ๋ฌผํ’ˆ์— ๋Œ€ํ•œ ํŽ˜์ด์ง€ ์ƒ์‚ฐ ๋ถˆ๊ฐ€ (์ง์ ‘ Html ํŒŒ์ผ์„ ์ œ์ž‘ํ•ด์•ผ ํ•จ)
  • ๋ฌผํ’ˆ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ƒ๊ธธ ๊ฒฝ์šฐ, ์ง์ ‘ Html์„ ์ˆ˜์ •ํ•ด์•ผ ํ•จ
  • QR์ฝ”๋“œ๋กœ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜์—ฌ, ๊ณผํ•™์‹ค์ด ์™ธ์—์„œ ํ•ด๋‹น ์ •๋ณด๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅ
  • ๋ฌผํ’ˆ์— ๋Œ€ํ•œ RFID์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ์‚ฌ์šฉ ์ค‘์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Œ
  • ๊ณ„์†ํ•ด์„œ ๋ฌผํ’ˆ์ด ๋Š˜์–ด๋‚  ๋•Œ๋งˆ๋‹ค RFID์นด๋“œ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•จ
  • ๊ธฐ๋ณธ์ ์ธ HTML๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งค์šฐ ๋ณด๊ธฐ ๋ถˆํŽธํ•œ ์›น ํŽ˜์ด์ง€

์ด์— ๋Œ€ํ•œ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋กœ ์„ ์ •ํ•จ.

๊ตฌํ˜„ ๊ธฐ๋Šฅ

ํ•ด๋‹น github ํŽ˜์ด์ง€ ๋‚ด sourceCode ์—์„œ ์ฝ”๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Œ

โ€ปํ•ด๋‹น sourceCode๋กœ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์šด์˜์‹œํ‚ฌ ์ˆ˜ ์—†์Œ(DB_URL ์ œ๊ฑฐ ๋ฐ ์ผ๋ถ€ private์ฝ”๋“œ ์ œ๊ฑฐ)

  • resources ์ด๋ฏธ์ง€ ํด๋”
  • routes ๋ฒก์—”๋“œ ์ฝ”๋“œ ํด๋”
  • styles css ์ฝ”๋“œ ํด๋”
  • views ejs ์ฝ”๋“œ ํด๋”

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„

์„ธ๋งˆ๊ณ ๋“ฑํ•™๊ต ๋ฌผํ’ˆ๊ด€๋ฆฌํ”„๋กœ์ ํŠธ (1).png

API ๋ช…์„ธ์„œ

Fixed(2022.12.30) ์ฐธ๊ณ 

๊ธฐ๋Šฅ ์„ค๋ช…

  • ๋ฉ”์ธํŽ˜์ด์ง€

    Untitled

    ๋ฌผํ’ˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์™€ ๋ฉ”์ธํŽ˜์ด์ง€์— ์ถœ๋ ฅ

  • ๋ฌผํ’ˆ ์ถ”๊ฐ€

    Untitled

  • ๋ฌผํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€

    • ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ด ์—†์„ ๊ฒฝ์šฐ

      Untitled

    • ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋Š” ๊ฒฝ์šฐ - ์ฃผํ™ฉ์ƒ‰ ์ฐฝ์œผ๋กœ ํ…Œ๋‘๋ฆฌ ๋ณ€๊ฒฝ

      Untitled

    • ๋ฌผํ’ˆ์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ - ๋นจ๊ฐ„์ƒ‰ ์ฐฝ์œผ๋กœ ํ…Œ๋‘๋ฆฌ ๋ณ€๊ฒฝ

      Untitled

      • ๋ฌผํ’ˆ ์‚ฌ์šฉ ๊ธˆ์ง€์— ๋Œ€ํ•œ ์•Œ๋ฆผ์ฐฝ ์ƒ์„ฑ
  • ๋ฌผํ’ˆ ์‚ฌ์šฉ์ž ๋ช…๋‹จ ํŽ˜์ด์ง€

    Untitled

    • ๊ต์‹ค๋ณ„๋กœ ๊ฐ ๋ฌผํ’ˆ๋งˆ๋‹ค ์•„์ด์ฝ˜์œผ๋กœ ๋‚˜ํƒ€๋ƒ„
    • ๋น ๋ฅธ ์‚ฌ์šฉ์™„๋ฃŒ ๋ฒ„ํŠผ ์ถ”๊ฐ€
    • ํ˜„์žฌ ์‚ฌ์šฉํ•˜๋Š” ์ „์ฒด์ธ์› ์กฐํšŒ
  • ๊ต์‹ค๋ณ„ ๋ฌผํ’ˆ ํŽ˜์ด์ง€

    • ๋‰ดํ„ด์‹ค

    Untitled

    ๋‹ค์œˆ์‹ค

    Untitled

    ์ผ€ํ”Œ๋Ÿฌ์‹ค

    Untitled

  • ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

    • QR์ฝ”๋“œ ์ƒ์„ฑ์„ ๋ˆŒ๋ €์„ ๊ฒฝ์šฐ (๊ธฐ๋Šฅ)

      Untitled

    • ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ

      Untitled

Fixed. (2022.12.30)

  • REST API ์— ๋งž๊ฒŒ URL ๋ณ€๊ฒฝ
  • ์„ธ๋ถ€์‚ฌํ•ญ ์ˆ˜์ •

API ๋ช…์„ธ์„œ ์—…๋ฐ์ดํŠธ

  • ๋ฌผํ’ˆ ๊ณต์ง€์‚ฌํ•ญ ์ „์ฒด ์กฐํšŒ
    • GET /

๋ฌผํ’ˆ

  • ๊ต์‹ค๋ณ„ ๋ฌผํ’ˆ ์กฐํšŒ
    • ๋‰ดํ„ด์‹ค - GET /newton
    • ํ€ด๋ฆฌ์‹ค - GET /curie
    • ๋‹ค์œˆ์‹ค - GET /dawrin
    • ์ผ€ํ’€๋Ÿฌ์‹ค - GET /kepler
    • ๋ฆฌ์†Œ์Šค์‹ค - GET /resource
  • ๋ฌผํ’ˆ ๊ฒ€์ƒ‰ ์กฐํšŒ
    • GET /search
  • ๋ฌผํ’ˆ ์ƒ์„ธ ์กฐํšŒ
    • GET /items/{id}
  • ๋ฌผํ’ˆ ์ถ”๊ฐ€ ์š”์ฒญ
    • GET /items
    • POST /items
  • ๋ฌผํ’ˆ ์ˆ˜์ • ์š”์ฒญ
    • GET /edit/{id}
    • POST /edit-items
  • ๋ฌผํ’ˆ ์‚ญ์ œ
    • DELETE /items

์‚ฌ์šฉ์ž

  • ์‚ฌ์šฉ์ž ์กฐํšŒ
    • GET /members
  • ์‚ฌ์šฉ์ž ์ถ”๊ฐ€ ์š”์ฒญ
    • POST /members
  • ์‚ฌ์šฉ์ž ์‚ญ์ œ ์š”์ฒญ
    • DELETE /members

๊ณต์ง€์‚ฌํ•ญ ์ถ”๊ฐ€

  • ๊ณต์ง€์‚ฌํ•ญ ์ถ”๊ฐ€ ์š”์ฒญ
    • GET /notices
    • POST /items
  • ๊ณต์ง€์‚ฌํ•ญ ์ˆ˜์ • ์š”์ฒญ
    • GET /edit/{id}
    • POST /edit-notice
  • ๊ณต์ง€์‚ฌํ•ญ ์‚ญ์ œ ์š”์ฒญ
    • DELETE /items

์ตœ๋Œ€ํ•œ REST API ์— ๋งž๊ฒŒ ์ž‘์„ฑ ํ•˜์ง€๋งŒ edit ๊ด€๋ จ ๋ถ€๋ถ„์€ ์ฒ˜์Œ ์„ค๊ณ„ ์‹คํŒจ๋กœ ์ˆ˜์ • ๋ถˆ๊ฐ€๋Šฅ

ํšŒ๊ณ 

์ด ํ”„๋กœ์ ํŠธ๋Š” ์ฒ˜์Œ์œผ๋กœ ์„ค๊ณ„๋ถ€ํ„ฐ ๋ฐฐํฌ๊นŒ์ง€ ์ง์ ‘ ํ•ด๋ณธ ํ”„๋กœ์ ํŠธ์ด๋‹ค. ํ•œ ๋‹ฌ ์ „์— Node.js+Express ๋ฅผ ๋ฐฐ์šฐ๊ณ , MongoDB๋ฅผ ํ†ตํ•˜์—ฌ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์ œ์ž‘ํ•ด๋ณธ์ ์ด ์žˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•œ๋ฒˆ ์ œ์ž‘์„ ํ•ด๋ณด์•˜๋Š”๋ฐ ์ง์ ‘ ๋ฒก์—”๋“œ์™€ ํ”„๋ก ํŠธ์—”๋“œ ๋‘๊ฐ€์ง€๋ฅผ ์žก์•„๋ณด๋ ค ํ•˜๋‹ค๋ณด๋‹ˆ ์–ด๋ ค์›€์ด ์กฐ๊ธˆ ๋งŽ์ด ์žˆ์—ˆ๋‹ค. ํŠนํžˆ ๋ฒก์—”๋“œ ์ž‘์—…์„ ํ• ๋•Œ, ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ Ajax๋กœ ๋ฐ›์•„์„œ ์š”์ฒญํ•ด์•ผํ•˜๋Š”๋ฐ ์š”์ฒญ์„ ๋ฐ›์ง€ ๋ชปํ•œ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ์ผ์ด๋‚˜, ์›ํ•˜๋Š” ๋Œ€๋กœ ์›น ํ™”๋ฉด์ด ์ž˜ ๋ณด์ด์ง€ ์•Š๋Š” ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ๋“ค์ด ์žˆ์—ˆ๋‹ค. ๋˜ํ•œ REST.API์— ๋งž์ถ”์–ด ์„œ๋ฒ„ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ๋„ ๋งŽ์ด ์–ด๋ ค์› ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ API๋ฅผ ๊ณ„ํšํ•˜๊ณ  ํ–ˆ์–ด์•ผํ•˜๋Š”๋ฐ ๊ฑฐ์˜ ๋ง‰ ์ œ์ž‘ํ•˜๋‹ค๋ณด๋‹ˆ, ์˜ค๋ฅ˜๊ฐ€ ๋งŽ์ด ์žˆ์—ˆ๋‹ค. ์„œ๋ฒ„ ๋ฐฐํฌํ•  ๋•Œ์—๋„ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ฒ˜์Œ ์„œ๋ฒ„๋Š” Heroku๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌด๋ฃŒ๋กœํ˜ธ์ŠคํŒ…์„ ํ–ˆ๋Š”๋ฐ, ์–ด๋Š์ˆœ๊ฐ„๋ถ€ํ„ฐ ๋ฌด๋ฃŒํ˜ธ์ŠคํŒ… ๊ธฐ๋Šฅ์ด ์‚ฌ๋ผ์ ธ ์ƒˆ๋กœ์šด ํ˜ธ์ŠคํŒ… ์‚ฌ์ดํŠธ๋ฅผ ์ฐพ๋Š๋ผ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ๋Š” ๋‚˜์˜ ๋ง˜์—๋Š” ๋“œ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋‚˜์ค‘์— ๋„๋ฉ”์ธ๋„ ์ง์ ‘ ๊ตฌ์ž…ํ•˜์—ฌ ๋ฐ”๊ฟ”์ค€๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ• ๋•Œ๋ถ€ํ„ฐ๋Š” ๊ธฐํš์„ ์•„์ฃผ ์ค‘์š”ํ•˜๊ฒŒ ํ•˜๊ณ , ๊ฐœ๋ฐœ์„ ํ•ด์•ผํ•  ๊ฒƒ๊ฐ™๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ˜‘์—…์ด ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•œ์ง€ ๊นจ๋‹ฌ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ง์ ‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜์—ฌ ์›น์„ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๊ธฐํšŒ๊ฐ€ ๋˜์—ˆ๋‹ค.