์ด ๊ธ์ ์ด ์์๋ก ์ผ์ด์.
์ ๋ฒ ์ฃผ๋ง 27๊ธฐ ์์ปคํค์ด ์์๋ค! ์๋ฒ YB์ธ ๋๋ ์์ํ๊ธฐ ์ ๋ถํฐ ๋ค๋ฅธ ํํธ์๋ค๊ณผ์ ํ์ ์ ํด ๋ณผ ์ ์๋ค๋ ๊ธฐ๋๊ฐ์ด ์ปธ์๋ค!
์ด๋ฒ ์์ปคํค์ ์ฃผ์ ๋ ๋ฐ๋ก '์ค๋ '์ด์๋ค.
์ฐ๋ฆฌ๋ ์ฃผ์ ๋ฅผ ๋ณด๊ณ ๋ ์ค๋ฅด๋ ์์ด๋์ด๋ค์ Notion์ ๋ค๊ฐ์ด ์ ์ผ๋ฉด์ ์์ด๋์ด ํ์๋ฅผ ์งํํ๋ค.
์ฐ๋ฆฌ๋ ์ฌ๋ฌ๊ฐ์ง ์ฃผ์ ๋ค์ ๋ ์ฌ๋ฆฌ๋ฉฐ ๋งํ์๋๋ฐ, ์ค๋ ์ ๋ฐ๋ผ๋ณด๋ ๊ด์ ๋ ์ฌ๋๋ง๋ค ๋งค์ฐ ๋ฌ๋ผ์ ํฅ๋ฏธ๋ก์ ๋ค. ๋ณดํต ์ค๋ ์ด๋ผ๊ณ ํ๋ฉด ์์ฝ์ฌ, ๋ด๋ฐฐ ์ค๋ ๊ณผ ๊ฐ์ ์ ํดํ ๊ฒ์ ๋ํ ์ค๋ ์ ์ฝ๊ฒ ์๊ฐํ๊ฒ๋๋ค. ํ์ง๋ง ์๊ธฐ๋ฅผ ๊น๊ฒ ํด๋ณผ ์๋ก ์ค๋ ์ด๋ผ๊ณ ํ๋ ๊ฒ์ ๊ธ์ ์ ์ธ ๊ฒ๋ค์ ๋ํด์๋ ๋ง์ด ๋ํ๋ ์ ์๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ ์ค๋ ์ด ๋๊ณ ์ถ์ ๊ฒ์ ๋ํด์๋ ํ ๋ฒ ์๊ฐํด๋ณด๊ธฐ๋ก ํ๋ค.
๋ฑ์ด ์์ ์ ์๋๋ฐ, ์ฐ๋ฆฌ๋ ์ด ์ค์์๋ ์ผ ์ค๋ ์ ๋ํด ์ข ๋ ๊น์ ์ด์ผ๊ธฐ๋ฅผ ๋๋ ์ ์์๋ค.
์ํธ๋ ์ด์ ์ ๋ณด๊ณ ๋ฝ๋ ๋์๋ฆฌ์ธ ๋งํผ, ์๋๋ถํฐ ์ด์ ์ด ๋์น๊ณ ์ด์ฌํ ์ฌ๋ ์ฌ๋๋ค์ด ๋ง๋ค. ์ด ์ด์ผ๊ธฐ๋ฅผ ํ๋ ์ฐ๋ฆฌ ์กฐ์๋ค๋ง ๋ณด๋๋ผ๋ ์ ์ฌ๋๋ค์ ๋์ฒด ์ธ์ ์ด๊น ๊ถ๊ธํด์ก์๋ค. ์ผ ์ค๋ ์ ๊ฑธ๋ฆฌ๊ณ ์ถ์ ๋งํผ ์์ฐ์ ์ด๊ณ ๋ฉ์ง ๊ฒ ๊ฐ๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ๊ด์ ์ ๋ฌ๋ฆฌํด์ ์ผ ์ค๋ ์ ํํํ๋, ๋๋ฌด ์ด์ฌํ ์ฌ๋ ๊ฒ๋ง์ ๋ชฉํ๋ก ํ๋ ์ํธ์ธ๋ค์ ์ ๊น์ ํด์์ ์ฃผ๊ณ ์ถ๋ค๋ ๋ฉ์ง ์๊ฐ์ ํ๊ฒ ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์ฐ๋ฆฌ์ ์๋น์ค FISHING์ ํ์์ผ๋ก ์ด์ด์ก๋ค.
ํ์๋ค์ด ์ฅ๋์ค๋ ์ ์ํ ์ด ๋์์ง์ ์๊ฐ๋ณด๋ค ๊ด์ฐฎ์๋ค.
๋ก ์ฌ๋๋ค์ ์์ด๊ณ , ๊ทธ ๋ค์ ์ฌ๋๋ค์ ๋๊ณ ํ๋งํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๊ฐํด๋ดค๋ค. ๊ณ์ํด์ ์ฌ์ฉํ ์๋น์ค๋ผ๊ธฐ๋ณด๋ค๋ ์ผํ์ฑ์ ์ด๋ฒคํธ ํ์์ด๊ธด ํ์ง๋ง ์์ปคํค์ฉ์ผ๋ก๋ ๊ด์ฐฎ์ ๊ท์ฌ์ด ์์ด๋์ด๋ผ๊ณ ์๊ฐํ๋ค!
์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ด์์ ์ด๋ฌ์๋ค.
์๊ฐ ๋ฉ์ถค
์ด๋ผ๋ ๋ฒํผ์ ๋๋ฅด๋ฉด ์๊ฐ์ด ๋ฉ์ถ๊ณ ๋๋ค ํ๋ง ์ฌ์ง์ด ๋์จ๋ค.ํด์๋ฐฉ๋ฒ/ํด์๋ชจ์ต์์ฐ์์ฌ์ง
์ ๋ณด๊ณ ๊ณต๊ฐ์ ๋๋ฅผ ์ ์๋ค.์ฃผ์ ์ ์ ํ ๊ธฐํ ํผ๋๋ฐฑ์์ ์ด์์ง๋ถ๋ค๊ป์ ์์ด๋์ด๊ฐ ์ข๊ณ , ์ ์ด๋ฆฌ๋ฉด ๋๋ฐ์ด ๋ ๊ฒ๊ฐ๋ค๋ ๋ง์์ ํด์ฃผ์ ์ ์ฐ๋ฆฌ ํ์ ์ข์ ๊ธฐ์ด์ ๊ฐ์ง๊ณ ์์ํ ์ ์์๋ค!
์ฐ์ Fishing
์ ์ค๊ณํ๊ธฐ ์ํด์ ์ง๋ ๋ช ์ฃผ๋์ ๋ฐฐ์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๋ฅผ ์จ๋จน์ด ๋ณผ ์ ์์๋ค. ์ผ๋จ ์ฐ๋ฆฌ๋ ์ธ๋ฏธ๋๋ง ๋ฐ๋ผํ๊ธฐ ๊ธ๊ธํ ์์ด๋ณด ์ญ๋ฆฐ์ด์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก RDS๋ฅผ ์ฌ์ฉํ ๋ ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑํด์ผํ๋, ์๋๋ฉด ์๋ก์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํด์ผํ๋ ๊ณ ๋ฏผํ๋ค. ์ ๊ทธ๋๋ ๋ฐ์ ํํธ์ฅ๋ํํ
์นดํก์ผ๋ก ์์ฒญ ์ง๋ฌธํด์ ๊ดด๋กญํ๊ธฐ๋ ํ๋ค. ๊ทผ๋ฐ ๊ฒฐ๋ก ์, ๊ฑ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ก์ด ์คํค๋ง๋ง ์ถ๊ฐํ๋ฉด ๋๋ ๊ฑฐ์๋ค ใ
ใ
์ฐ์ ์ฐ๋ฆฌ๋ ์ฒ์์ User์ Post ํ ์ด๋ธ๋ง ์๊ฐ์ ํ๊ณ ์์๋๋ฐ ๊ธฐ๋ ๋ถ๋ค์ด ๋ก๊ทธ์ธ๊ธฐ๋ฅ์ ๋ง๋๋๊ฒ ๋ณ๋ก๋ผ๊ณ ํด์ ์ ์ ์ผํ์ฉ์ผ๋ก ์๊ฐํ๊ณ Post ์ ๋ณด์ ํ์ํ ๋๋ค ๋๋ค์๊ณผ ํํธ๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํด์ ๊ตณ์ด ์ ์ ํ ์ด๋ธ์ ๋ง๋ค์๋ค. ์ข์์(๊ณต๊ฐ) ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ๋ก ํด์ Like ํ ์ด๋ธ๋ ์๊ธฐ๊ฒ ๋์๋ค.
์ด๋ฐ์ ์ ์ ์ ์ธ์ ์ ์ ์งํ ๊น ๋ง๊น ๊ณ ๋ฏผํ์๋๋ฐ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ๋ ์๋๋ฐ ๋ฑํ ํ์๊ฐ ์์๊น๋ผ๋ ์๊ฐ์ ํ ํฐ์ ๋ฐ๊ธํ์ง ์์๋ค. ์ด๊ฑด ์ข ์ค์์๋๊ฒ, like๋ ๋๋ฅธ ์งํ์๋ง ์ทจ์ํ ์ ์๋ ์ด์ํ ๋ฐฉ์์ด ๋ผ๋ฒ๋ฆฌ๊ณ ๋ง์๋ค.
์ฐ๋ฆฌ ์๋ฒํํธ๋ค์ ๋ ๋ค YB์ฌ์ ์์ ๋์ฐ์ง๋ ๋ชปํ ๊น๋ด ๋ถ๋ด์ด ์ปค์ ์ด๋ป๊ฒ๋ ์ค๊ณ๋ถํฐ ๊ฐ๋จํ๊ฒ ๊ฐ๋ ค๊ณ ํ๋ ๊ฒ ๊ฐ๋ค. ์๊ฐ์ด ์ ๋ ์ ์ ๊ฒ ์๋๋ผ๋ ๊ฑธ ์์๋๋ผ๋ฉด ์ ์ ๋ชจ๋ธ๋ ๋ง๋ค ์ ์์์ ๊ฒ ๊ฐ๊ธฐ๋ ํ๋ค.
1์ฐจ ์ ์ถ๋ฌผ์ ๋ค์๊ณผ ๊ฐ์๋ค.
์ด ๋ ๊ฐ์ง๋ง ์ ์ถํ๋ฉด ๋์๋๋ฐ, ERD๋ mySQL ์ํฌ๋ฒค์น์์ ๋ง๋ค์ด ์ฃผ๋ ๊ฑฐ๋ผ ํ ์ด๋ธ๊ณผ ๊ด๊ณ๋ง ์ค์ ํด์ฃผ๋ฉด ๋๊ณ , API๋ ์ฐ๋ฆฌ๊ฐ ์ธ๋ฏธ๋ ๋ ๋ฐฐ์ ๋ ๊ฒ๋ค์ ํ์ฉํ๋ฉด ๊ธ๋ฐฉ์ด์ด์ ๋ถ๋ด์ด ์ ์๋ค. ์ด ๋๊ฐ ์คํ 11์ 12์? ์๋ ๊ฒ ๊ฐ์๋ฐ 1์ฐจ ์ ์ถ์ด 5์๋ผ๊ณ ์๊ณ ์์์ด์, ์ฌ์ ์๋ค๊ณ ์๊ฐํ๋ค.
์๋ฒ๋ฅผ ๊ฐ์ด ํ๋ ์ฐ์ ์ค๋น ๊ฐ ๊ธฐ์กด์ ์ฌ์ฉํ๋ RDS ์ธ์คํด์ค์ ์ฐ๋ฆฌ ํ๋ก์ ํธ DB๋ฅผ ์ฐ๊ฒฐํ๊ณ ๋ผ์ฐํ , Models, Sequelize ์ค์ ์ ์๋ฃํ๋ค. ๊ธฐ์กด์ ์ธ๋ฏธ๋์์ ์์ฑํ๋ ๊ฒ๋ค์ ๊ฑฐ์ ๋น์ทํ๊ฒ ๊ฐ์ ธ์์ ์ ๋ง ์๊ฐ์ด ์ผ๋ง ์ ๊ฑธ๋ ธ๋ค. ๊ทธ๋ฆฌ๊ณ api๋ ๊ธ๋ฐฉ๊ธ๋ฐฉ ๋ง๋ค๊ณ ๊ฑฑ์ ์ด ํ๋๋ ์์๋ค. postman์ผ๋ก ์์ฒญ์ ๋ณด๋์ ๋ ์๋ต๋ ์ ๋๋ก ์๋ค.
๋ด๊ฐ ๋ง๋ api๋ User ์์ฑ, ์ด๋ฏธ์ง ๋๋ค ์ ํ ์๊ฑฐ ๋ ๊ฐ์ด๋ค.
์ฌ์ ๋กญ๊ฒ ๋๋ ์์ค์ (์๋ฒฝ 2์ 40๋ถ์ด์๋ค.) ๊ฐ์๊ธฐ ์ค๋น ๊ฐ 3์๊น์ง 1์ฐจ ์ ์ถ์ ํด์ผํ๋ค๋ฉด์ ๋ค๊ธํดํ๋ ๊ฑฐ๋ค. ๊ทธ๋์ ๋๋ ๋ฉ๋ฌ์ ๋๋ผ์ ๋ถ๋ด๋ถ๋ด ํํธ์ฅ๋์ด ์ฌ๋ ค์ค ํฌ๋งท์ ๋ง์ถฐ ๋งํฌ๋ค์ด์ ์ผ๋ค. ์ฐ๋ฆฌ๋ ๋ฑ 3์์ ์ ์ถ์ ํ๋๋ฐ ๋คํํ๋ ์ ์ถ๋ ํ์ ์ํด์์๋ค๐ ์ด๊ฑด ๋์ค์ ์ ๊ฑด๋ฐ ์ด ๋ ์ฐ๋ฆฌ๊ฐ ํํธ์ฅ๋์ด ์จ๋์ ๋ฆฌ๋๋ฏธ๋ฅผ ๋ฐ๋ผ ์จ์ ์ ์ถํ ๊ฒ 1์ฐจ ์ ์ถ๋ฌผ์ด ์๋๋ผ ์ต์ข ์ ์ถ๋ฌผ์ด์๋ ๊ฒ์ด๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก ์ฐ๋ฆฌ๋ 8์์ ์ ์ถํ๋ฉด ๋๋ ์ต์ข ์ ์ถ๋ฌผ์ 3์์ ์ ์ถํ๊ฑฐ๋ค. ์ด ๋๋ถํฐ ํ ์ผ์ด ์์ด์ก๋ค๊ณ ์๊ฐํด์ ์ง์ง ์ฌ์ฌํ๋ค.
์ฐ๋ฆฌ๋ ์๋ฒ๋ฅผ ์ผ์ฐ ๋ง๋ฌด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์ค๋น ๋ ์นํํธ ๋ถ๋ค์ ๋์๋๋ฆฌ๊ณ ์์๊ณ ๋๋ ์์์ ์ค๋น ๊ฐ ํ๋ ๊ฑธ ๊ตฌ๊ฒฝํ๊ณ ์์๋ค. ๋ฆฌ๋์ค๋ผ๋ ๊ฑธ ์ฐ๋ ๊ฒ ๊ฐ์๋๋ฐ ๋๋ ์๋ ๊ฒ๋ ์์๊ณ , ํฉ๋์ธ๋ฏธ๋๋ฅผ ์์ง ์งํํ์ง ์์์ ํ๋ก ํธ๋ ๋ฐฑ์ด๋ ์ด๋ป๊ฒ ๋ง๋ฌผ๋ ค ๋์๊ฐ๋์ง ๊ถ๊ธํ์๋ค. ๊ทธ๋์ ๋ฌผ์ด๋ณด๋ ajax
๋ฅผ ์ฌ์ฉํ๋ฉด ์ฐ๋ฆฌ๊ฐ ๋ณด๋ด์ฃผ๋ ์๋ต์ ํ๋ก ํธ์์ ๋ฐ์ ์ ์๋ค๊ณ ํ๋ค. ์ด๊ฑฐ๋ ํฉ๋์ธ๋ฏธ๋ํ๋ฉด์ ๋ ์์ธํ ๊ณต๋ถํด๋ณด๊ณ ์ถ๋ค!
์๋ฌดํผ ๋๋ ๊ทธ๋์ ์ญํ ๋ถ๋ด์ ํ์ง ์๊ณ ํ๋ก์ ํธ๋ฅผ ํ ๋ ํ๋ก ํธ๋ฅผ ์ ์ ํ์ผ๋ก ๋์ถฉ ๋ผ์์ ์๋ฒ์์ ์ง์ ๋๋๋งํด์ ๋ณด์ฌ์คฌ์๋ ๊ฒ ์๊ฐ์ด ๋ฌ๋ค. ์ ์ ํ์ผ๋ค๋ง ๊ฐ์ง๊ณ ํ๋ก ํธ๋ฅผ ํ๋ ๊ฒ ์ผ๋ฐ์ ์ด์ง ์๋ค๋ ๊ฒ๊ณผ ๋ณดํต์ ์ด๋ป๊ฒ ํ๋ ๊ฑด์ง ์ด๋ก ๋ง ์๊ณ ์์๋๋ฐ, ์ง์ ์นํํธ ๋ถ๋ค์ด ์ฐ๊ฒฐํ๋ ๊ฑธ ์์์ ๋ณด๋๊น ์ค๋ช ์ ๋ฃ์ง ์์๋ ์๋ฆฌ๋ฅผ ์ดํดํ๋ ๋ฐ ์ค๋ ๊ฑธ๋ฆฌ์ง ์์๋ค. ๋นจ๋ฆฌ ํฉ๋์ธ๋ฏธ๋๋ ํ๊ณ , ์ฑ์ผ๋ ํ๊ณ ์ถ์ด์ก๋ค ์๋ฒํํธ์๋ค๋ผ๋ฆฌ๋ง ์๋ ๊ฒ๊ณผ๋ ๋ ๋ค๋ฅธ ์ฌ๋ฏธ๊ฐ ์์๋ค.
์ฐ๋ฆฌ๊ฐ ๋ง๋ฌ๋ ์ค๋ฅ ์ค ๊ธฐ์ต์ ๋จ๋ ๊ฒ๋ค์ด ์๋ค. ํ๋๋ ๋๊ฒ ๊ฐ๋จํ๊ณ ์ด์ด ์๋ ๊ฑด๋ฐ ์ฌ๋๋ค์ด ๋ง์ด ํ๋ ์ค์์ธ ๊ฒ ๊ฐ์ sequelize synchronization
์ต์
์ด๋ค. ์ด ์ต์
์ false
๋ก ๋๊ณ ๋ชจ๋ธ ๊ตฌ์กฐ๋ฅผ ๋ฐ๊พธ๋ฉด ์๋์ผ๋ก ์
๋ฐ์ดํธ๊ฐ ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ธ์ ๋ํ ๊ฒ์ ๋ฐ๊พธ๊ณ ๋์๋ true
๋ก ๊ผญ ๋ฐ๊ฟ์ค์ผ ํ๋ค.
// app.js
const { sequelize } = require("./models");
sequelize
.sync({ force: false })
.then(() => {
console.log("๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ฑ๊ณต!");
})
.catch((error) => {
console.error(error);
});
์ฐ๋ฆฌ๊ฐ ์ด๋ฏธ์ง url์ ์ ์ฅํ๋ ์ปฌ๋ผ์ ์๋ฃํ์ STRING(100)
์ผ๋ก ์ค์ ํด๋์ url์ด ์๋ ค์ ์ ์ฅ๋๋ ๋ถ์์ฌ๊ฐ ์ผ์ด๋ฌ์๋๋ฐ, ์ฐ๋ฆฌ๊ฐ ์๋ฌด๋ฆฌ ๊ธ์์๋ฅผ ๋๋ ค๋ ๋๊ธฐํ ์ต์
์ false๋ก ํด๋์์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ url์ ๊ธธ์ด๊ฐ 100์ธ ๊ฒ์ด์๋ค. ์ฌ์ํ ์ค์์๋๋ฐ ๋ค๊ธํด์ ์์ฒญ ๋นํฉํ๋ ๊ธฐ์ต์ด ๋๋ค.
์ฐ๋ฆฌ์ ์ต์ข
์ ์ถ๋ฌผ์ ๋ฐํ์๋ฃ์ ์์ฐ๋์์์ด์๋๋ฐ, ๋ง์ง๋ง์ ๊ฐ์๊ธฐ ์๋ฒ์์ ํฌ์คํธ๋ฅผ ์ถ๊ฐํ๋ ์์ฒญ์ ์ ๋๋ก ๋ฐ์ง ๋ชปํด 500 ์๋ฌ๊ฐ ๊ณ์๋ฌ๋ค. ์๋ฌ์ผ, ์ ๋๋ก ์๋ ๊ฑฐ ํ๋ ์๋ ๋์๊ฒ๋ ์ต์ํ๊ณ ๋ณ๋ก ๋์๋กญ์ง ์์๋ฐ๋ ์ด ๋ ๋๋ฌด ๋นํฉํ๋ ์ด์ ๋ postman์์๋ ์๋ฌ๊ฐ ์ ํ ๋์ง ์์๊ธฐ ๋๋ฌธ์ด์๋ค. ํ๋ก ํธ์ postSharePage
์์ multipart/form data ์ค๋ฅ๊ฐ ๋ฌ๋ค.
์ด๋ค ์๋ฌ์ธ์ง ์ ํํ ๋ณด๋ ค๊ณ ๋ก์ปฌ์์ ์๋ฒ๋ฅผ ๋๋ ธ๋๋ฐ ์์ฒญ์ ์ ๋์ฐฉํ๋๋ฐ 500์๋ฌ๊ฐ ๋์ ๋ญ๊ฐ ์ถ์๋ค. ๋์ค์ ์ค๋น ๊ฐ ์ด๋ง ํ ์น๋ฉด์ ์ค๋งํ๊ณ ์ฝ๋๋ฅผ ์์ ํ๋๋ฐ ๋ฐ๋ก ์ ๋์๊ฐ๋ค. ์ฌ์ค ์ฒ์์ ์ฐ๋ฆฌ๊ฐ ์ฝ๋๋ฅผ ์์ฑํ ๋ ๊ณ ์น๊ธฐ ๊ท์ฐฎ๋ค๊ณ ๋์ด๊ฐ ๋ถ๋ถ์ด ์์๋๋ฐ
// server: postRouter.js
const postsRouter = express.Router();
postsRouter.post("/", upload.single("postImageUrl"), postController.createPost); //!
์ฐ๋ฆฌ๋ multer๋ก ๋จ์ผ ์ด๋ฏธ์ง๋ฅผ s3์ ์
๋ก๋ํ๋ ํจ์๋ฅผ upload๋ก ์ ์ ํ๋๋ฐ, ์ด๋ฏธ์ง ์์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ํค์ ์ด๋ฆ์postImageUrl
๋ก ์ค์ ํด๋ฒ๋ ธ๋ ๊ฒ์ด๋ค. ์ด๋ฐ์ postRoute ์ฝ๋ ์ฝ๊ณ ์ด ๋ถ๋ถ์ ๋ฐ๊ฒฌํ์ ๋ ๊ท์ฐฎ์ผ๋๊น ๊ทธ๋ฅ ๋์ง ๋ญ ํ๋ฉด์ ๋์๋กญ์ง ์๊ฒ ๋์ด๊ฐ์๋๋ฐ
// front: PostSharePage.js
const handleSubmitButton = async () => {
let fileData = new FormData();
try {
console.log(contentsInput.value);
fileData.append("image", image); //!
fileData.append("contents", contentsInput.value);
fileData.append("nickname", "first");
...
}
...
}
์์ ๊ฐ์ด ํ๋ก ํธ์์ image
๋ผ๋ ํค๋ก ํผ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ๋๋ฌธ์ ์๋ฒ์์ ์ธ์ํ์ง ๋ชปํ๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ์ ๋ถ๋ถ์ image
-> postImageUrl
๋ก ๋ฐ๊ฟ์ฃผ๋๊น ๋ฐ๋ก ๋์๊ฐ๋ค. ์ฒ์์ ์ ๊ฑฐ ํ๋ ๊ณ ์ณค์ผ๋ฉด ์๋ฌ ์ก์ ์๊ฐ์ ๋ ๋ง์ ๊ฑธ ํ ์ ์์์๊ฑฐ๋ ์๊ฐ์ ์์ฌ์์ด ๋จ์๋ค.
์๋ฌดํผ ์ด ํ์๋ ๊ฑฐ์ ๋ง๋ฌด๋ฆฌ๊ฐ ๋์ด์ ์นํํธ ๋ถ๋ค์ด ์ด์ผํด์ ํ๋ฆฌํฐ ๋์ด๋ค๊ฐ ๋ฐํ์๊ฐ์ด ์์๋ ๊ฒ๊ฐ๋ค.
์ฒ์์๋ ์ํฐํด/๋ ํผ๋ฐ์ค ๋ชจ์์ง๊ฐ์ ๋๋! ๋๋ค์๊ณผ ํํธ๋ฅผ ์ค์ ํ๊ณ ๋ค์ด๊ฐ๋ค.
์์ ํํธ ๋ณ ์น์
์ ํด๋ฆญํ๋ฉด ํ์ฌ ์๊ฐ์ ๋ณด์ฌ์ฃผ๊ณ ๋ฉ์ถ๋ฉด ๋น๋ก์ ๋ณด์ด๋ ๊ฒ๋ค์ ํด๋ฆญํ๋ฉด ์ฌ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋์จ๋ค (ใ
ใ
ใ
)
๊ทธ๋ฆฌ๊ณ ์์ ์ ํด์ ๋ฐฉ๋ฒ์ ์ ๋ก๋ํ๊ณ , ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ ๋ก๋ํ ํฌ์คํธ๋ค์ ๋ณผ ์ ์๋ค!
๋ณต์ต ๋ ๋ฏธ๋ฃจ๋ฉด ํฐ์ผ๋๊ฒ ๋ค - ์ธ๋ฏธ๋๋ ๋์๊ฒ ์๋ฌด๊ฒ๋ ์ฃผ์ง ์๋๋ค. ๊ฐ๋งํ ๋ฃ๊ณ ๋ฐ๋ผ๋ง ํ๋ ์ฌ๋์ ๋ฐ์ ์ด ์๋ค. ๊ธฐ๋ณธ์ ์ธ ์ฝ๋๋ ์์ ์ต์ง ์์๋ค๋. ์์ปคํค ๋ด๋ด ๋ฐ์ฑํ๋ค. ์์ปคํค์์๋ ๊ทธ๋๋ง ๊ตฌํํ๊ธฐ ์ฌ์ด api๋ฅผ ์ผ์ผ๋ ๋คํ์ด์์ง ๋์ค๊ฐ์ ์ด๋ ค์์ ๊ฒช์ ๊ฒ ๊ฐ์๋ค. ์ธ๋ฏธ๋ ๋ณต์ตํด์ผ์ง! ๐
์กฐ๊ธํดํ์ง ๋ง์์ผ์ง - ๋ชปํ๋ฉด ๊ฐ๋งํ๋ผ๋ ์์์ด์ผ ํ๋๋ฐ, ํผ์ ํฅ๋ถํด์ ๋ชจ๋ํฐ ๋๋ฆฌ๊ณ ์๋ฃ์ ์๊ณ . ์ฐฝํผํ๋ค. ์๋ ์ฌ์ค ๊ฐ๋งํ ์๊ธฐ๋ณด๋จ ์ํ๋ ค๊ณ ๋ ๋ชฐ์ ํ๊ณ ์ ๊ทน์ ์ผ๋ก ์ฐธ์ฌํด์ผํ๋ ๊ฒ ๋ง๊ธด ํ๋ฐ ์ด๋ฒ์ ์์๋ง ๋๋ฌด ์์์ ํฅ๋ถํ ๊ฒ ํํ๋๋ค. ๊ณต๋ถํด์ ์ฌ์ ๋กญ๊ณ ์ฐจ๋ถํ ์ฌ๋์ด ๋์
๋ค๋ฅธ ์ฌ๋์ด๋ ์ผํ๋ ๊ฑฐ ์ฝ์ง ์๊ตฌ๋ - ๊ทธ๋๋ ๋๋ฆ ์๋ฒ์ ๋ํ ์ง์์ ๋ง์์ก๋ค๊ณ ์๊ฐํ๋๋ฐ ๋ค๋ฅธ ํํธ์๋ค๊ณผ ๋ํํ ๋ ๋ด๊ฐ ๋ชจ๋ฅด๋ ๊ฒ๋ค์ด ๋๋ฌด ๋ง์๋ค. ๋น์ผ์ ์ฒ์ ๋ณด๋ ์ฌ๋๋ค๊ณผ ๋งํ์์ด ๋ํํ ์ ์๋ ์ธ๋ ์ค๋น ๋ค์ด ๋๋ฌด ๋ฉ์ก๋ค. ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ์ ์ํตํ๊ธฐ ์ํด์๋ ๋ ๋ค๋ฅธ ๋ ธ๋ ฅ์ด ํ์ํ๊ฒ ๋ค๋๊ฒ ์๋ฟ์๋ค.
์ผ๋ฅธ ์ฑ์ผ ํ๊ณ ์ถ๋ค! - ์ด๋ฒ์ ๋ฐ์ฑ ์ข ํ์ผ๋ ๋งํํ ๊ธฐํ๊ฐ ์ฑ์ผ์ด๋ผ๊ณ ์๊ฐํ๋ค. 1๋ฐ2์ผ ํด์ปคํค์์๋ ์ด๋ ๊ฒ ๋ง์ ๊ฒ๋ค์ ๋์๋ณด๊ณ ์ป์๊ฒ ๋ง์๋ฐ ์ฑ์ผ์ ๋ ์ผ๋ง๋ ์ฌ๋ฐ์๊น ๊ธฐ๋๊ฐ ๋๋ค๐
๋๋ฌด ๋ฉ์์ด์! ํ์๋ค๋ผ๋ฆฌ ๋ชจ์ฌ์ ๋ง๋ค์ด์ง ๊ทธ๋ฃน์ธ๊ฐ์?