
์ด๋ฒ ์ฑ์ผ์์ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ ๋์๋ URL์ ๋ฐ๊ธ๋ฐ๊ณ ๋ฒํท์ ๋ฐ๋ก ์ ์ฅ์ ํ์์ต๋๋ค. ๊ทธ๋์ Signed URL ๋ฐ๊ธ์ ์ํ POST API๊ฐ ๋ฐ๋ก ์กด์ฌํ์ต๋๋ค. ์ด๋ฏธ์ง ์ ์ฅ์ ์ํ API ํธ์ถ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ฒํท์ ์ด๋ฏธ์ง ์ ์ฅ์ ํ๊ธฐ ์ํ Signed U

UITextView์์ ํ ์คํธ๋ฅผ ์ ๋ ฅ ์ ๊ธ์๊ฐ ๊ณ์ ๊น๋นก๊ฑฐ๋ฆฌ๋ฉด์, ๋ทฐ์์ ์ฌ๋ผ์ก๋ค๊ฐ ์๊ธฐ๋ ๊ฒ์ด ๋ฐ๋ณต๋๋ ํ์์ ๋๋ค .ํ ์คํธ๋ฅผ ํ๋ํ๋ ์ฒ์ฒํ ์ ๋ ฅํ๋ฉด์ ํ ์คํธ๋ฅผ ํ์ ๋, ๋ทฐ์์ ์๋ณด์ด๋ ๊ธ์๋ค์ ๋ชจ๋ ํฐํธ์์ ๋ฏธ์ง์๋๋ ๊ธ์๋ค์ด์์ต๋๋ค.๋์์ธ์์คํ ์์๋ SUIT

๊ตฌ์กฐ์ฒด์ ํด๋์ค์ ์ด๊ธฐํ ๋ฐฉ๋ฒ์ ๋ํด ์์ฑํ์ต๋๋ค. ๊ตฌ์กฐ์ฒด๋ฅผ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฐ์ ์ด๊ธฐํ๋ผ๋ ์ฉ์ด์ ๋ํด ์์๋ณด๋ฉด!์ด๊ธฐํ๋, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ, ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋๋ค.์ด๊ธฐํ์ ์ญํ ์ ๋ชจ๋ ํ๋กํผํฐ๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํํ๋ ๊ฒ์ด๋ฉฐ, ์ธ์คํด

์ผ๋ฐ Stack๊ณผ ๋ค๋ฅด๊ฒ, Lazy ํค์๋๊ฐ ๋ถ์ LazyVStack๊ณผ LazyHStack์ ๊ฐ ์์ดํ ์ด ํ์ํ ๋ ์์ฑ๋ฉ๋๋ค. ์ธ๋ฏธ๋์์ ๋ฐฐ์ด LazyHGrid, LazyVGrid์ ๋น์ทํ ๋ฐฉ์์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค. VStak์ ๋ค์ด๊ฐ๋ ๋ด์ฉ์ด ์์ฒญ ๋ง๋ค๋ฉด Lazy

ํ๋กํผํฐ์ ์ข ๋ฅ์ ๋ํด ์ ๋ฆฌํฉ๋๋ค โ๐ป๊ฐ์ด ์ ์ฅ๋๋ ์ผ๋ฐ์ ์ธ ์์ฑ์ ๋๋ค. var, let ์ผ๋ก ์ ์ธ ๊ฐ๋ฅํ๋ฉฐ, ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํ ๋ ๊ฐ ์ ์ฅ์์ฑ์ ๋ฐ๋์ ๊ฐ์ ๊ฐ์ ธ์ผํฉ๋๋ค. (nil๋ก ์ด๊ธฐํํ๋ ๊ฒ๋ ๊ฐ๋ฅํจ)lazy ํค์๋๋ก ํด๋น ์์ฑ์ ์ด๊ธฐํ๋ฅผ ์ง์ฐ์ํต๋๋ค. ๊ทธ๋์

๋คํธ์ํน ์ธํ ์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฒ ์ด์ค ๋ฆฌ์คํฐ์ค๋ฅผ ์ง์ ํด์ฃผ์์ต๋๋ค.ํ์ง๋ง ์ผ๋ถ API์์ ์์ฒญ์ 200์ผ๋ก ์ ๋๋๋ฐ, ๋์ฝ๋ฉ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค.๋ฌธ์ ์ํฉ์ ๋ค์๊ณผ ๊ฐ์์ต๋๋ค.PATCH api์์๋ ์๋ฒ์์ ์ค์ ํ ๋ฆฌ์คํฐ์ค์ data๊ฐ ์ค์ง ์์์ต๋๋ค. ๋ฒ ์ด์ค ๋ฆฌ

์ด๋ฒ ํฉ๋์ธ๋ฏธ๋์์ ์ ํฌ ํ์ด ๋งก์ ์๋น์ค๋ ํฌ๋๋ฉ์ดํธ์์ต๋๋ค.๊ทธ ์ค ์ ๋ ์บ๋ฆฐ๋๋ฅผ ๊ฐ์ ธ์ค๊ฒ ๋์๋๋ฐ์..์บ๋ฆฐ๋ UI ์์ ์ด ์ผ์ถ ์๋ฃ๋์๋๋ฐ, ์ ๋ฆฌ ๊ฒธ ํ๊ณ ๊ฒธ ์ํฐํด ์์ฑ๊ฒธ... ์ฌํผ ์์ฑํด๋ณด๋ ค๊ณ ํฉ๋๋ค.์ด๋ ๊ฒ ์๊ธด ์บ๋ฆฐ๋๋ฅผ ๋ง๋ค๊ฑด๋ฐ์.์ด๋ ๊ฒ ๊ตฌ์กฐ๋ฅผ ์งฐ๊ณ , ๋ฌ๋ ฅ ๋ถ๋ถ

์ด๋ฒ ํฉ๋์ธ๋ฏธ๋์์๋ SwiftLint๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ๋๋ฐ์.SwiftLint๋ ๋ฌด์์ธ์ง, ๋ ๊นํ๋ธ ์ก์ ๊ณผ ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ฑํ๊ฒ ์ต๋๋ค.SwiftLint๋ ์ฝ๋ ์คํ์ผ์ ๋ถ์ํด์ฃผ๋ ์ ์ ๋๊ตฌ์ธ๋ฐ์. ๋ด๊ฐ ์์ฑํ ์ฝ๋๋ค์์ ๊ท์น์ ์ด๊ธ๋๋ ์ฝ๋๋ฅผ ์ฐพ์๋ด์

์ด๊ฑฐํ์ ์ฐ๊ด์ฑ์ด ์๋ ๊ฐ๋ค์ ๋ชจ์๋ ๊ฒ์ ๋๋ค. ์ด๊ฑฐํ์ ์ผ๊ธ๊ฐ์ฒด๋ก์ ํ๋กํผํฐ๋ฅผ ๊ณ์ฐ ๋ฐ ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํ๋ ์ธ์คํด์ค ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค๊ณ ํ๋๋ฐ์. ์์งํ ๋ฌด์จ๋ง์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ผ๋๊น ์ฒ์๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค. ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ฒด๋ค์ ์ผ๊ธ๊ฐ์ฒด๋ผ๊ณ ํ

์ค์ํํธ์์๋ let, var๋ก ์์&๋ณ์๋ฅผ ์ ์ธํ๊ฒ ๋๋๋ฐ์. ์ด๋ ๊ฒ๋ง ์์ฑํ๋ฉด Type Annotation missing์ด๋ผ๋ ์๋ฌ๊ฐ ๋๊ฒ ๋ฉ๋๋ค. ์๋ฌ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๋ณ์์ ํ์ ์ ๋ช ์์ ์ผ๋ก ์ง์ ํด์ฃผ์ด์ผ ํฉ๋๋ค. ์ปดํ์ผ๋ฌ๊ฐ ๋ณ์, ์์์ ์๋ฃํ์ด ๋ฌด์์ธ์ง ์

๊ณต์๋ฌธ์์์๋ UICollectionView๋ฅผ An object that manages an ordered collection of data items and presents them using customizable layouts.๋ผ๊ณ ์ ์ํ๊ณ ์์ต๋๋ค. ์ ๋ ฌ๋ da

์ด๋ฒ ํ๋ก์ ํธ์์๋ ์๋ฆผ ์์คํ ์ ์ฌ์ฉํ๊ธฐ ์ํด sse๋ฅผ ์ฌ์ฉํ์๋ค. ๋ฉ์ธํ์ด์ง๊ฐ ์๊ณ , ๋ฉ์ผ์ปดํฌ๋ํธ๊ฐ ์์๋ค. ๋ฉ์ธํ์ด์ง์์ sse ๊ตฌ๋ ์ ํ๊ณ , ๋ฉ์ผ์ปดํฌ๋ํธ์์ sse ์๋ฆผ์ ๋ฆฌ์ค๋ํ๋๋ก ํ๋๋ฐ, ์ฐ๊ฒฐ ํ ํ์ด ์ ์ค๋ ๊ฒ์ ํ์ธ๋์ง๋ง ์ค์ง์ ์ธ ๋ฐ์ดํฐ๋ ์ค์ง ์์๋ค

https://securityinit.tistory.com/248

๋ก๊ทธ์ธ ์ ์์ด๋๊ฐ ์ ์ฅ๋๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด React-cookie๋ฅผ ์ฌ์ฉํ์๋ค. 1) react cookie๋ฅผ installํ๋ค. 2) ์ฝ๋ 3) App.js๋ฅผ < CookieProvider >๋ก ๊ฐ์ธ์ฃผ์ด์ผํ๋ค. ํ๋ฒ ๋ก๊ทธ์ธ ์ฑ๊ณต ํ ๋ค์ ๋ก๊ทธ์ธํ์ด์ง์ ๊ฐ
onClick ์ด๋ฒคํธ๋ฅผ ์์ฑํ ๋ ์ด๋ ๊ฒ onclick ์ด๋ฒคํธ ๋ ํธ์ถํ ํจ์ ๋ค์ ()๋ฅผ ๋ถ์ด๊ฒ ๋๋ฉด ํ์ด์ง๊ฐ ์๋ก๊ณ ์นจ๋์๋ง์ ๊ฒฝ๋ก๊ฐ ์ด๋ํ๊ฒ ๋๋ค. ํ์ง๋ง ์ด๋ฐ ์์ผ๋ก ํจ์ ๋ค์ ()๋ฅผ ์ญ์ ํ๊ณ ํธ์ถํ๊ฒ ๋๋ฉด ์ ์์ ์ผ๋ก onclick ์ด๋ฒคํธ๊ฐ ์๋ํ๋ค. ๊ทธ ์ด์ ๋