๋กœ๊ทธ์ธ ํ›„ ๋ฉ”์ธํŽ˜์ด์ง€

 

ํ”„๋กœ์ ํŠธ: Social Study Network (SSN: ์“ด)    *ํ”„๋ก ํŠธ์—”๋“œ์™€ ์ฒซ ํ˜‘์—…ํ”„๋กœ์ ํŠธ

์„ค๋ช…: ํŒ€์›๋“ค, ํ•™๊ต์นœ๊ตฌ๋“ค๊ณผ ๊ณต๋ถ€์‹œ๊ฐ„์„ ๊ณต์œ ํ•˜๋ฉฐ ์‘์›ํ•  ์ˆ˜ ์žˆ๋Š” ์†Œ์…œ๋„คํŠธ์›Œํฌ ์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค.

์ œ์ž‘: 2022.04.08~2022.04.14

 

์‹œ์—ฐ์˜์ƒ: https://youtu.be/ZAMqhx5jCNU

๊นƒํ—ˆ๋ธŒ: https://github.com/ymkwon3/ssn (ํ”„๋ก ํŠธ์—”๋“œ) / https://github.com/moonhjang/miniproject_back (๋ฐฑ์—”๋“œ)

๋…ธ์…˜: https://www.notion.so/d556601ee2de4629a9a1947675f23dd6

 

 

 


์™€์ด์–ดํ”„๋ ˆ์ž„

 

 


์‚ฌ์šฉ ๊ธฐ์ˆ 
  • Server: AWS EC2 (Ubuntu 18.04 LTS)
  • Framework: Express (Node.js)
  • Database: MongoDB (Mongoose)
  • JWT (Json Web Token)
  • Crypto-js
  • CORS
  • Front-end: React

 


ํ•ต์‹ฌ ๊ธฐ๋Šฅ
  • ๋กœ๊ทธ์ธ/ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€
    • ์•„์ด๋”” ํŒจ์“ฐ์›๋“œ ์ž…๋ ฅ ๊ฐ€๋Šฅ
    • ๋กœ๊ทธ์ธ ์‹œ, ํ† ํฐ์ „๋‹ฌ (๋ชจ๋“ ํŽ˜์ด์ง€์—์„œ ํ•ด๋‹น ํ† ํฐํ™•์ธ ๊ธฐ๋Šฅ)
    • ๋นˆ์นธ ๋ฐ ์•„์ด๋”” ํ˜•์‹(4์ž์ด์ƒ, ๋Œ€์†Œ๋ฌธ์ž, ์ˆซ์ž, ํŠน์ˆ˜๋ฌธ์ž(!@#"-_)) ํ™•์ธ ๊ฐ€๋Šฅ
    • ํšŒ์›๊ฐ€์ž…์‹œ ์•„์ด๋””/๋‹‰๋„ค์ž„ ์ค‘๋ณต๊ฒ€์‚ฌ
    • ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌํ™•์ธ ์ผ์น˜ ํ™•์ธ ๊ฐ€๋Šฅ
  • ๋ฉ”์ธํŽ˜์ด์ง€
    • ํ•ด๋‹น ์œ ์ €์™€ ์นœ๊ตฌ๋ฆฌ์ŠคํŠธ ์กฐํšŒ
    • ๊ณต๋ถ€์‹œ๊ฐ„ ์‹œ์ž‘/์ •์ง€ ๋ฒ„ํŠผ
    • ์ด ๊ณต๋ถ€์‹œ๊ฐ„ ์กฐํšŒ๊ฐ€๋Šฅ
    • ์นœ๊ตฌ ์ถ”๊ฐ€๊ฐ€๋Šฅ
    • ์นœ๊ตฌ์™€ ๊ณต๋ถ€์‹œ๊ฐ„ ์ˆœ์œ„ ํ™•์ธ๊ฐ€๋Šฅ
    • ์นœ๊ตฌ์˜ ๊ณต๋ถ€์‹œ๊ฐ„ ๋ฐ ์ ‘์† ํ™•์ธ ๊ฐ€๋Šฅ
  • ๋ฐฉ๋ช…๋ก ํŽ˜์ด์ง€
    • ๋“ฑ๋ก๋œ ์นœ๊ตฌ ๋ฐฉ๋ช…๋ก์— ์ฝ”๋ฉ˜ํŠธ ์กฐํšŒ, ์ž‘์„ฑ ๊ฐ€๋Šฅ
    • ๋ฐฉ๋ช…๋ก ์ฃผ์ธ๊ณผ ๋ฐฉ๋ช…๋ก ์ž‘์„ฑ์ž๋งŒ ์‚ญ์ œ ๊ฐ€๋Šฅ
    • ๋ณธ์ธ ๋ฐฉ๋ช…๋ก ํŽ˜์ด์ง€์—์„œ๋Š” ์ƒํƒœ๋ฉ”์„ธ์ง€ ์ˆ˜์ • ๊ฐ€๋Šฅ

 


Trouble Shooting   

โ–ถ Auth-Middleware์— ๋Œ€ํ•ด ํ”„๋ก ํŠธ ์—…๋ฌด์— ๋Œ€ํ•œ ์ดํ•ด๋ถ€์กฑํ–ˆ๋‹ค.

→ ๊ฐœ์ธํ”„๋กœ์ ํŠธ ์ง„ํ–‰์‹œ, ๋กœ๊ทธ์ธ ์‹คํ–‰์‹œ ๋กœ๊ทธ์ธ์ธ์ฆ ํ™•์ธAPI๋„ ํ•จ๊ป˜ ํ™•์ธ๋˜์—ˆ๋‹ค. ๊ทธ๋•Œ, ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์œ ์ € ์ •๋ณด๋ฅผ ๋„ฃ์–ด๋‘์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋ก ํŠธ์—์„œ ๋กœ๊ทธ์ธ์ธ์ฆ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋”ฐ๋กœ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ตณ์ด ํ•„์š”์—†์–ด ์ œ์™ธ๋ฅผ ํ–ˆ๋‹ค. ์ €์žฅ๋œ ํ† ํฐ์œผ๋กœ ๋ชจ๋“ ํŽ˜์ด์ง€์˜ ๋กœ๊ทธ์ธ ์ธ์ฆํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋™์ผํ•˜์—ฌ ๋ฌธ์ œ์—†์ด ์ž‘๋™๋˜์—ˆ๋‹ค. 

 

โ–ถ ๋กœ์ปฌ์— ์žˆ๋Š” MongoDB๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ–ˆ์ง€๋งŒ, ๋กœ์ปฌDB์˜ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ ๋ฐฐํฌ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค. 

→ ๋กœ์ปฌDB๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  MongoDBํด๋ผ์šฐ๋“œ์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜์—ฌ ์‹คํ–‰ํ•˜์˜€๋‹ค. 

 

โ–ถ _id๋ฅผ commentid ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด์„œ, _id๋ฅผ ๋ฐฑ์—”๋“œ์—์„œ object์—์„œ string์œผ๋กœ ๊ฐ์ฒด type์„ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๋Š” ์ ์—์„œ ์–ด๋ ค์› ๋‹ค.

→ Comment ์Šคํ‚ค๋งˆ์—์„œ _id๋ฅผ commentid๋กœ ๋งŒ๋“ค์–ด string์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ „๋‹ฌํ•˜์˜€๋‹ค. 

 

 


๊ฐœ์ธํšŒ๊ณ 

์ฒซ ํ”„๋ก ํŠธ์—”๋“œ์™€์˜ ํ˜‘๋ ฅํ”„๋กœ์ ํŠธ์˜€๋‹ค. ํ”„๋ก ํŠธ์—…๋ฌด์— ๋Œ€ํ•œ ์ง€์‹์ด ๋ถ€์กฑํ–ˆ๊ธฐ์— ํ‘œํ˜„๋ฐฉ์‹๊ณผ ์ดํ•ดํ•˜๋Š” ๋ฐฉ์‹์ด ๊ต‰์žฅํžˆ ๋‹ฌ๋ž๋‹ค. ํ”„๋กœ์ ํŠธ ์ค‘๋ฐ˜๋ถ€ํ„ฐ๋Š” ์„œ๋กœ์˜ ์—…๋ฌด๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋‚˜๋‹ˆ ์ƒ๊ฐ๋ณด๋‹ค ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฌธ์ œ์—†์ด ํ’€๋ ธ๋‹ค. 

 

๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์‹œ์—๋Š” ๋‚ด ์ž‘์—…์„ ์›น์‚ฌ์ดํŠธ์—์„œ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ํŽธํ–ˆ๋Š”๋ฐ, ํ˜‘๋ ฅํ•  ๋•Œ๋Š” ํ™•์ธํ•  ์ˆ˜ ์—†๋Š” ๋ทฐ๊ฐ€ ์—†์–ด์„œ ๋ถˆํŽธํ–ˆ๋‹ค. ์ฌ๋” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ทธ ์—ญํ• ์„ ๋Œ€์‹ ํ–ˆ์ง€๋งŒ, ํšŒ์›๊ฐ€์ž…์ด๋‚˜ ๋กœ๊ทธ์ธ ์‹œ ์ „๋‹ฌ๋˜๋Š” ์ •๋ณด๋ฅผ ์ง์ ‘์ž‘์„ฑํ•ด์•ผํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์› ์ง€๋งŒ ์ž˜ ์ ์‘ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํŠนํžˆ, ๋ชจ๋“ ํŽ˜์ด์ง€๋ฅผ auth-middleware๋กœ ์—ฐ๊ฒฐ ํ›„์—๋Š” ํ† ํฐ์ด ์—†๊ธฐ์— ์ฌ๋” ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์—ˆ๋‹ค. (์ดํ›„ ์•Œ์•„๋ณด๋‹ˆ, ํ—ค๋”์— ํ† ํฐ์„ ๋„ฃ์–ด ํ™•์ธํ•ด๋ณผ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค.) 

 

ํ˜‘๋ ฅํ–ˆ๋˜ ํ”„๋ก ํŠธ ๋ถ„์ด ๊ต‰์žฅํžˆ ์ž˜ํ•˜์‹œ๋˜ ๋ถ„์ด๋ผ, ๋ฐด์—”๋“œ๋กœ์„œ ๊ต‰์žฅํžˆ ๋„์›€๋„ ๋งŽ์ด ๋ฐ›์•˜๊ณ  ์ˆ˜์›”ํ•˜๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์‹œ, ์—ผ๋ คํ–ˆ๋˜ CORS ์ด์Šˆ๋‚˜ auth-middleware(์ธ์ฆ๋ฏธ๋“ค์›จ์–ด)์— ๋Œ€ํ•œ ์ด์Šˆ๋Š” ๊ฑฐ์˜ ์—†์—ˆ๋‹ค. ๋ฐฐํฌ ์ดˆ๋ฐ˜, ์ธ์ฆ ๋ฏธ๋“ค์›จ์–ด์— ๋Œ€ํ•œ ์•ฝ๊ฐ„์˜ ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ์œผ๋‚˜ ์ฝ˜์†”์ฐ์œผ๋ฉด์„œ ์ „๋‹ฌํ•˜๊ณ  ์ „๋‹ฌ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๋‹ˆ ํฐ ์ด์Šˆ์—†์ด ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

 

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

+ Recent posts