์ฝ ํ๋ฌ ๋ฐ ๋์์ ํ๋ก์ ํธ ๊ธฐ๋ก ์์ฑ ๋..!
ํ๋ฌ ๋ฐ ์ด๋ผ๋ ์๊ฐ๋์ ์๋ฒํํธ ํ์ฅ์ผ๋ก์จ ๊ฝค ๋น ๋ฏํ ์ผ์ ์ด์๋ ๊ฒ ๊ฐ๋ค.
ํ์๋ค์ API ์์ฐ๋ ฅ์ด ๋จ์ด์ง๋ ๊ฒ๋ ์ด์ ์คํฐ๋์์ ๊ฐํผ๋ฅผ ํ์คํ๊ฒ ์ก๊ณ ๋์ด ์์ด์ผํ๋๋ฐ, ๊ฐ๋ฐ ๊ธฐ๊ฐ ์ด๊ธฐ 2์ฃผ๋์ ๋ค์ ๊ฐํผ๋ฅผ ์ก๋๋ค๊ณ ์๊ฐ์ ์ป์๊ณ
์์ผ๋ก๋ ํ๋ก์ ํธ ์ ์ ์ค๋น๋ฅผ ์ ํ ์ ์๋ ํ์ฅ์ด ๋ ํ์์ฑ๋ ๋๋ผ๊ฒ ๋์์..
ํ๋ก์ ํธ๋ ๊ฐ์ดํ๋, ํ์๋ค์ด ์์ธ๊ฐ์ ๋๋ผ์ง ์๊ฒ ๊ฐ์์ ๋ฅ๋ ฅ์ ์ด๋ฆด ์ ์๋๋ก ์ฟผ๋ฆฌ๋ฌธ์ด๋ API์ ์ ์ฒด์ ์ธ ํ์ ์ง๊ณ , ๋ก์ง์ ์ด๋ป๊ฒ ๊ตฌํํ ์ง ๊ณ ๋ฏผ์ ๋ง์ด ํ๋๋ก ์ ๋ ํ์๋ค.
๋ ์ธ๋ถ ๊ธฐ์ ์ด๋ ๊ฐ ๋๋ฉ์ธ์ ๋ด๊ฐ ์ง API ๋ช
์ธ/๊ธฐ๋ฅ์ ๋ถ์กฑํ ์ ๋ค์ด ์์ผ๋ฉด ๋งค์ผ ๋ชจ์ด๋ ์์นจ์ ๊ฐ์ ์งํ์ํฉ์ ๋ณด๊ณ ํ ๋ ๋ฐํํ๋๋ก ํ์์.
๋งค์ฃผ ํ์๋ฅผ ํ๋ฉด์ ํ์ฌ ์งํ์ํฉ๊ณผ ํ๋ก ํธ์์ ๊ถ๊ธํดํ๋ ์ํฉ๋ค์ ๊ณ์ํด์ ์ธ๊ธํด์คฌ๋ค.
ํ๋ก ํธ ํ์ ์กธ์
์ํ์ ํ๋ ์น๊ตฌ๊ฐ ์์ด์ ์ํตํ๊ธฐ ํธํ๊ณ , ๊ธฐํ ํ์ฅ๋ ์น๊ตฌ๋ผ์ ๊ฐ๊ฐ์ ๋ ํ์ํ ๊ธฐ๋ฅ์ด๋ ๊ทธ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์ ์ด๋ค์ ์ ์ค์ ์ผ๋ก ํ ์ง ์ํต์ ๋ง์ดํ๋ ค๊ณ ํ์๋ค.
ํ๋ก ํธ ์ชฝ์๋ ํญ์ API ์ ์ฉ์ด ์๋ฃ๋์์ผ๋ฉด ๋ํํ
์๋ ค๋ฌ๋ผ๊ณ ํ์๋๋ฐ, ์ ์ด๋ค์ง์ง ์์์ API ๋ช
์ธ์์ ๋๊ฐ ์ด๋ค ๊ธฐ๋ฅ์ ํ๋ก ํธ์ ์ ์ฉํ๋์ง ๊ธฐ๋กํ ์ ์๋๋ก ์ฒดํฌ๋์ ๋ง๋ค์ด์ ์ํตํ์์.
๊ฐ ํ์๋ค์ ์ฑ ์๊ฐ์ด ๊ฐํ(?) ์ด์ ๋๋ฌธ์ ํ๋ก ํธ ์ชฝ์์ ํผ์ ํด๊ฒฐ์๋๋ ์ผ๋ ํด๊ฒฐํ๋ ค๊ณ ๋๋ ๋๋ ์ผ์ด ์์๋๋ฐ, ์๋ฒ ์ธก ๋ก๊ทธ๋ฅผ ์ฐ์ผ๋ฉด์ ํด๊ฒฐํ๋ ๋ฐ๋ก ํด๊ฒฐ๋๋ ๊ฒฝ์ฐ๋ ์์์..
๊ทธ๋์ ๋ด๊ฐ ๊ผญ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ๋ฐ๋ก ์๋ ค๋ฌ๋ผ๊ณ ํ๋ค. ๊ทธ๋ ๊ฒ ํ๊ณ ๋๋ ๋จ์ฒด ์นดํก๋ฐฉ์ด ํ์ฑํ๋ ๋๊ณ ๋ฌธ์ ๋ฐ์์์ ๋ฐ๋ก๋ฐ๋ก ์ธ๊ธ์ ํด์ฃผ๋ฉด์ ๊ฐ์ ๋งก์ ๋ถ๋ถ์ ํด๊ฒฐํ ์ ์์์.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋์ค์ฝ๋๋ฅผ ํตํด ํ๋ฉด๊ณต์ ๋ฅผ ํ๋ฉด์ ์ด๋ ์ชฝ์์ ์๋ฌ๊ฐ ๋ฌ๋์ง ๋ก๊ทธ๋ฅผ ๊ณ์ ์ฐ์๊ณ ,
๋ง์ผ ํ๋ก ํธ์์๋ ์์ฒญ/์๋ต์ด ์ ์ ์ด๋ค์ง๋ ๋ ๋ํ PostMan์ ํตํด์ API๋ฅผ ๊ณ์ ํ
์คํธํ๋ฉด์ ๋ฌธ์ ์ ์ ์ฐพ์ผ๋ ค ์ ์ป๋ค.
DataGrip์ ํตํด ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๊ฐ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์์ ๋๊ฑฐ๋ ์ฝ์
๋๋์ง๋ ์ง์์ ์ผ๋ก ํ์ธํ๋ฉด์
๋๋ฒ๊น
์ ์๋ฃํ์๋ค.
๊ธฐํ ํํธ์์ ํ๋งค์ ์ชฝ ํ๋ฉด์ ๋จผ์ ์ค๊ณํ๊ณ ๊ตฌ๋งค์ ์ชฝ์ ์กฐ๊ธ ๋ฆ๊ฒ ์งํํ๊ฒ ๋์๋ค. ๊ทธ๋์ ๋๋ฉ์ธ์ด๋ ์๊ตฌ์ฌํญ, ๊ธฐ๋ฅ์ ์ ๊ฐ์๋ฉด๋ ํ๋งค์ ์ชฝ์ ์ฐ์ ์ ์ผ๋ก ํ๋ค๋ณด๋ ๋น์ค์ด ํ๋งค์์ชฝ์ผ๋ก ํธํฅ๋์๋๋ฐ.. ํ์ ERD์ค๊ณ๋ฅผ ํ ๋๋ ํ๋งค์ ๊ด๋ จ ๋๋ฉ์ธ์ ๋ชจ๋ ๋ง๋ ํ ๊ตฌ๋งค์ ๋๋ฉ์ธ์ ์ค๊ณํ๊ฒ ๋์๋ค.
ํ๋งค์ ๋๋ฉ์ธ ํ ์ด๋ธ์ ์ค๊ณํ๋ฉด์ ๋์ค์ ๊ตฌ๋งค์์์๋ ์ฌ์ฉํ๊ฒ ๋ ์ ๋ณด๋ค์ ์ ๊ณ ๋ฏผํ๋ฉด์ ์ธ๋ํค์ ๊ธฐ๋ณธํค๋ฅผ ์ค์ ํ์์ง๋ง, ๊ฐ๋ฐํ๋ฉด์ ๊ธฐํ ๋ถ๋ถ๋ ์์ ๋๊ณ ๊ธฐ๋ฅ ์ ์ธ ์๊ตฌ์ฌํญ์ด ์กฐ๊ธ์ฉ ์ถ๊ฐ๋๋ฉด์ ๊ฒฐ๊ตญ์ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ์์ ํ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์๋ ํ์์..
๊ทธ๋๋ ๊ฐ ๊ธฐ๋ฅ์ ํ ๋๋ฉ์ธ์ผ๋ก ์ฒ๋ฆฌํ๋ ค๋๊ฒ ์๋๋ผ ์ฌ๋ฌ ๊ฐ์ ์ธ๋ถ ๋๋ฉ์ธ์ ๊ณ ๋ คํด๋์ด์ ์ฝ๊ฒ ํ ์ด๋ธ๊ฐ์ ์ฐ๊ด๊ด๊ณ๋ฅผ ํตํด์ ์๊ตฌ์ฌํญ์ ํด๊ฒฐ ํ ์ ์์๋ค..!
๋ ๊ณ ๋ฏผ ํ๋ ์ ์, ํ ์ด๋ธ์ 13~ 15๊ฐ ์ ๋ ๋ง๋ค๋ฉด์ ๋๋ฌด ๋ง์๋ฐ ๋ค ์ฒ๋ฆฌ ํ ์ ์์๊น ๊ฑฑ์ ํ์ง๋ง, ๋คํํ ์ธ๋ํค๋ฅผ ์ ๊ฑธ์ด๋๊ณ ๋๋ฉ์ธ ๋ณ๋ก ๊ธฐํ ํ์ฅ๊ณผ ํจ๊ป ๊ณ์ ์ํตํ ๊ฒฐ๊ณผ ์ฝ๋๋ฅผ ๊ตฌํํ ๋ ๋ ผ๋ฆฌ์ ์ผ๋ก๋ ํ๋ฆ์ ์ผ๋ก๋ ๋งํ๋ ์ผ๋ ๋คํ์ด ์์๋ค.
Figma๋ฅผ ํตํด ๊ธฐํ์์ ๋์์ด๋๊ฐ ๋ง๋ ํ๋ฉด์ ๋ณด๋ฉด์ API๋ฅผ ์ค๊ณํ๊ฒ ๋์๋ค
API๋ฅผ ๋ช
์ธํ๊ณ ๊ธฐ๋ฅ์ ์ ์ํ ๊ธฐ์ค์ ํ๋ฉด์ ๋์์ง๋ ์ ๋ณด๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ ํ๋ฉด ๋จ์ ๋น ๊ธฐ๋ฅ์ ๊ณ ๋ คํ๋ฉด์ ๋ช
์ธ์๋ฅผ ์์ฑํ์๋ค.
ํด๋น ํ๋ฉด์์๋ ์๋ฒ์ ๊ตฌ๋งค์ ํ์์ด ์์ฒญํ ๊ฐ์ ๋์ ์์น ์ ๋ณด, ๊ตฌ๋งค์์ Id ์๋ณ์ ๋ฑ์ด ํ์ํ๋ค๊ณ ๊ณ ๋ฏผํ์๊ณ ,
์๋ต์ผ๋ก๋ ๊ฐ๊ฒ์ ๊ฐ ์ ๋ณด๋ฅผ ์ธ๋ถํ/ ์ง๊ณํ์ฌ ๋ฆฌ์คํธ ํํ๋ก ๋ฐํํด์ผ๊ฒ ๋ค๋ ๊ฐํผ๋ฅผ ์ก๊ณ ์ธ๋ถ ๋๋ฉ์ธ์ ๋๋ ์ ๊ธฐ๋ฅ์ ๋๋๊ณ ๋๋ฉ์ธ๊ณผ API๋ฅผ ๋ช ์ธ ํ์๋ค.
ํ๋ก ํธ๋ React, React-Native๋ฅผ ํตํด ์น/์ฑ ํํ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ๊ฒ ๋์๋๋ฐ, API ์์ฒญ ์ Spring Boot ์ ๊ธฐ๋ณธ ์ค์ ์ผ๋ก CORS์ ๊ท์น์ ์ด๊ธ๋๋ ํํ๋ก ์๋ฒ์ ๋ค์ด ์ฌ ๊ฒฝ์ฐ ์์ฒญ์ ๋ํ ์๋ต์ด ์ฌ๋ฐ๋ฅด๊ฒ ์งํ๋์ง ์์์, ํด๋น ๋ฐฉ์์ ํด๊ฒฐํ๋ค๊ณ WebConfig ๋ฅผ ์์ ํ์์๋ค.
๊ด๋ จ ํฌ์คํ
: https://velog.io/@99_insung/CORS-%EC%97%90%EB%9F%AC
EC2 ์ธ์คํด์ค์ ์น ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ๋ฅผ ๋ฐฐํฌํ๋๋ฐ ๋ก๊ทธ์ ์ด์ํ IP๊ฐ ์ฐํ๊ธฐ ์์ํจ..
/.env /. ๊ฐ์ ์์์ ์์๋ณด๋ ค๊ณ ํ๋ ์์ฒญ์ด ๋ก๊ทธ์ ์ฐํ์ ์ง์ง ์์ฐจ ์ถ์๋ค..
๋คํํ ์ฐ๊ฒฐํด๋ API๋ ์์์ง๋ง ์ฐ์ฐํ๊ฑด ์ฌ์ค ์ด์๊ณ , GPT์ ๊ตฌ๊ธ๋ง์ ํตํด ์๊ฒ ๋์๋๋ฐ Scan ๊ณต๊ฒฉ ๋ฑ ์ธ๋ถ์์ ์ฐ๋ฌ๋ณด๋ ํ๋๋ง ๊ฑธ๋ ค๋ผ๋ ์์ ์์ฒญ์ด์๊ณ , ์ด๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ๊ณ ๋ฏผํ๊ฒ ๋์๋ค
JWT ์ธ๊ฐ ํ ํฐ์ ๋ฐ๋์ ํฌํจํ๊ฒ ํ์๊ณ , ๋ด๊ฐ ํ์ฉํ URI๊ฐ ์๋ ๊ฒฝ์ฐ์๋ Spring Security ํํฐ ๊ณผ์ ์์ ๊ฑธ๋ฌ๋ด๋ ์์ผ๋ก ์ธ๊ฐ ์ ๊ทผ์ ํ์ฉํ์๋ค.
๊ด๋ จ ํฌ์คํ : https://velog.io/@99_insung/%EC%9E%AC%EB%96%A8%EC%9D%B4-%EA%B0%9C%EB%B0%9C%EC%9D%BC%EC%A7%80-8-EC2-%ED%95%B4%EC%99%B8-IP-%EC%B0%A8%EB%8B%A8
ํ๋ก์ ํธ๋ฅผ ๋ง๋ฌด๋ฆฌ ํ๊ธฐ ์ํด ํ์ ์ ์ฒด ์์ธ์ ์ฌ๋ผ๊ฐ์ ํ์ฌ์ ์ฐธ์ฌํ์๋ค.
๋ฐ๋ชจ๋ฐ์ด๋ผ๊ณ ํด์ ๊ฐ ์ง๋ถ์(๋ด ํ๊ต๋ LIFO ์ธ์ฐ ์ง๋ถ) ํ๋ก์ ํธ ํ์๋ค์ด ๋ชจ๋ ํ ๊ณณ์ ๋ชจ์ฌ ์๋ก ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ณต์ ํ๋ฉด์ ๊ต๋ฅ ํ๋ ํ์ฌ์๋ค.
๋ค๋ฅธ ํ๋ก์ ํธ์ ๋ถ์ค์ ๋๋ฌ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด์ ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋, ์ ํ ์ฑ์ ์คํ ์ด์ ๋ฐฐํฌ ์ฑ๊ณต ํ์ ๋ ์ฌ์ฌ ๊ธฐ์ค, ๊ทธ๋ฆฌ๊ณ ์น ์์ผ ๊ธฐ๋ฅ์ STOMP ๋ง๊ณ ์ด๋ค ๊ฑธ๋ก ๊ตฌํํ๋์ง ๋ฑ์ ๋ฌผ์ด๋ดค์๋ค.
์ฐ๋ฆฌ ํ์ ์์น ๊ธฐ๋ฐ ์๋น์ค๋ฅผ ์นด์นด์ค API๋ฅผ ์ป๋๋ฐ ๋ค๋ฅธ ํ์๋ค์ ์ด๋ค API๋ฅผ ์ป๋์ง๋ ๋ฌผ์ด๋ดค์๊ณ , ์ ๋ง ๋ค์ํ ์์ด๋์ด๋ฅผ ๋๊ปด๋ณผ ์ ์์๋ค!
๋๋ ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ธฐ ์ , ํด๋น ๋์๋ฆฌ์ Spring Boot ์๋ฒ ํํธ ์ฅ์ผ๋ก ๊ฐ๋ถ ์ง์ฑ
์ ๋งก๊ฒ ๋์๋๋ฐ, ์ด ๋ ์ ์ฒด์ ์ธ ์คํฐ๋๋ง ๊ณ ๋ คํ๊ณ ์ฐ๋ฆฌ ํ์๋ค์ ์๊ฐ๋ณด๋ค ์ ๊ฒฝ์ ๋ง์ด ๋ชป ์จ์คฌ๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋๋ ๋๊ตฐ๊ฐ์๊ฒ ๋ด๊ฐ ์๋ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ฉด์ ๋ค์ ์๊ธฐํ๋ฉฐ ๋๋์ ๋ณผ ์ ์๋ ์๊ฐ์ด์๊ณ , JPA๋ฅผ ๋นจ๋ฆฌ ๊ณต๋ถํด์ ORM์ ๋ํ ์ดํด๋๋ฅผ ๋นจ๋ฆฌ ๋์ด์ฌ๋ ค์ผ๊ฒ ๋ค๋ ๊ณ ๋ฏผ๋ ๋ง์ดํ์๋ค..
๋ ๊ฐ๋ฐ ๋ฟ๋ง์ด ์๋๋ผ ๋ฐฐํฌ, ํด๋ผ์ฐ๋์ ๊ด๋ จ๋ ๋ฅ๋ ฅ๋ ๋ด๊ฐ ๊ฐ์ง ์ ์๋ค๋ฉด ์ค๋ฌด์ ๊ฐ์ ๋ ์ข ๋ ์ ๋ฆฌํ ์ ์๊ฒ ๋ค๋ ๊ณ ๋ฏผ์ ํ๊ฒ ๋์๊ณ , ์์ผ๋ก ๋ฐฑ์๋ ๊ฐ๋ฐ ๋ฟ๋ง์ด ์๋ ๋ฐฐํฌ ํ๊ฒฝ์ด๋ ์ฌ๋ฌ ๋ณด์์ฌํญ ๋ฑ์ ์ ์ฉ ์ํฌ ์ ์๋๋ก ๊ณต๋ถ๋ฅผ ํ๊ฒ ๋ค ๋ค์งํ๊ฒ ๋์๋ค..!