2 minute read

๐Ÿ’ป ๋ฐฑ์—”๋“œ ์ฝ”๋“œ ๊ตฌํ˜„ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

ํ˜„๋Œ€ ์‚ฌํšŒ์—์„œ ๋ฐ˜๋ ค์‹๋ฌผ์€ ์‹ค๋‚ด ๊ณต๊ธฐ ์งˆ์„ ๊ฐœ์„ ํ•˜๊ณ  ์‹ฌ๋ฆฌ์  ์•ˆ์ •๊ฐ์„ ์ฃผ๋Š” ๋“ฑ์˜ ํšจ๊ณผ๋กœ ์ธ๊ธฐ๋ฅผ ์–ป๊ณ  ์žˆ๋‹ค. ์‹๋ฌผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์€ ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ๋ฐ˜๋ ค์‹๋ฌผ์„ ๋Œ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ๋ฐ˜๋ ค์‹๋ฌผ ๊ด€๋ฆฌ์— ์ ์šฉ๋˜๋Š” ๊ธฐ์ˆ ์„ ์ฒด๊ณ„์ ์œผ๋กœ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹๋ฌผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜์—ฌ ์‹๋ฌผ ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์‚ฌ์ดํŠธ๋ฅผ ์ œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ด ํ”„๋กœ์ ํŠธ์˜ ๋ชฉํ‘œ์ด๋‹ค.


ํ”„๋กœ์ ํŠธ ๊ฐœ์š”
๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ 2025.01 ~ 2025.02 (2๊ฐœ์›”)
ํ”Œ๋žซํผ Web
๊ฐœ๋ฐœ ์ธ์› 3๋ช… (๋ฐฑ์—”๋“œ2 / ํ”„๋ก ํŠธ์—”๋“œ1)
๋‹ด๋‹น ์—ญํ•  - ๋ฐฑ์—”๋“œ โ€ข ๋กœ๊ทธ์ธ ๋ฐ ํšŒ์› ๊ด€๋ฆฌ (๊ธฐ์—ฌ๋„ 100%)
โ€ข ๋งˆ์ดํŽ˜์ด์ง€ ์›น์„œ๋ฒ„ ๊ตฌํ˜„ (๊ธฐ์—ฌ๋„ 100%)
โ€ข ์„œ๋น„์Šค ๊ธฐํš ๋ฐ ๋ฐฉํ–ฅ์„ฑ ์„ค์ • (๊ธฐ์—ฌ๋„ 80%)
๐Ÿ”’๊ฐœ๋ฐœ ํ™˜๊ฒฝ
์–ธ์–ด JavaScript (ES6+)
์„œ๋ฒ„ Node.js (v16+)
ํ”„๋ ˆ์ž„์›Œํฌ Express.js
DB SQLite (๊ฐ ํŒŒ์ผ ๊ธฐ๋ฐ˜ DB)
IDE Visual Studio Code
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ cors, express-session, sqlite3, pug

API ๋ช…์„ธ์„œ

๐Ÿ“ API ๋ช…์„ธ์„œ
์„น์…˜ Method URL ๊ธฐ๋Šฅ/์„ค๋ช…
๋กœ๊ทธ์ธ GET / ๊ธฐ๋ณธ ๋กœ๊ทธ์ธ ํ™”๋ฉด
๋กœ๊ทธ์ธ POST /signup ํšŒ์›๊ฐ€์ž…
๋กœ๊ทธ์ธ POST /login ์•„์ด๋””,๋น„๋ฒˆ ์ž…๋ ฅ
๋กœ๊ทธ์ธ POST /IDfind ์•„์ด๋”” ์ฐพ๊ธฐ
๋กœ๊ทธ์ธ POST /pwfind ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ
๋งˆ์ดํŽ˜์ด์ง€ GET /mypage ๊ธฐ๋ณธ ์ •๋ณด ์กฐํšŒ/๋ฉ”์ธ ํ™”๋ฉด
๋งˆ์ดํŽ˜์ด์ง€ GET /diary ๋‚ด๊ฐ€ ์“ด ๊ธ€ ๋ชฉ๋ก ์กฐํšŒ
๋งˆ์ดํŽ˜์ด์ง€ GET /diary/:id ๋‚ด๊ฐ€ ์“ด ํŠน์ • ๊ธ€ ์ƒ์„ธ ์กฐํšŒ
๋งˆ์ดํŽ˜์ด์ง€ GET /scraps ์Šคํฌ๋žฉํ•œ ๊ธ€ ๋ชฉ๋ก ์กฐํšŒ
๋งˆ์ดํŽ˜์ด์ง€ GET /scraps/:id ์Šคํฌ๋žฉํ•œ ๊ธ€ ์ƒ์„ธ ์กฐํšŒ
๋งˆ์ดํŽ˜์ด์ง€ GET /comment ๋‚ด๊ฐ€ ์“ด ๋Œ“๊ธ€ ๋ชฉ๋ก ์กฐํšŒ
๋งˆ์ดํŽ˜์ด์ง€ GET /comment/:id ๋‚ด๊ฐ€ ์“ด ๋Œ“๊ธ€ ์ƒ์„ธ ์กฐํšŒ
๋งˆ์ดํŽ˜์ด์ง€ POST /write ๊ธ€ ์ž‘์„ฑ
๐ŸŒ ์ปค๋ฎค๋‹ˆํ‹ฐ API ๋ช…์„ธ์„œ
์„น์…˜ Method URL ๊ธฐ๋Šฅ/์„ค๋ช…
ํ™ˆํŽ˜์ด์ง€ GET /plantowner ๋ฉ”์ธ ํŽ˜์ด์ง€
์ปค๋ฎค๋‹ˆํ‹ฐ GET /plantowner/community/:boardId ์ž์œ ๊ฒŒ์‹œํŒ์œผ๋กœ ์ด๋™
์ปค๋ฎค๋‹ˆํ‹ฐ GET /plantowner/community/:boardId/board?page=:n ํŽ˜์ด์ง€ ์ด๋™
์ปค๋ฎค๋‹ˆํ‹ฐ GET /plantowner/community/:boardId/:postId ๊ฒŒ์‹œ๊ธ€ ์—ด๋žŒ
์ปค๋ฎค๋‹ˆํ‹ฐ GET /plantowner/community/serch?query=:keyword ๊ฒŒ์‹œ๊ธ€ ๊ฒ€์ƒ‰
์ปค๋ฎค๋‹ˆํ‹ฐ GET /plantowner/community/post/draft/:draftId ์ž„์‹œ ์ €์žฅ๊ธ€ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
์ปค๋ฎค๋‹ˆํ‹ฐ POST /plantowner/community/:boardId/write ์ƒˆ ๊ธ€ ์ž‘์„ฑ
์ปค๋ฎค๋‹ˆํ‹ฐ POST /plantowner/community/:boardId/:postId/scrap ์Šคํฌ๋žฉ ์ €์žฅ/์‚ญ์ œ
์ปค๋ฎค๋‹ˆํ‹ฐ PUT /plantowner/community/edit/:postId ๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ •
์ปค๋ฎค๋‹ˆํ‹ฐ PUT /plantowner/community/post/draft/:draftId ์ž„์‹œ ์ €์žฅ๊ธ€ ์ €์žฅ
์ปค๋ฎค๋‹ˆํ‹ฐ DELETE /plantowner/community/post/:postId ๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ
์ปค๋ฎค๋‹ˆํ‹ฐ DELETE /plantowner/community/:boardId/:postId/comment/:commentId ๋Œ“๊ธ€ ์‚ญ์ œ

๐ŸŒฟ ์‹์ง‘์‚ฌ๋“ค ํŽ˜์ด์ง€๋ณ„ ๊ธฐ๋Šฅ ๋ถ„์„




์›น ํŽ˜์ด์ง€ ๋””์ž์ธ ๊ธฐํš

ํ™ˆํŽ˜์ด์ง€

์ฑ—๋ด‡ ๋‹จ์–ด๋ฅผ ํด๋ฆญํ•˜๋ฉด ์‹๋ฌผ ์งˆ๋ณ‘ ์ง„๋‹จ ์ฑ—๋ด‡์œผ๋กœ ์ด์–ด์ง€๋ฉฐ, ํ˜„์žฌ ๊ธฐ๋ถ„์— ํ•ด๋‹นํ•˜๋Š” ๋‹จ์–ด๋ฅผ ํด๋ฆญํ•˜๋ฉด ์‹๋ฌผ๊ณผ์˜ ๋Œ€ํ™” ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค.



๋กœ๊ทธ์ธ / ํšŒ์›๊ฐ€์ž… / ๋น„๋ฐ€๋ฒˆํ˜ธ & ์•„์ด๋”” ์ฐพ๊ธฐ


์ปค๋ฎค๋‹ˆํ‹ฐ

์ถ”์ฒœ๊ธ€: ๊ธ€์„ ์˜ฌ๋ฆฐ ์‹œ์ ๋ถ€ํ„ฐ ์ผ์ฃผ์ผ ๊ฐ„ ์ถ”์ฒœ๊ธ€ ํ›„๋ณด์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

๊ณต๊ฐ 5๊ฐœ ์ด์ƒ์ด๋ฉด ์ถ”์ฒœ๊ธ€์— ๋“ฑ๋ก

  • ์ตœ๋Œ€ 3๊ฐœ ๊ธ€๋งŒ ์ถ”์ฒœ ๊ธ€
  • ๋” ๋†’์€ ๊ณต๊ฐ ์ˆ˜๊ฐ€ ์ถ”์ฒœ๊ธ€์— ๋“ฑ๋ก๋˜๋ฉด ๊ฐฑ์‹ 
  • ๋™์ผํ•˜๋‹ค๋ฉด ๋” ์ตœ์‹  ๊ธ€๋กœ ๊ฐฑ์‹ 
  • ์ถ”์ฒœ๊ธ€์— ์ตœ์žฅ 3์ผ๊ฐ„๋งŒ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

๊ธ€ ๋ณด๊ธฐ

๊ธ€์“ด์ด์ผ ๊ฒฝ์šฐ ์ˆ˜์ •๊ณผ ์‚ญ์ œ ๋ฒ„ํŠผ์ด ์ถ”๊ฐ€๋กœ ๋ณด์ด๋ฉฐ, ๋Œ“๊ธ€ ์ž‘์„ฑ์ž์ผ ๊ฒฝ์šฐ ์ž์‹ ์ด ์“ด ๋Œ“๊ธ€์—๋งŒ ์‚ญ์ œ ๋ฒ„ํŠผ์ด ๋ณด์ธ๋‹ค.
๊ณต๊ฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํ•˜ํŠธ๊ฐ€ ๋ถ‰๊ฒŒ ์น ํ•ด์ง€๊ณ  ๊ณต๊ฐ ์ˆ˜๊ฐ€ 1 ์˜ฌ๋ผ๊ฐ„๋‹ค.
๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ˆ„๋ฅด๋ฉด ์ตœ์†Œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
๊ณต์œ  ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ๊ธ€์˜ ๋งํฌ๊ฐ€ ๋ณต์‚ฌ๋œ๋‹ค.
๋Œ“๊ธ€์„ ์“ฐ๊ณ  โ€œ๋Œ“๊ธ€ ์“ฐ๊ธฐโ€ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์“ด ๋Œ“๊ธ€์ด ์ถ”๊ฐ€๋œ๋‹ค.
์ด์ „๊ณผ ๋‹ค์Œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ๊ธ€ ๋ฒˆํ˜ธ -1, ๋ฒˆํ˜ธ +1์˜ ๊ธ€๋กœ ์ด๋™ํ•œ๋‹ค.
์‹ ๊ณ ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋ธŒ๋ผ์šฐ์ € ๋‚ด ๊ฒฝ๊ณ ์ฐฝ(alert)์ด ๋œจ๊ณ , ์ทจ์†Œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ทจ์†Œ๋œ๋‹ค.
-> ์ง์ ‘ ์šด์˜ํ•˜๊ฒŒ ๋  ๋•Œ์—๋Š” ์‚ฌ์œ ๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๋ฉฐ, ์šด์˜์ง„์ด ์ง์ ‘ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ์ถ”๊ฐ€ ๊ตฌํ˜„์ด ๋” ํ•„์š”ํ•˜๋‹ค!


๋งˆ์ดํŽ˜์ด์ง€

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


์ฑ—๋ด‡