Today, What I learned? ๋ด ๊ธฐ๋ฅ ๊ตฌํ๋ ํ๊ณ ํ์๋ค ์๋ฌ๋ ๋ด์ฃผ๋ค๋ณด๋ ์ด์ด ๋ น๋ ํ๋ฃจ... ๐ซ ๐ซ ๐ซ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ํ์ด์ด๋ฒ ์ด์ค์์ ์ค์๊ฐ์ผ๋ก DB๋ฅผ ๋ฐ์์ด ํ์ํ ๊ธฐ๋ฅ์ด ์์๋ค. ์ค๋์ ์ด ๋ถ๋ถ์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค! ํ์ด์ด๋ฒ ์ด์ค์์ ์ค์๊ฐ์ผ๋ก DB ๋ฐ์ํ๊ธฐ onSnapShot() ์ด๋ผ๋ ๋ฉ์๋๋ฅผ ์ด์ฉํ๋ค. ์ด ๋ฉ์๋๋ ๋ฌธ์ ์ค๋ ์ท์ ์ฆ์ ์์ฑํ๊ณ , ๋ด์ฉ์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋ค์ ํธ์ถ๋์ด ๋ฌธ์ ์ค๋ ์ท์ ์ ๋ฐ์ดํธํ๋ค. ์์ธํ ๋ด์ฉ์ ์๋ ํ์ด์ด๋ฒ ์ด์ค ๋ฌธ์์์ ํ์ธํด๋ณผ ์ ์๋ค. https://firebase.google.com/docs/firestore/query-data/listen Cloud Firestore๋ก ์ค์๊ฐ ์ ๋ฐ์ดํธ ๋ฐ๊ธฐ | Firebase Firebase Summit..
FirebaseError: Missing or insufficient permissions. ์ค๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๊ฐ ํ์ด์ด๋ฒ ์ด์ค์์ Cloud Firestore๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ค ํ๋๋ฐ ๋ง๋ ํ์ด์ด๋ฒ ์ด์ค ์๋ฌ๋ค. ์ด ์๋ฌ๋ ํ์ด์ด๋ฒ ์ด์ค์ DB ์ ๊ทผ๊ณผ ๊ด๋ จํด์ ๊ด๋ จ๋ ๊ถํ์ด ์์ด์ ๋ฐ์ํ ๊ฒ์ด๋ค. ๊ทธ๋์ ํ์ด์ด๋ฒ ์ด์ค DB์์ ๋ณด์๊ท์น์ ๋ณ๊ฒฝ ํด์ฃผ์ด์ผ ํ๋ค. ํด๊ฒฐ! ํ์ด์ด๋ฒ ์ด์ค ๋ณด์ ๊ท์น ์ค์ ์๋ง firestore๋ฅผ ์์ฑํ๋ค๋ฉด ์ด๋ ๊ฒ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ ์ด ๋์ด์์ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ 5๋ฒ์งธ ์ค์ allow read, write: if true; ๋ก ๋ณ๊ฒฝํ๋ค. ํ์ง๋ง ์ด ์ค์ ์ ๋ชจ๋ ์ฌ๋์ด ๊ถํ์์ด DB๋ฅผ ์ฝ๊ณ ์ธ ์ ์๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ํ ์คํธ ํ๊ฒฝ์์๋ง! ์ ํจํ ํด๊ฒฐ๋ฐฉ๋ฒ์ด๋ผ๋ ์ ... ์ผ๋จ ๋๋ ํ ..
Today, What I learned? ๋ฐ๋๋ผ JS๋ก SPA๋ฅผ ๊ตฌํํ๋ ํ๋ก์ ํธ ์งํ ์ค!.. ๋ด๋น ํ์ด์ง๋ฅผ ๋งํฌ์ ํ๊ณ , ๋ฒํผ์ ํด๋ฆญํ์ ๋ ์ด๋ฒคํธ ์ผ์ด๋๋ ๊ฒ์ SPA ๋ฐฉ์์ผ๋ก ์ด๋ป๊ฒ ๊ตฌํํ๋๊ฐ.. ๐ค ์ ๋ํด์ ์ข ํค๋งธ๋ ์ง๋ผ ์ค๋์ ์ด๊ฒ์ ๋ํด ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค. Cannot read properties of null (reading 'addEventListner') ์ค๋ ๋ง๋ ์๋ฌ. ์ด ์ ์๋ ํ ๋ฒ์ ๋ง๋ ์ ์ด ์๋ ๊ฒ ๊ฐ์ ๋ ์.. ์ผ๋จ ์ ์๋ฌ๋ ์ด๋ฐ ์ด์ ๋ก ๋ฐ์ํ๋ค. html์ด ๋ก๋๋๊ธฐ ์ ์ script๋ฅผ ๋จผ์ ๋ถ๋ฌ์๋ค. ์์ง html์ด ๋ก๋๋๊ธฐ ์ ์ด๊ธฐ ๋๋ฌธ์ addEventListener๋ฅผ ๋ถ์ฌํ DOM์ ์ฐพ์ง ๋ชปํ๋ค. ๊ณ ๋ก null ๊ฐ์ด ๋ฌ๋ค. ์ด ๊ฒฝ์ฐ๋ ๋ณดํต script ํ๊ทธ๋ฅผ ht..
Today, What I learned? ๋ณธ๊ฒฉ์ ์ผ๋ก ํ๋ก์ ํธ๊ฐ ์์๋ ์ฒซ๋ .. ๐ ๊ธฐํ๊ณผ ์์ด์ดํ๋ ์์ ์ ์ก๊ณ ~ ํ๋ก์ธ์ค์ ์ค๋ ๋์ ๋ํ ๊ฐ์๋ฅผ ๋ค์๋ค. ์ฝ์ง ์์ ๊ฐ๋ ์ธ๋ฐ ๋๋ฆ๋๋ก ํ์ด์ ์ ๋ฆฌํด๋ณธ๋ค. ํ๋ก์ธ์ค? ์ด์์ฒด์ ๋ก๋ถํฐ ํ ๋น๋ฐ์ ์์ ์ ๋จ์๋ฅผ ๋งํ๋ค. ์ด ๊ฐ๊ฐ์ ์์ ๋ค์ ์ด์์ฒด์ ๋ก๋ถํฐ ์์คํ ์์์ ํ ๋น๋ฐ๋๋ฐ, ์์์ด๋ผ๋ ๊ฒ์ CPU ์๊ฐ๊ณผ ์คํ์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด๋ค! ์ฝ๊ฒ ๋งํ๋ฉด ํ๋ก์ธ์ค๋ ์คํ๋๊ณ ์๋ ํ๋์ ํ๋ก๊ทธ๋จ์ด๋ค. ์๋์ ๊ฐ์ด ์๋์ฐ์ ์์ ๊ด๋ฆฌ์๋ ๋งฅ์ ํ์ฑ ์ํ ๋ณด๊ธฐ์์ ์คํ๋๊ณ ์๋ ๋ง์ ํ๋ก์ธ์ค๋ค์ ๋ณผ ์ ์๋ค. ํ๋ก์ธ์ค ์ฃผ์๊ณต๊ฐ ๊ฐ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ์ ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ํ๋ก์ธ์ค ์ฃผ์ ๊ณต๊ฐ์ ๊ฐ๋๋ค. ํ๋ก์ธ์ค ์ฃผ์ ๊ณต๊ฐ์ ์ด๋ ๊ฒ ๊ตฌ์ฑ๋์ด ์๋ค. Code ..
Today, What I learned? ํน๊ฐ์์ ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํ์ง ์๊ณ ๋ฐ๋๋ผ JS๋ก SPA๋ฅผ ๊ตฌํํ๋ ๋ฒ๊ณผ, hashed url path์ ๋ํด ๋ฐฐ์ ๋ค! ์ดํ ์ข ์ฐพ์๋ณด๋ ์๊ฐ๋ณด๋ค SPA๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ธ๊ณผ ์์์ด ๋ง์๋ค. ๐ค ๊ฐ์ธ ํ๋ก์ ํธ์ ์ ์ฉํด๋ณด์์ผ๋ฉด ์ข์์ ํ ๋ฐ ์ถ์ ์์ฌ์... ๊ธฐํ๊ฐ ๋๋ฉด ๋ฆฌํฉํ ๋ง ํ ์ ์์ผ๋ฉด ์ข๊ฒ ๋ค.. ์ผ๋จ ์ค๋ ๋ฐฐ์ด ๊ฒ์ ๋ํ ์ ๋ฆฌ ์์! MPA์ SPA ์ฐ์ ์ด ๋ ์ฃผ์ ์ ๋ํด์๋ ์ด์ ์ ๋ฐ๋ก ์ ๋ฆฌํด๋ณด์๋ ๊ธ์ด ์๋ค. (๋ถ์กฑํจ์ด ์์ ์ ์์) https://i-ten.tistory.com/174 MPA,SPA ๋ถํฐ CSR, SSR ๊น์ง ๋ค์ด๊ฐ๋ฉฐ ์ํ ๊ด๋ฆฌ์ ๋ํด์ ์์๋ณด๊ธฐ๋ฅผ ๊ฒฐ์ฌ!.. ์ด๋์๋ถํฐ ์ด๋ฏธ ๋จผ์ ์์ฑ๋ ๋ง์ ๊ธ๋ค์ ๋๋ฌ๋ณด๋ค ๋ณด๋ ์.. ๐คจ ๋จผ..
๋ฌธ์ ์ต๋น๊ฐ์ ์ฃผ์ด์ง ๊ฐ ์ค์์ ๊ฐ์ฅ ์์ฃผ ๋์ค๋ ๊ฐ์ ์๋ฏธํฉ๋๋ค. ์ ์ ๋ฐฐ์ด array๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ต๋น๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ์ต๋น๊ฐ์ด ์ฌ๋ฌ ๊ฐ๋ฉด -1์ return ํฉ๋๋ค. ์ ์ถ๋ ฅ ์์๋ฅผ ๋ณด๋ฉด ์ต๋น๊ฐ์ด 1๊ฐ์ธ ๊ฒฝ์ฐ์๋ ๊ทธ ์ต๋น๊ฐ์ ํด๋นํ๋ ์์๋ฅผ, ์ต๋น๊ฐ์ด ์ฌ๋ฌ ๊ฐ์ผ ๋๋ -1์ ๋ฐํํ๋๋ก ํ๋ค. ํ์ด ๊ณผ์ ์๋ฃ๊ตฌ์กฐ ์ค ํ๋์ธ Map์ ์ด์ฉํด์ ํ๋ ค๊ณ ํ๋๋ฐ, 70์ ๊น์ง๋ฐ์ ๋ฐ์ง ๋ชปํด์ (4๊ฐ์ ํ ์คํธ ์ผ์ด์ค ์คํจ ๐...) ๊ฒฐ๊ตญ ๋น์ทํ ๋ฐฉ๋ฒ์ผ๋ก ํ์ดํ ๋ถ์ ์ฐธ๊ณ ํด์ Map ์ด๊ธฐํ ๋ถ๋ถ์ ์ถ๊ฐํ๋ค. ใ ใ ์ฒ์์ ์๊ฐํ ๊ณผ์ ์ ์ด๋ฌ๋ค. Map ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. ๋ฐฐ์ด์ ์ํํ๋ฉฐ Map์ ๋น๋์๋ฅผ ์ ๋ฐ์ดํธํ๋ค. ์ต๋ ์ต๋น๊ฐ์ ์ฐพ๋๋ค. ์ต๋น๊ฐ์ด ์ฌ๋ฌ ๊ฐ์ธ์ง..
Today, What I learned? ์๊ณ ๋ฆฌ์ฆ ๊พธ์คํ ์์๊ฐ๊ธฐ ๐ช ... ๋ฅผ ๊ณ์ํ๋ฉฐ ์ค๋์ ์ธ ๊ฐ์ง์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด js๋ก ๊ตฌํํด๋ณด์๋ค. ์ถ๊ฐ์ ์ผ๋ก ๋ค์ด๋ฒ ๋ฉ์ธํ์ด์ง ์ฝ๋๋ฅผ ๋ถ์ํ๋ค๊ฐ ์๊ฒ ๋ display: table์ ๋ํด์ ์ ๋ฆฌํด๋ณธ๋ค. ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ๋ ์์๊ฐ ์ ๋ ฌ๋์ด์ผ ํ๊ณ , ๊ทธ ์์์ ๊ฐ ์์๋ณ๋ก ์์ฐจ์ ์ผ๋ก ๋น๊ต๋๊ธฐ ๋๋ฌธ์ ์ด์ค for๋ฌธ์ ์ด์ฉํ๋ค. ๋ฐ๋ผ์ ์๊ฐ ๋ณต์ก๋๋ ๋ชจ๋ O(n^2)๋ฅผ ๊ฐ์ง๋ค. ๋ฒ๋ธ ์ ๋ ฌ ๋ฒ๋ธ ์ ๋ ฌ์ ๋ชจ๋ ์์๋ค์ ๋์์ผ๋ก, ์ธ์ ํ ๋ ๊ฐ์ ๋น๊ตํด์ ์ผ์ชฝ์ ๊ฐ์ด ๋ ํฌ๋ค๋ฉด ์๋ฆฌ๋ฅผ ๋ฐ๊พธ๋ ๊ณผ์ ์ ๋ฐ๋ณตํด์ ์ ๋ ฌํ๋ ๋ฐฉ์์ด๋ค. ์๋ ์ด๋ฏธ์ง๋ฅผ ์ฐธ๊ณ ํ๋ฉด ์ดํด๊ฐ ์ข ๋ ํธํ๋ค! js๋ก ๊ตฌํํ๊ธฐ function bubble_sort(arr) { let an..
Today, What I learned? ์ฐฝ๋ฏผ ํํฐ๋์ CSํน๊ฐ๊ณผ ๊ณ์๋๋ ์๊ณ ๋ฆฌ์ฆ๊ณผ์ ์ ์.. ๐ฅ ์ค๋์ CS ํน๊ฐ์์ ๋ค์ CPU์ ์ด์ง ํ์, ์ฌ๊ทํจ์์ ๋ํด์ ์ ๋ฆฌํ๋ค! ํน๊ฐ ๊ด๋ จํด์๋ง ์ ๋ฆฌํด๋ ์์ด ๊ฝค ๋ง๊ธด ํ์ง๋ง.. ์ ๋ฆฌ ์์! ๐ CPU ํํ๋ค ์ปดํจํฐ ๊ฒฌ์ ์ ๋ฐ์ง ๋ ๋ง์ด ๋ณด๋ ๊ฒ๋ค ์ค์ ํ๋๋ก ์ต์ํ ์ ์๋ค!.. Central Processing Unit์ ์ฝ์๋ก ์ค์ ์ฒ๋ฆฌ ์ฅ์น๋ฅผ ๋งํ๋ค. CPU๋ ์ปดํจํฐ์ ๋๋๋ผ๊ณ ํ ์ ์๋ค. ์ปดํจํฐ ์์คํ ์ ์ฒด๋ฅผ ์ ์ดํ๋ฉฐ ๋ช ๋ น์ด๋ฅผ ์ํํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ค. ์ฒ๋ฆฌ์ฅ์น์ ์ ์ด์ฅ์น๋ก ๊ตฌ์ฑ๋์ด ์๊ณ , CPU์๋ ์บ์ ๊ฐ์ ๋ถ๊ฐ ์ฅ์น๋ ํฌํจ๋์ด ์๋ค. ์ CPU๋ ์ฑ๊ธ ์ฝ์ด์์ ๋ฉํฐ ์ฝ์ด๊ฐ ๋์๋๊ฐ? ๊ฒฐ๋ก ์ ์ผ๋ก ์ฑ๊ธ์ฝ์ด๋ง์ผ๋ก ๋ผ ์ ์๋ ํผํฌ๋จผ์ค์ ํ๊ณ๊ฐ ..
Today, What I learned? ์ด์ ์ ์ด์ด์ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ๋ฅผ ๊ณ์!... ์๋ฃ๊ตฌ์กฐ ์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๋ํด ์ ๋ฆฌํด๋ณด๊ณ ๊ตฌํํด๋ณด๋ ์๊ฐ์ ๊ฐ์ก๋ค. ํํฐ๋์ ์๊ณ ๋ฆฌ์ฆ๊ณผ ์๋ฃ๊ตฌ์กฐ์ ๋ํ ์ฝ๋ฉํธ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๋ํด ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค. ๐ ์๊ฐ ๋ณต์ก๋์ ๊ณต๊ฐ ๋ณต์ก๋ ์๊ฐ ๋ณต์ก๋์ ๊ด๋ จํด์๋ ์์ ์ ๋ธ๋ก๊น ์ ํ ์ ์ด ์๋ค. https://i-ten.tistory.com/154 ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ๋ณต์ก๋์ Big-O ๋ค์ด๊ฐ๋ฉฐ ๊ธฐ์์ด๋ฉด ๊ฐ์ฅ ๋น ๋ฅธ ๊ธธ๋ก ๊ฐ์! ์ถํด๊ทผ์ ํ๊ฑฐ๋, ์น๊ตฌ์์ ์ฝ์ ๋ฑ๋ฑ. ์ด๋๊ฐ๋ฅผ ํฅํ ๋ ์ฐ๋ฆฌ๋ ํญ์ ๋ชฉ์ ์ง๋ก ๊ฐ๋ ๋น ๋ฅธ ๋ฃจํธ๋ฅผ ์ฐพ์๋ณด๋ ๊ฒฝํฅ์ด ์๋ค. ์ปดํจํฐ๋ ๋ง์ฐฌ๊ฐ์ง๋ค. ํ๋ก๊ทธ i-ten.tistory.com ์๊ณ ๋ฆฌ์ฆ์์๋ ์ด์ ๊ณต๊ฐ๋ณต์ก๋๋ณด๋ค ์๊ฐ ๋ณต์ก๋๋ฅผ ๋ ํ์์ ์ผ๋ก ์ฑ๊ฒจ์ผ ํ๋๋ฐ, ..
Today, What I learned? ๋ณธ๊ฒฉ์ ์ธ ์๊ณ ๋ฆฌ์ฆ ๋ฑ๋ฐ ๋ค์ ์์์ด๋ค.. ๐ฅน ์ค๋ ์ฌ๋ฌ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ์๋๋ฐ, ์ ์ญ์ ์ฝ์ง ์๋ค... ์ค๋ ํํฐ๋์ ํน๊ฐ์ ๋ค์ผ๋ฉฐ ๋ฆฌ๋ง์ธ๋ ํ๊ณ ์ถ์ ๋ถ๋ถ์ ์ด๋ ๋ค. 1. ์ฝ๋๋ ์งง๊ฒ ์ง๋ ๊ฒ ํต์ฌ! ์ฝ๊ณ ๋น ๋ฅด๊ณ ๊ฐ๊ฒฐํ๊ฒ ํ๋ก๊ทธ๋จ์ ์ง๋ ๊ฒ ํ๋ก๊ทธ๋๋จธ์ ๋ณธ์ง! 2. ๋์ ํ์ฌ ์ค๋ ฅ์ ์๊ธฐ ๊ฐ๊ดํ๋ฅผ ํ์! ํ๋ก๊ทธ๋๋จธ์ค, ๋ฐฑ์ค ๋ฑ์ ์ด์ฉํด ์ ๋์ ์ฒดํฌ๋ ๋ค 3. ํ๊ธ๋ก ๋ก์ง์ ๋จผ์ ์๊ฐํด๋ณด๊ณ ์ฝ๋๋ฅผ ์ง์. ์ค๋ ํ์๋ ๋ช๋ช ๋ฌธ์ ๋ค ์ค ํ์ด์ฌ์ผ๋ก๋ ํ๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ๋ก๋ ๋ค์ ํ์ด๋ณธ ๋ฌธ์ ๋ฅผ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฌธ์ฅ ๋ด ์ํ๋ฒณ ์ต๋ ๋น๋์ ๊ตฌํ๊ธฐ ๋ฌธ์ฅ ์์์ ์ํ๋ฒณ ๋ณ๋ก ๋น๋์๋ฅผ ์นด์ดํธํด์ ๊ฐ์ฅ ๋น๋์๊ฐ ๋์ ์ํ๋ฒณ์ ๋ฐํํ๋ ๋ฌธ์ ๋ค. ์ด ๋ฌธ์ ๋ ํ์ด์ฌ์ผ๋ก ํ๋ฉด ์ด๋ฐ ๋ฐฉ๋ฒ..
Comment