shy published on ํจํค์ง ๋งค๋์ ํจํค์ง ๋งค๋์ ๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ค.
์์กด์ฑ ์ค์น / ์ญ์ / ์
๋ฐ์ดํธ ์์กด์ฑ ๊ด๋ฆฌ ํจํค์ง ๋ฐฐํฌ ์บ์ฑ ๋ณด์ ๋๋ถ๋ถ์ ํจํค์ง ๋งค๋์ ๊ฐ ๊ธฐ๋ฅ์ ์ผ๋ก ๋น์ทํ๊ฒ ๋ณด์ผ ์ ์์ผ๋, ๋ด๋ถ์ ์ผ๋ก๋ ๋งค์ฐ ๋ค๋ฅด๋ค. npm/ yarn classic์ ๊ฒฝ์ฐ node_modules๋ผ๋ ํด๋์์ flatํ๊ฒ ์ ์ฅ๋๋ ๊ตฌ์กฐ๋ก dependency๋ฅผ ์ค์นํ๋ค. ์ด๋ฌํ ๋ฐฉ์์ ๋นํจ์จ์ ์ด๊ณ ๊นจ์ง๋ ๋ฌธ์ ๊ฐ ์๊ธธ ์๊ฐ ์๋ค.
pnpm, yarn berry๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ๋ง์ ํจํค์ง ๋งค๋์ ๋ค ์์์ ์ฐ๋ฆฌ์ ์ํฌํ๋ก์ฐ์ ์๋ง๊ฒ ์ ํํด์ผ ํ ์๊ฐ์ด ์๋ค.
NPM npm์ ๋นํจ์จ์ ์ธ ์์กด์ฑ ๊ฒ์ npm ์ ํ์ผ ์์คํ
์ ์ด์ฉํด์ ์์กด์ฑ์ ๊ด๋ฆฌํ๋ค.
Introduction ๋ค๋ค ์ ์๊ณ ์๋ค์ถ์ด, ์ธ๋ฑ์ค๋ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ฏธํ๋ค. ์ธ๋ฑ์ค๋ ํ๋ฒ ์์ฑ๋๋ฉด ์ถ๊ฐ์ ์ธ ์กฐ์น๊ฐ ํ์์์ง๋ง, ์ฟผ๋ฆฌ ํ๋๋๊ฐ ์ข์ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์๋๊ณ ์ฃผ๊ธฐ์ ์ผ๋ก ANALYZE ๋ช
๋ น์ ์คํํ์ฌ ํต๊ณ๋ฅผ ์
๋ฐ์ดํธํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด๋ค.
ํฐ ํ
์ด๋ธ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๊ฒ ๋๋ฉด ์์คํ
์ ํ
์ด๋ธ๊ณผ ์ธ๋ฑ์ค๋ฅผ ๋๊ธฐํํ๋ ๊ณผ์ ์ด ํ์ํ๋ค. ์ด ๊ณผ์ ์์ DB ์์ง๋ง๋ค ๋ค๋ฅด๊ฒ ์ง๋ง, ํ
์ด๋ธ์ ๋ํ ์์
์ด ๋๋ ค์ง ์ ๋ ์๋ค.
Index Type ์ด ํฌ์คํ
์, postgres ๊ณต์๋ฌธ์๋ฅผ ๋ณด๊ณ ์์ฑํ ๊ธ์ด๋ผ ์๋์ ๊ฐ์ด 5๊ฐ์ ์ธ๋ฑ์ค ํ์
์ ์ค๋ช
ํ๋ค.
shy published on Condition Filtering join ๊ณผ์ ์์, prefix rows๋ ํ ํ
์ด๋ธ์์ ์ฒ๋ฆฌํ ํ๋ค์ด join์ ์ฐ์ด๊ธฐ ์ํด ์ ๋ฌ๋๋ ํ์ ์๋ฏธํ๋ค. ์ผ๋ฐ์ ์ผ๋ก optimizer๋ row์ ์กฐํฉ์ ์๋ฅผ ์ฆ๊ฐ์ํค์ง ์๋ ๋ฐฉํฅ์ผ๋ก prefix count๊ฐ ๋ฎ์ ํ
์ด๋ธ์ join์ ์์ ๋๋ ค๊ณ ๋
ธ๋ ฅํ๋ค.
์กฐ๊ฑด ํํฐ๋ง ์์ด๋, prefix rows๋ where์ ์ ์ํด ์ ํ๋ ํ์ ์์ ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค. ๋ฐ๋ฉด์, ์กฐ๊ฑด ํํฐ๋ง์ ์ฌ์ฉํ๊ฒ ๋๋ฉด, ์ตํฐ๋ง์ด์ ๊ฐ ์ด์ ์ ๊ณ ๋ ค๋์ง ์์ where ์ ์ ๋ค๋ฅธ ์กฐ๊ฑด์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ฏ๋ก prefix rows count๋ฅผ ํฅ์์ํฌ ์ ์๋ค.
EXPLAIN์ ๋ณด๋ฉด, rows column์ access method์ ์ํด ๊ณ์ฐ๋ row estimate๋ฅผ ์๋ฏธํ๊ณ , filtered column์ ๋ฐฑ๋ถ์จ์ ์๋ฏธํ๋๋ฐ, 100์ ํํฐ๋ง์ด ๋ฐ์ํ์ง ์์์์ ์๋ฏธํ๋ค.
shy published on hash join mysql์์ join์ ์คํํ๋ ์ ์ผํ ์๊ณ ๋ฆฌ์ฆ์ BNL ์ด์๋ค. BNL์ ์ธ๋ถ ํ
์ด๋ธ์ ์ค์บํ๋ฉด์ ์ผ์ ํฌ๊ธฐ์ ๋ธ๋ก(๋ฉ๋ชจ๋ฆฌ ๋ฒํผ)๋ฅผ ์ฑ์ธ ๋๊น์ง ํ์ ์ฝ๊ณ , ๋ด๋ถ ํ
์ด๋ธ์ ์ค์บํ๋ฉด์ ์ธ๋ถ ํ
์ด๋ธ์ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ์ ์๋ ํ๊ณผ ์ผ์นํ๋ ์ง ํ์ธํ๊ณ ๊ฒฐํฉํ ํ ๊ฒฐ๊ณผ์ธํธ์ ์ถ๊ฐํ๋ ๋ฐฉ์์ด๋ค.
๊ทธ ์ดํ๋ก๋, hash join์ด๋ผ๋ BNL ๋ณด๋ค ๋ ํจ์จ์ ์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ฒ ๋๋ค. hash join์ ๋ ์
๋ ฅ ์ฌ์ด์์ ์ผ์นํ๋ ํ์ ์ฐพ๊ธฐ ์ํด ํด์ฌ ํ
์ด๋ธ์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.
1 2 3 4 SELECT given_name, country_name FROM persons JOIN countries ON persons.
shy published on Dataframe Basic dataframe์ ๊ฐ๊ฐ์ column์ series์ axis=1์ x์ถ, axis=0๋ y์ถ์ dataframe์ column index๋ series์ name๊ณผ ๋์ผ properties shape : (n_row,n_columns) index : axis=0, RangeIndex df.index -> RangeIndex(start=0,stop=30000,step=1) columns : axis=1, equals to series names axes : [index, columns] ๊ผด dtypes : ๊ฐ column์ type creation 1 2 3 4 5 6 7 8 df = pd.Dataframe({ # series_name : array of object "id":[1,2], "store_nbr":[1,2], "family":['POURTRY','PRODUCT'] }) df = pd.read_csv("some_csv_file.csv") pandas_read_csv_document
strategy pattern ์ด๋? Strategy Pattern์ ๊ฐ์ฒด๋ด์์ ํ๋์ ๋ฐ๊ฟ ์ ์๊ณ , original context class ๋ด์์ ์๋ก ์ํธ๊ตํ ํ ์ ์๋ ํจํด์ ์๋ฏธํฉ๋๋ค. ์ฆ, ์๊ณ ๋ฆฌ์ฆ์ ์บก์ํํ์ฌ ๋ณ๊ฒฝ๊ฐ๋ฅํ๋๋ก ํด์ฃผ๋ ๋์์ธ ํจํด์ ์๋ฏธํฉ๋๋ค. ์ ๊ตฌ์กฐ์์ ๊ฐ์ฅ ์์์ ์๋ class๋ฅผ context class๋ผ ํ ๋, context class์ ์ญํ ์ strategy interface๋ฅผ ์ฐธ์กฐํ๋ ๊ฒ์
๋๋ค. strategy interface ๋ ๋ชจ๋ ๊ฒฌ๊ณ ํ strategies์ ๊ณตํต๋๋ ๋ถ๋ถ์ด๊ณ , ๊ฒฌ๊ณ ํ strategy๋ ์ด๋ค ํ๋์ ํด์ผํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ถ๋ถ์
๋๋ค. ์ด๋ ๊ฒ ๋์์ธ์ ๊ตฌ์ฑํ๋ค๋ฉด, context class๋ ๊ฐ strategy๊ฐ ์ด๋ค ์ญํ ์ ํ๋ ์ฐธ์กฐํ๋ strategy๊ฐ ๊ทธ ํ๋์ ์ฌ์ฉํ๋๋ก ๋ก์ง๋ง ๊ตฌ์ฑํ๋ฉด ๋ฉ๋๋ค.