๐ค ๋ฏธํ ์์ ๋ง๋ ์ฌ์ด๋?
๊ฐ์
์ฝ๋ก๋๋ก ์ธํด ๋ฐ์ํ ์ฝ๋ก๋ ๋ธ๋ฃจ ํ์์ ํํํ๊ธฐ ์ํ ์ดํ๋ฆฌ์ผ์ด์
์์ ๋ฏธํ ์ดํ๋ฆฌ์ผ์ด์ ์์ฅ์ ํ์ ์ผ๋ก ๋ถ๋ฆฌ์ธ ๋ค๋๋ค ์์ ๋ฏธํ ์ดํ๋ฆฌ์ผ์ด์
์ด๋ ค์ ๋ ์
1. ๊ณ์๋๋ ์๊ตฌ์ ๊ทธ๋ก ์ธํ DB, API ๋ณ๊ฒฝ
๋ณดํต API์๋ฒ๋ฅผ ๊ตฌํํ ๋ DB๋ฅผ ์ค๊ณํ๊ณ ๋ฏธ๋ฆฌ API๋ฅผ ์์ฑํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ์ ํ DB๋ ์ง๊ธ๊น์ง ํด์จ ๋ณดํต์ ํ๋ก์ ํธ์์๋ ์ฝ๊ฒ ๋ณ๊ฒฝ๋์ง ์์๋ค... ๊ทธ๋ฌ๋ ์ ์ ์ถ์์ ๊ธฐ์ ๊ณผ ์ฐ๊ณํ ์ด ํ๋ก์ ํธ๋ ๋ฌ๋๋ค....
์ฐ์ ์ ์ํ๋ ๊ฐ๋ฐ์์ ์ ์ฅ์ ๋ง์๋๋ก ํ๋ ๊ฒ์ด ์๋ ์ฌ์ฉ์์ ๋์ฆ๋ฅผ ํ์ ํ ๊ธฐ์ ๋ํ๋์ ์๊ตฌ๋ฅผ ๋ฐํ์ผ๋ก ์ ์ํ๋ค. ๊ทธ๋ก ์ธํด ๋ํ๋์ ์๊ฐ์ด ๋ฌ๋ผ์ง๊ฑฐ๋ ๋ ํ์ํ๊ฒ ์๋ค๋ฉด ๋ฐ๋ก ๋ฐ๋ก DB๋ฅผ ์์ ํ๊ณ API ๋ช ์ธ๋ ๋ด์ฉ๋ ๋ณํ์์ผ์ผ ํ๋ค. DB,,,,API,,,,,๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์ด ์ด๋ ต์ง๋ ์๋ค,, ๊ทธ๋ฌ๋ ๋ง์ ๋ ธ๋์ด ๋ค์ด๊ฐ๋ค....
์ด๋ฌํ ์ํ์ฐฉ์ค๋ฅผ ๊ฒช์ผ๋ฉด์ ๊นจ๋ฌ์ ๊ฒ์ด ์๋ค.
์ฒซ๋ฒ์งธ ์ฒ์๋ถํฐ ์ ๋๋ก๋ ๊ธฐ๋ฅ์ ์ ์ํ๊ณ ์ค๊ณํ์๋ ๊ฒ์ด๋ค. ์ฒ์๋ถํฐ ์ ๋๋ก ์ค๊ณ๋ฅผ ํ๋ค๋ฉด ๋ฐ๋๋ ์ผ๋ค์ด ๊ทธ๋งํผ ์ ์ด์ง์ง ์์๊น???
๋๋ฒ์งธ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๋๋ก ์ค๋ ฅ์ ๊ฐ๊ณ ๋ฆ์! ์ด๋ ๊ฒ ์ง์์ ์ผ๋ก ์ฝ๋๋ฅผ ๋ณ๊ฒฝ์์ผ์ค์ผํ ๋ ํจํด์ ์ค์์ฑ์ ์๊ฒ๋๋ค. ์ฒ์๋ถํฐ ์๋ง์ง์ฐฝ์ ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ฉด ์๊ฐ์ด ๋ฐฐ๋ก ๋ค์์ ๊ฒ์ด๋ค.
์ธ๋ฒ์งธ ์๊ฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ์ข์ ํด๋ค์ ์ฌ์ฉํ์!! ํ๋ก์ ํธ๋ฅผ ์์ํ์ ์ด๊ธฐ์๋ SQL์์ฑ ์ค๋ ฅ ์ข ๊ธฐ๋ฅด๊ณ (๋ฉ๋ ์์ด ๋ณด์ผ๋ ค๊ณ ใ ใ ) cmd๋ฅผ ์ฌ์ฉํด DB์ ์ ์ํ ํ DB๋ฅผ ๊ด๋ฆฌํ๋ค. ํ์ง๋ง ๋ฐ์ ์ผ์ ์์ ์ด๋ฌํ ์ง์ ์ ๋ง ๋ฐ๋ณด๊ฐ์ ์ง์์ ์๊ฒ๋๋ค. ์ข์ phpmyadmin, workbench๋ฅผ ์์ฐ๊ณ cmd๋ฅผ ์ฐ๋ ๊ฒ์ ๋ฌผ๋ก ์ฅ์ ๋ ์๊ฒ ์ง๋ง ๋ฐ์ ํ๋ก์ ํธ ์์์๋ ๋จ์ ์ด ๋ ๋ง์ ๊ฒ ๊ฐ๋ค.
2. AWS S3์ IMG ์ ๋ก๋ํ๊ธฐ
์ง๊ธ๊น์ง Firebase๋ฅผ ์ฌ์ฉํด์ IMG๋ฅผ ์ ๋ก๋ํ๋ ๋ฐฉ์๋ง์ ์ฌ์ฉํ๋ค. ๊ทธ๋์ AWS S3๋ฅผ ์ฌ์ฉํด์ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ๋ ๋ฐฉ์์ ์ ์ํ๋๋ฐ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ ธ์๋ค. ์๋ํ๋ฉด ํด๋ผ์ด์ธํธ, ์๋ฒ ๋ ๋ค ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ชฐ๋๊ธฐ ๋๋ฌธ์ด๋ค...
์ฒ์์๋ MultiPart๋ฅผ ์ฌ์ฉํด์ IMG๋ฅผ ์ฎ๊ธฐ๋ ๊ฒ์ ๋ชฐ๋์๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ Byte[]๋ฅผ Stringํ ์์ผ์ JSON์ผ๋ก ๋ณด๋ธ ๋ค ์ด๋ฅผ ๋ค์ Byte[]์ ์์ผ์ IMG๋ฅผ JSON์ผ๋ก ํต์ ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ์๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋ฐ๋ณด๊ฐ์ ์ง์ด์๋ ๊ฒ ๊ฐ๋ค. ์ด ๋ฐฉ์์ผ๋ก ๊ณ์๋ ์๋๋ฅผ ํ์ง๋ง ์ด๋ฏธ Stringํ ๋ ์ด๋ฏธ์ง ํ์ผ์ ๋ค์ ๋๋์๊ฐ์ง ์์์๋ค. ๊ทธ๋์ ์ฃผ์์ ๊ฐ๋ฐ์ ์ ์๋ ์ฌ๋์๊ฒ ๋ฌผ์ด๋ด Multipart์ ๋ํด์ ๋ฐฐ์ฐ๊ฒ ๋์๋ค. ์ด๋ ๊ฒ ์ข์ ํต์ ๋ฐฉ๋ฒ์ด ์์๋ค๋... ์ ๋ง ์ง๊ธ๊น์ง Byte[] ๋ณ๊ฒฝ์ ์๊ฐ์ ์์ ๋ด ์์ ์ ์๋ง๋ ํ์์ง๋ง ์ด๋ฐ๊ฒ ๋ฐฐ์์ ์ฌ๋ฏธ๋ผ๋ ๊ฒ์ ๋ค์ ํ๋ฒ ๊นจ๋ฌ์ ์ ์์๋ค.
3. SSL ์ ์ฉ
SSL์ ์ ์ฉํด์ HTTPS ํต์ ์ ํ๊ธฐ ์ํด๋ ์๊ฐ์ ๋ง์ด ์ผ์๋ค. SSL์ ์ ์ฉํ๊ธฐ ์ํด์๋ ํด์ผํ ์ผ๋ค์ด ์ ๋ง ๋ง์์๋ค. ๋๋ฉ์ธ ์์ฑ ๋ฐ ์ ์ฉ, ํค ๋ฐ๊ธ ๋ฐ ์ ์ฉ, HTTPS ํต์ ํ ์ ์๋๋ก ์๋ฒ์ ํด๋ผ์ด์ธํธ์์ ์ค์ ๋ฑ ์ ๊ฒฝ ์จ์ฃผ๊ณ ๋ญ๊ฐ ํ๋ ์๋ค์ด์ง๋ฉด ์ ์ฒด์ ์ธ ๋ฌธ์ ๊ฐ ์๊ฒผ์๋ค. ๊ทธ๋์์ธ์ง ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋๋ฐ๊น์ง ์ค ๋ง์ ์๊ฐ์ SSL ์ ์ฉํ๋๋ฐ ์ฌ์ฉํ ๊ฒ ๊ฐ๋ค. ๊ทธ๋๋ SSL๋ฅผ ์ดํดํ๋ฉด์ ๊ฐ๋ฐ์ ํ๋ ๋ค์์๋ ์งง์(?) ์๊ฐ์์ ์ ์ฉํ ์ ์์ ๊ฒ ๊ฐ๋ค.
4. ๋ก์ง ํจ์จ์ฑ
์ฆ๊ฒจ์ฐพ๊ธฐ ์ฐพ์์ฃผ๋ ๊ธฐ๋ฅ, ์ญ๊ฒฐ์ ๊ธฐ๋ฅ, ํํฐ ๊ธฐ๋ฅ ๋ฑ ํต์ ์ ํ ๋ ์์๋๋ ์๊ฐ์ ํจ์จ์ ์ผ๋ก ํด์ผํ๋ ๊ฒ๋ค์ด ๋ง์๋ค. ์ฒ์ ํ๋ก์ ํธ๋ฅผ ์งํํ ๋๋ ์๊ฐํ์ง ์๊ณ ๊ตฌํํ์ง๋ง ์๊ฐ์ด ์ง๋๊ณ ํต์ ์ ํ๊ฒ ๋๋ ๋ก์ง์ด ๋ง์ด ๋ค์ด๊ฐ๊ฒ ๋๊ณ ์๊ฐ ๋ณต์ก๋๋ ํฐ ๊ฒ๋ค์ด ์๊ฒจ์ ํจ์จ์ ์ผ๋ก ์ฝ๋๋ฅผ ๊ตฌํํ์ง ์์ผ๋ฉด 2์ด ์ด์์ ์๊ฐ์ด ๋ค์๋ค. ๊ทธ๋์ ์ต๋ํ ์๊ฐ ํจ์จ์ ์๊ฐํ๋ฉฐ ์ฝ๋๋ฅผ ๊ตฌํํ๋ค. ๋ํ ํ์ด์ง๋ค์ด์ ์ ์ฉ, ํ ์ฌ์ฉ, ์ธ์ ์ฌ์ฉ์ ํ๋ฉด์ ํจ์จ์ ๋์ผ ์ ์์๋ค.
5. OAuth2.0
'์ต๋ํ ๋จ์ํ๋ฉด์ ๊ฐํธํ์'๋ผ๋ ๊ฒ์ด ๋ํ๋๊ป์ ๊ฐ์กฐํ์ ๊ฒ์ด์ ํ๋ก์ ํธ์ ๊ฐ์ฅ ํฐ ์์์๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ๋ ๊ฐํธํ๊ฒ ๋ง๋ค๊ธฐ ์ํด์ KAKAO ๋ก๊ทธ์ธ API๋ฅผ ์ฌ์ฉํ๋ OAuth2.0 ๋ฐฉ์์ ์ฌ์ฉํ๊ฒ ๋์๋ค. ์ฒ์์๋ OAuth2.0์ด๋ผ๋ ๋จ์ด ์กฐ์ฐจ ๋ค์ด๋ณด์ง ๋ชปํ์๋ค. ๊ทธ๋ฌ๋ ๊ตฌ๊ธ, ํ์ด์ค๋ถ๊ณผ ์ฐ๋ํด์ ์ฌ์ฉํ๋ ๋ก๊ทธ์ธ ๋ฐฉ์์ด OAuth2.0 ๋ฐฉ์์์ ์๊ฒ ๋์๊ณ , AccessToken์ ์ฌ์ฉํ๋ ๋ฑ ์ ์ฒด์ ์ธ ๋์ํ๋ ๋ฐฉ์์ ์๊ฒ ๋๋ฉด์ ์ ๋ง ์ข์ ๋ฐฉ์์์ ์ ์ ์๊ฒ ๋์๋ค. OAuth2.0์ ์๋ฆฌ๋ฅผ ํ์ ํ๊ณ , KAKAO ๋ก๊ทธ์ธ ๋ ํผ๋ฐ์ค๋ฅผ ๋ณด๋ฉด์ ์ฝ๋๋ฅผ ๊ตฌํํ๋ ์ด๋ ต์ง ์์๋ค.
( ์ฐธ๊ณ : withseungryu.tistory.com/108?category=890878 )
์์ค ๊ณต๊ฐ๋ ์ดํ ์ถ์ ํ ์ถํ ์ ๋ฆฌํ ํ์ ๊ณต๊ฐํ๊ฒ ์ต๋๋ค.
์ฝ๋ก๋๊ฐ ์ ์ ํด์ง 3์ ์ฏค ์ถ์ ์์ ...
Stack
Back-end Spring boot, MySQL, JPA, AWS S3, Redis
Client : Android, IOS
์์
ํฌ์คํฐ
๋ฐํ ์๋ฃ
์์ฅ