ํ์ฌ ๋ง๋ค๊ณ ์๋ ํ๋ก์ ํธ์์ page4์ ์๋ ๋ฒํผ์ ํ ๊ธํ๋ ๋ถ๋ถ์ด ์๋๋ฐ, ์ด ๋ถ๋ถ์ controller์์ ๊ด๋ฆฌ๋ฅผ ํด์ฃผ๊ณ statelessWidget์์ ์ฐ๊ธฐ ๋๋ฌธ์ dispose๋ฅผ ์ฌ์ฉํด์ ์ฃฝ์ผ์๊ฐ ์๋ ์ํฉ์ด์๋ค. ํด๊ฒฐ์ฑ
1. ๋ฒํผ์ ์ด๊ธฐํํ๋ ํจ์๋ฅผ ๋ง๋ค์ด์ ๋ผ์ฐํ
ํ ๋๋ง๋ค ๊ทธ ํจ์๋ ๊ฐ์ด ์คํ์์ผ์ฃผ๊ธฐ ๊ฐ์ธ์ ์ผ๋ก ์๊ฐํด๋ด๋ ์ ์ข์ ์ฝ๋์ด๊ณ (ใ
ใ
ใ
ใ
ใ
) ํ์ฌ ํ๋ฌํฐ ๊ฐ๋ฐ์์๊ฒ๋ ๋ฌผ์ด๋ณด๋ ์ถ์ฒํ๊ณ ์ถ์ง ์์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ๋ค. ํด๋น ํจ์๋ controller ํ์ผ์ ๋ง๋ค์ด์ ํด๋ฆญ ๋์์ด ์ผ์ด๋ ๋๋ง๋ค ๋ฃ์ด์ฃผ๋ ๋ฐฉ์์ด๋ค. 2. onClose() ๋ฅผ ์ฌ์ฉํด์ ํ์ด์ง๋ฅผ ๋ ๋๋ฉด ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ญ์ ์ํค๊ธฐ ์ด ๋ฐฉ๋ฒ์ด ์ ์ผ ํฉ๋ฆฌ์ ์ธ ๋ฐฉ๋ฒ์ธ๊ฒ ๊ฐ๋ค. ์ด๋ ๊ฒ ํจ์๋ฅผ ๋ฃ์ด์ ์ฌ์ฉํด์ค๋ ๋๊ณ ์๊ทธ๋๋ ๋๋ค. ๋ฌธ์ ..
๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
์น ๊ฐ๋ฐ์์ API๋ฅผ ํธ์ถํ๊ธฐ ์ํด์ ์ ์ผ ๋จผ์ ๋ ์ค๋ฅด๋ ๊ฒ์ด request, axios, jQuery ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ํ์ง๋ง ์ด์ ๋ธ๋ผ์ฐ์ ๊ฐ fetch() ํจ์๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ๋ค(bundle)ํ์ผ์ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๋ ๋ญ๋น๋ฅผ ํ์ง ์์๋ ๋๋ค. ๋ฌผ๋ก ๋๋ ์ฃผ๋ก reactJs, nextJs ๋ก ์์
ํ๊ธฐ ๋๋ฌธ์ axios๋ฅผ ์จ์ ํธ์ถํ๋ค. ๊ทธ๋ฌ๋ค ์ด๋ฒ์ ์ด๋ฏธ์ง url์์ ํ์ผ์ ์ถ์ถํ๊ธฐ ์ํด์ fetch ํจ์๋ฅผ ์จ์ response๋ฅผ ๋ฐ์์ฌ ์ผ์ด ์์๋ค. ๋ฐฉ๋ฒ์ ์ฐพ์์ ์์๋ณด๋ค๊ฐ fetchํจ์๋ฅผ ์ด๋ ๊ฒ ์ธ ์ ์๋ค๋ ๊ฒ๋ ์๊ฒ ๋์๋ค. ๊ฒธ์ฌ๊ฒธ์ฌ- fetch์ ๋ํด ์์๋ณด๊ณ ๊ณต๋ถํ๋ ค๊ณ ํ๋ค. ๐ข Fetch ๋ฅผ ์์! fetch() ํจ์๋ ๋คํธ์ํฌ ์์ฒญํ๊ณ ์๋ต์..
๐ข Error: App(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null. โ
์ค๋๋ง์ ๋ง๋ ์ ๋ง ๊ฐ๋จํ ์๋ฌ! ์ต๊ทผ์ ๋ง๋ ์๋ฌ๋ค์ ๊ธฐ๋ณธ 2์๊ฐ ์ก์๋๊ฒ ๊ฐ์๋๋ฐ, ์ด ์๋ฌ๋ ์ ๋ง ๊ฐ๋จํ๊ฒ ์ฐพ์๋๋ค. ๊ดํธ๊ฐ ์ด๋๊ฐ์์ ๋ฏธ์ฝ๋์๋๊ฒ!! ๊ทธ๋์ return ์ ์๋ฆฌ์ return ์ด ์ ๋๋ก ๋ค์ด๊ฐ์ง ์์์ ์๊ธด ์๋ฌ์ด๋ค! ์ด๋๊ฐ์์ return ์ ์ ๋๋ก ํด์ฃผ์ง ๋ชป ํ ๋ ๋ํ๋๋ ์๋ฌ์ด๋, ์ฐฌ์ฐฌํ ์ฝ๋๋ฅผ ์ดํผ๋ค๋ณด๋ฉด ๋ฐ๋ก ํด๊ฒฐ ํ ์ ์๋ค!
npm install qs Content-Type ์ด๋? api ์ฐ๋ ์์ ์์์ ๋ณด๋ผ ๋, ๊ทธ ์์์ ๋ช
์ํ๊ธฐ ์ํด์ ์ฌ์ฉํฉ๋๋ค. body์ ๋ค์ด๊ฐ ๋ด์ฉ์ header์์ ๋ช
์ํด์ฃผ๋ ๊ฒ์
๋๋ค. ์ด ์ค์์๋ ์ฌ๋ฌ ๊ฐ์ง ํ์
์ผ๋ก ๋๋๋๋ฐ, Textํ์
์ผ๋ก๋ text/css, text/javascript, text/html, text/plain ๋ฑ file์ ์ค์ด๋ณด๋ด๊ธฐ ์ํด์๋ multipart/form-data๊ฐ ์๊ณ Application ํ์
์ผ๋ก๋ application/json, application/x-www-urlencoded๊ฐ ์์ต๋๋ค. REST API๋ฅผ ์ฐ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ฌ ๋ ์ฃผ๋ก application/json, ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋, multipart/form-data๋ฅผ ์ฌ์ฉํ์์ต๋๋ค ์ด๋ฒ์ ..
๐ข ํ๋ก๋์
์ด์ ๋ฐฐํฌ๋ฅผ ์ํด์ ์คํ
์ด์ง์ ๋จผ์ ๋ฐฐํฌ๋ฅผ ํ๊ณ ๊ทธ ์คํ
์ด์ง ๋ฐฐํฌ๋ฅผ ์ํ ๋ธ๋์น develop์ ๋ชจ๋ ์์
๋ค์ ์ฐ์ ์ ์ผ๋ก merge ํ์๋๋ฐ, ๋ค๋ฅธ ํ๋ก์ ํธ๋ก ์ธํด์ master์ develop์ ๋ฒ์ ์ฐจ์ด๊ฐ ์์ด์ ๊ธํ๊ฒ master์์ hotfix ๋ธ๋์น๋ฅผ ๋ฐ์ ์์
์ ์งํํด์ผ ํ๋ค. ์ด๋ฏธ ๋ฐฐํฌ๋์ด์๋ ๋ฒ์ ์์ ๊ธํ ๋ฌธ์ ๋ ๋ฒ๊ทธ๊ฐ ์๊ธฐ๋ฉด ํด๊ฒฐํ๊ธฐ ์ํด์ ์ฐ๋ ์ ๋ต์ ์ด์ผ๊ธฐํ๋ ๊ฒ์ด hotfix์
๋๋ค. ์ฃผ๋ก ๋ธ๋์น๋ก๋ง ์์
์ ํด์๊ธฐ์ ๋ฌด์์ธ์ง ์ ํํ๊ฒ ์ธ์งํ๊ธฐ ์ํด์ ์กฐ์ฌ๋ฅผ ํ๋ค. ์๋์ด : 'ํซํฝ์ค ๋ฐ์ ์งํํด์ฃผ์ธ์~' me : ?????????????? Hotfix๋ ์งง์ ํธํก์ ๋ธ๋์น๋ก develop์์ ๋ฐ๋๊ฒ ์๋๋ผ master์์ ๋ฐ์ ๋ง๋ค์ด์ง๊ณ ํฉ์ณ์ง๋ค. ๊ทธ๋ฆฌ๊ณ develop์๋..
[๋ฌธ์ ๋ฐ์] ์์์์์์์๋ ์ ๋๋์ฒด flutter์ listview ๋ฅผ ์ฐ๋ฉด ์ด์ํ ๊ณต๋ฐฑ์ด ์๊ธฐ๋ ๊ฒ์ธ๊ฐ! ๋ฆฌ์คํธ๋ฅผ ํ๋ฉด ์๋ก ์ฌ๋ฆฌ๋ฉด ์ ์ผ ์ฒ์์ ์ฌ๋ผ์ค๋ ๋ฆฌ์คํธ ์๋ก ๋ง์น margin์ ์ค ๊ฒ์ฒ๋ผ ์ฌ๋ฐฑ์ด ์๊ฒจ๋ ์๋ค. [ํด๊ฒฐ์ฑ
] padding: const EdgeInsets.symmetric( horizontal: 20, vertical: 12), listview๋ฅผ ์จ์ ๋ฐ์ดํฐ๋ฅผ map์ผ๋ก ๋๋ ค์ ํ๋ฉด์ ์ฌ๋ ค ์ค ๋ ์ ์ฝ๋๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ํด๊ฒฐ๋๋ค. horizontal, vertical ์์น๋ฅผ ๋ณํํด์ ๋ฃ์ด์ฃผ๋ฉด ๋๋๋ฐ, ์ด๊ฒ๋ ์ ์จ์ผํ๋ค. ๋ญ๊ฐ ... ๋ฌด์กฐ๊ฑด 0์ผ๋ก ๋ฃ์ด๋ ์ด์ํ๋ค. ๋ญ๊ฐ ์ด๊ฒ ์์ ํ ํด๊ฒฐ์ฑ
์ด ์๋ ๊ฒ ๊ฐ์ ๋ต๋ต~~ํ๋ค. โ ์ฐธ๊ณ ์๋ฃ https://velog.io/@tygerhwang..
๋ฒ์จ 7์์ ๋ฐ์ด ์ง๋๊ฐ๋ค. ๊ฑฐ์ฐฝํ ๊ฒ์ ์์ง๋ง ์ด์ ์ผ ์๋ฐ๊ธฐ ํ๊ณ ๋ฅผ ์์ํด๋ณด๋ ค๊ณ ํ๋ค. ์ฃผ๋์ด ๊ฐ๋ฐ์๊ฐ ๋๋ค ์๋
๋ถํฐ ์ผ์ํด์ค๋ ์ผ์ด ์ด๋ฃจ์ด์ก๋ค. ๋ค๋ฅธ ์ฌ๋๋ค ์ทจ์
ํ๊ธฐ์์๋ ๋ณด๋ ๊ณจ๋ผ์ ์ทจ์
ํ๋ ์ํฉ์ด... ๋์๊ฒ๋ ๋น์ทํ๊ฒ ์ผ์ด๋ฌ๋ค!! ๐ฒ ๋ ์ข์ ์กฐ๊ฑด์ ํ์ฌ๋ฅผ ํฌ๊ธฐํ๊ณ ์ง๊ธ ํ์ฌ๋ฅผ ์ ํํ๋๋ฐ, ์ง๊ธ ํ์ฌ๊ฐ ํจ์ฌ ๋น์ ์ด ์์ด ๋ณด์๊ณ ํ์ฌ ํจ๊ปํ๊ณ ์๋ ๋ด ๋์ด ๋๋์ ๋๋ฃ๋ค์ด ์ข์๋ค. ๋ฌผ๋ก ์ ๋ง ๋ด ๋์ด ๋๋๋ ๋ค 5๋
์ฐจ ์ด์์ ๊ฒฝ๋ ฅ์๋ค์ด๋ค. ใ
ใ
ใ
..... (๋์ด๊ฐ ๋ญฃ์ด์คํ๋!!!) ๋ ๋์ ์ฐ๋ด์ ์ ์ํ๋ ๊ณณ์ ํ์๋ค์ด ๋ค ๋๊ฐ์ ๋ค์ ์
์
์ค์ธ ๊ณณ์ด๋ผ์ ๋น ๋ฅด๊ฒ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฐฐ์๋๊ฐ๊ธฐ์๋ ๋ฌด๋ฆฌ๊ฐ ์์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์ด์ ํ์ฌ์ ํ์ฌ์ ๋จ์๋ค. ์ฐ๋ด์.... ์์ผ๋ก ๊ณ์ ์ค๋ฅผ ํ
๋... (....
๋ฆฌ์กํธ๋ฅผ ์ฐ๋ค ๋ณด๋ฉด ์ปดํฌ๋ํธ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ผ์ด ๋ง๋ค. ์ด๋ ๋ฐ์์ค๋ ๋ฐ์ดํฐ๋ณด๋ค ๋ธ๋ผ์ฐ์ ํ๋ฉด์ด ๋จผ์ ์ฒ๋ฆฌ๋ ๋๊ฐ ์๋ค. ๋ถ๋ช
ํ ์ฒ์์ ํ๋ฉด์ ์ ๋์ค๋๋ฐ ์๋ก๊ณ ์นจ๋ง ํ๋ฉด ํ๋ฉด์ ์ ๋๋ก ์ถ๋ ฅ์ด ์ ๋๋ ๊ฒ์ด ์๋๊ฐ. ๋ถ๋ช
ํ ๋ฐ์ดํฐ๋ ๊ฐ์ง๊ณ ์๋๋ฐ ๋ง์ด๋ค. ์ด๋ด ๋, code์ ์คํ์ ์ด์ง ์ง์ฐ์์ผ์ฃผ๋ฉด ํด๊ฒฐ๋๋ค! ์ด๋ฏธ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ๋ฐ์์ ๊ฐ์ ธ์ค๋ ๊ฒ๊ณผ ํ๋ฉด์ด ์ถ๋ ฅ๋๋ ๊ฒ ๋ ๊ฐ์ง์ ์คํ์ด ์ฑํฌ๊ฐ ๋ง์ง ์์์ ์ด๋ฐ ํ์์ด ๋ํ๋๋ ๊ฒ์ด๋ค. ๐ sleepํจ์๋ ์
๋ ฅํ ์๊ฐ๋งํผ code์ ์คํ์ ๋ฉ์ถฐ์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์๋ ๋ฐ๋ก sleep ํจ์๊ฐ ์กด์ฌํ์ง๋ ์์ง๋ง ํ์ํ๋ค๋ฉด delay ๋ชจ๋์ ์ฌ์ฉํด์ ์ธ ์ ์๋ค. delay๋ชจ๋๋ ์๋๋ค? ๊ทธ๋ฌ๋ฉด setTimeout์ ์ด์ฉํด์ ๋ง๋ค ์..
Demo ํธ์งํ๊ธฐ ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ฆฌ์คํธ ์์ ์ฒดํฌ๋ฐ์ค๊ฐ ๋ํ๋๋ฉด์ ๋ฐ๋ก ์ ํํ ์ ์๊ฒ ๋ ์ด์์์ ๊ตฌํํด์ผํ๋ค. ๋ ์ด์์ ๊ตฌ์ฑ 'ํธ์งํ๊ธฐ' ์ '์ญ์ ํ๊ธฐ' ๋ฒํผ์ boolean ๊ฐ์ผ๋ก ๊ตฌ๋ถํด์ ๋ง๋ค๊ธฐ Listview๋ก checkbox์ text๋ฅผ ํ ์ค๋ก ๋ฃ์ด์ ๋ง๋ค์ด์ค๋ค boolean๊ฐ์ผ๋ก checkbox๊ฐ ๋์ฌ๋์ ์ ๋์ฌ ๋๋ฅผ ๊ตฌ๋ถํ๋ค ๋ฐ๋ณต๋์ ๋ค์ด๊ฐ checkboxmodal widget์ ๋ง๋ค์ด์ค๋๋ค Listview ์์ ๋ค์ด๊ฐ checkboxmodal์ ๋ง๋ค์ด์ค๋๋ค. title๊ณผ time์ ํ์๋ผ์ required๋ฅผ ๋ถ์ฌ์ค๋๋ค. class CheckBoxModal { String title; bool value; String time; String purpose; CheckBoxModal( {r..
React๋ฅผ ์ฌ์ฉํด์ ์๋ฒ์ ํต์ ์ ํ๊ธฐ ์ํด์๋ Axios ํน์ Fetch์ ๊ฐ์ HTTP ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค Fetch API๋ ๋คํธ์ํฌ ์์ฒญ์ ์ํด fetch()๋ผ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ๋ด์ฅ๋์ด์์ด์ ๋ฐ๋ก ์ค์นํ ํ์ ์์ด ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด Axios์ ๊ฒฝ์ฐ์๋ npm์ด๋ yarn์ ์ด์ฉํด์ ์ค์น๋ฅผ ํด์ผํฉ๋๋ค. ๋ ๋ค promise ๊ธฐ๋ฐ์ด๋ผ์ ์ดํ ํน์ ๊ฑฐ๋ถํ ์ ์๋ promise๋ฅผ ๋ฐํํฉ๋๋ค. Axios vs Fetch ๋ฌธ๋ฒ //Axios axios.get( url, { ์ต์
}, {} ) or axios(url, { method: 'get', headers: { "Content-Type: "application/json" }, data: {}, }) //f..
โช Git์ ์๊ณ ๋ณด๋ฉด ์ฐธ ํธํ๊ณ , ๋ค์ฌ๋ค๋ฅํ ๋
์! ๊ทธ๋ ๋ค! ์๊ณ ๋ณด๋ฉด ์ฐธ ๋ค์ฌ๋ค๋ฅํ ๊ธฐ๋ฅ์ ๊ฐ์ง ํธ๋ฆฌํ ์์ด๋ค! ํ์ง๋ง ํ๋ฒ ๊ผฌ์ด๊ธฐ ์์ํ๋ฉด ๋ต์ด ์๋ค ๋จธ๋ฆฌ๊ฐ ์ ์ ์ํ์ค๋ ์ผ๋ค์ด ๋ฐ์ํ๋ค! ํ๋ฒ ๋ฐ์ํ ์ค๋ฅ๋ฅผ ํ๊ณ ๋๋ฉด ๋ค์๋ ์ ๋ง๋ ๊ฒ ๊ฐ์ง๋ง ์ฌ๊ฑธ, ๊นํ์ ๋ ๋ง๋๋ค ๐ **์ค์ ๋ก ์ฐ๋ ์ฉ์ด๋ฅผ ๊ทธ๋๋ก ์ ๊ธฐ ์ํด์ ์ค๊ฐ์ค๊ฐ ์์ด๋จ์ด๋ก ์ฌ์ฐํฉ๋๋คใ
** ์๋ก ์์ํ ํ๋ก์ ํธ ํด๋๋ฅผ ์
ํ
ํ๊ธฐ ์ํด์ ๊ธฐ์กด์ ์๋ ํ๋ก์ ํธ๋ 'A' ์๊ฒฉ ์ ์ฅ์(Remote ์ ์ฅ์, ๋๋ ๊นํ ๋ ํ์งํ ๋ฆฌ)์์ cloneํด์ ์ ์ฐ๋ ํด๋๋ฅผ ์์์น๊ธฐํ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํจํค์ง ๋ฑ์ ์
ํ
ํ๋ค. ์! ์ด์ ์๋ก์ด ํ๋ก์ ํธ์ ๊ธฐ๋ก๋ค์ ์์๊ฐ 'B' ์๊ฒฉ ์ ์ฅ์๋ฅผ ์์ฑํ๋ค. ์ด์ ์์์น๊ธฐํ ํ์ผ๋ค์ 'B' ์๊ฒฉ ์ ์ฅ์์ push ํ๋ฉด ..
โช AccessToken , RefreshToken ์๋ฆฌ AccessToken , RefreshToken์ ๋ก๊ทธ์ธ, ํ์ ๊ฐ์
์ธ์ฆ์ ๊ตฌํํ๋ฉด์ ์ฌ๋ฌ ์ฐจ๋ก ์ด ์ ์ด ์์ง๋ง ์ ๋๋ก ๋ฉ๋ชจํด ๋ ์ ์ ์๋ ๊ฒ ๊ฐ๋ค. ๋๋ ๋จ์ํ accessToken์ ๋ฐ์ ์ดํ์ ๋ง๋ฃ๊ฐ ๋๋ฉด RefreshToken์ ๋ค์ ๋ฐ๊ธ ๋ฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ๊ทธ๊ฒ์ด ์๋์๋ค!! ๐ accessToken๊ณผ refreshToken์ ํฐ ์ฐจ์ด์ ์ ์ ํจ๊ธฐ๊ฐ์์ ๋ณผ ์ ์๋๋ฐ, accessToken ์ด 2-3์๊ฐ ์ ๋๋ผ๋ฉด refreshToken์ 2์ฃผ, ํ ๋ฌ๊น์ง๋ ์ ํจ๊ธฐ๊ฐ์ ์ค์ ํ ์๊ฐ ์๋ค. user๊ฐ ๋ก๊ทธ์ธ์ ์์ฒญํ๋ฉด server์์ DB๋ก ํ์์ ํ์ธํ๊ณ server์์ accessToken๊ณผ refreshToken์ user์๊ฒ ๋ฐ..