๐ค study
[GraphQL] graphQL์ด๋? | restAPI vs graphQL | graphQL ์ฅ๋จ์ ๋น๊ต
https://www.youtube.com/watch?v=EkWI6Ru8lFQ&list=PLE0hRBClSk5Lcgv3c-I3PH-1LGkv96oYN&index=19 ๊ฐ๋ facebook์ด ๊ฐ๋ฐํ API๋ฅผ ์ํ query language client์๊ฒ ํ์ํ ๊ฒ๋ง ์ ํํ๊ฒ ์์ฒญํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณต RestAPI ๋ฐฉ์๊ณผ์ ๋น๊ต โ๏ธ RestAPI ์ฅ์ ๋ฉ์๋์ URI๋ฅผ ์กฐํฉํด์ ์์ธก๊ฐ๋ฅํ๊ณ ์ผ์ ํ ์ ๋ณด์ ์์ ์ ์์ฒญํ ์ ์๋ค. ์ ๋ณด๋ค์ ์ฝ๊ณ , ์ฐ๊ณ , ์์ ํ๊ณ , ์ญ์ ํ ์ ์์ ๋ฐ์์ผํ๋ ํ์์ด ์ผ์ ํ ๊ฒฝ์ฐ์ ๋ง์ด ์ฌ์ฉ ์ปค์คํฐ๋ง์ด์งํ ๋ ์ข์. ๋จ์ overfetching : ํ์ํ์ง ์์ ์ ๋ณด๋ค๊น์ง ๋ณผ ์ ์์. → ๋ฐ์ดํฐ ์ธก๋ฉด์์ ์๋ชจ๊ฐ ๋ง์. underfetching : ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ป๊ธฐ ์ํด..
[CSS] flex | align-items | justify-content | flex-direction | flex-wrap | layout ๋ฐฐ์น๋ฐฉ๋ฒ
โจ flex ๊ฐ๋ โ๏ธ flexible box๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค. โ๏ธ layout ๋ฐฐ์น์ ๊ธฐ๋ฅ์ ์ํํ๋ค ์์ฑ 1๏ธโฃ display: flex flex container๋ฅผ ์ ์ํ ๋ ์ฌ์ฉ (1)๊ฐ๋ก๋ฐฉํฅ์ผ๋ก flex item๋ฐฐ์น, (2)๋ด์ฉ๋ฌผ์ width๋งํผ ์ฐจ์ง, (2)container์ ๋์ด๋งํผ height ์ฆ๊ฐ 2๏ธโฃ align-items (1) align-items: flex-start; : ์์ดํ ์ ์์์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ ๊ธฐ๋ณธ๊ฐ (2) align-items: flex-end; : ์์ดํ ์ ๋์ผ๋ก ์ ๋ ฌํจ (3) align-items: center; : ์์ดํ ์ ๊ฐ์ด๋ฐ๋ก ์ ๋ ฌํจ 3๏ธโฃ justify-content ๋ฉ์ธ๋ฐฉํฅ ์์ดํ ์ ๋ ฌ(๊ฐ๋ก๋ฐฐ์น์ผ ๊ฒฝ์ฐ์ ์ผ์ชฝ, ์ธ๋ก ๋ฐฐ์น์ผ ๋์๋ ์์ชฝ ์ ๋ ฌ) (1) just..
[CSS] CSS ๊ฐ์ ์ ํ์ nth-child, nth-of-type
(1) :nth-child(N) : ๋ถ๋ชจ ์ ๋ชจ๋ ์์ ์ค N๋ฒ์งธ (2) M:nth-of-type(N) : ๋ถ๋ชจ ์ M ์์์ค N๋ฒ์งธ ์์ ) ์ ํธ๋ฑ..?๋ง๋ค๊ธฐ : div ์ธ๊ฐ๋ก ๊ฐ box๋ค์ด ๊ตฌ์ฑ๋์ด ์๋ค๊ณ ๊ฐ์ (๊ณ ์ ์ด๋ฆ x) /*1-2.css*/ div { width:100px; height:100px; margin-left:0; background-color:red; } div:nth-child(2) { background-color:gold; margin-left:auto; margin-right:auto; } div:nth-child(3) { background-color:green; margin-left:auto; } section { border:5px dotted gray; } ํน์ ๋ฐฉํฅ..
[VSCode] vscode์์ emmet ์ค์ ํ๋ ๋ฒ / emmet ์ ์ฉ ์๋ ๋ (Mac)๐
1. Code > ๊ธฐ๋ณธ์ค์ > ์ค์ ํด๋ฆญ 2. ํ์ฅ > Emmet ํด๋ฆญ 3. Trigger Expansion On Tab ์ฒดํฌ๋ฐ์ค ์ฒดํฌํด์ฃผ๊ธฐ โผ๏ธ 4. ํ์ธ ex) ํ ์คํธ์ฝ๋ section>div*10 ๐ ๊ณต์๋ฌธ์ https://code.visualstudio.com/docs/editor/emmet Emmet in Visual Studio Code Using Emmet abbreviations inside Visual Studio Code. code.visualstudio.com
[CSS] ๋กค์ค๋ฒ(hover)๋? | hover ์ฌ์ฉ๋ฒ | hover ์์
๐ฅ CSS [์ค์ต 1] ๋กค์ค๋ฒ(hover) ์ฌ์ฉํ๊ธฐ hover๋? : ์ด๋ฏธ์ง, ํ ์คํธ, ๋ฒํผ ๋ฑ์ ๋ง์ฐ์ค ํฌ์ธํฐ๊ฐ ์ฌ๋ผ๊ฐ์ ๋ ์ ํ๋๋ css ์์ ์ฌ์ฉ๋ฒ : ์ด๋ฒคํธ๋ฅผ ์ ์ฉํ๊ณ ์ถ์ ์์น์ :hover ์ ์ธ ์์) div:hover { background-color : pink; } ๋ฐ ๋ค ์๋ ? ์ /* hober.css */ section, div { width: 150px; height: 150px; margin: 20px; background-color: yellow; font-size: 2rem; color: white; text-align: center; } div { background-color: pink; display: none; } section:hover ~ div:not(:nth-..
[GIT] git ๋ธ๋์น ์ ๋ต | git flow, github flow ์ฐจ์ด
โจ ๋ธ๋์น ์ ๋ต ๐ ๋ธ๋์น ์ ๋ต ์ ์ : ๋ธ๋์น ์์ฑ์ ๊ท์น์ ๋ง๋ค์ด ํ์ ์ ์ ์ฐํ๊ฒ ํ๋ ๋ฐฉ๋ฒ๋ก ๋๊ฐ์ง ๋ธ๋์น ์ ๋ต์ผ๋ก ๊ตฌ๋ถ๋๋ค. 1๏ธโฃ git-flow ์ ๋ต 5๊ฐ์ง branch๋ฅผ ๊ด๋ฆฌํ๋ ๋ชจ๋ธ 1. ๋ฉ์ธ ๋ธ๋์น master branch - ๋ฐฐํฌ ๊ฐ๋ฅํ ์ํ๋ง ๊ด๋ฆฌํ๋ ๋ธ๋์น develop branch - ํ์์๋ ์ด ๋ธ๋์น๋ก ๊ฐ๋ฐ ์งํ → ๋์ค์ master๊ณผ ํตํฉ - ๋ค์์ ๋ฐฐํฌํ ๊ฒ์ ๊ฐ๋ฐํ๋๋ฐ ์ฐ์ด๋ ๋ธ๋์น 2. ๋ณด์กฐ ๋ธ๋์น feature branch - ๋ณดํต develop branch์์ ๋ถ๊ธฐ๋์ด ๊ฐ๊ฐ์ ์์ ์ ์ํํ๋ค. - ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ ๊ฐ์ง release branch - develop ๋ธ๋์น๋ก๋ถํฐ release branch๋ฅผ ์์ฑ → ๋ฐฐํฌ ๊ฐ๋ฅํ ์ํ๊ฐ ๋๋ฉด mas..
[Java] length, size()์ ์ฐจ์ด
๐ค length array.length -> ๋ฐฐ์ด์ ๊ธธ์ด ๊ตฌํ ๋ ์ฌ์ฉ int[] array = new int[10]; System.out.println(array.length); // ์ถ๋ ฅ : 10 ๐ค size() list.size() -> collection ํ์ ์ ์ฌ์ด์ฆ๋ฅผ ๊ตฌํ ๋ ํ์ํ๋ค.(ArrayList) List l = new ArrayList(); l.add(1); l.add(2); System.out.println(l.size()); // ์ถ๋ ฅ : 2
[Java] HashMap์ ๋ฆฌ
๐ฅ ์ด ํฌ์คํ ์ ๋ ธ๋ง๋์ฝ๋, ์๋ฐ์์ ์๋์ ์์์ ๋ณด๊ณ ๊ฐ๊ฒฐํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค. HashMap์ key-value ์์คํ ์ผ๋ก Map ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๋ํ์ ์ธ ์ปฌ๋ ์ ํด๋์ค๋ค. ๐ค HashMap๊ณผ List ๋น๊ต List : O(N) - ์ผ์ผํ ์์ดํ ์ ํ์ํ๋ ๊ตฌ์กฐ(์์ดํ ์ด ๋ง์์ง์๋ก ์๊ฐ์ด ์ฆ๊ฐ) HashMap : O(1) - ์ฐพ๋๋ฐ ๋จ 1 ์คํ ๋ง ๋ค์ด๊ฐ => ๋งค์ฐ ๋น ๋ฆ! ๐ค ํด์ฑ(Hashing)์ด๋? hash function์ ํตํด data๋ฅผ ์ ์ฅํ๊ณ ์ฝ์ด์ค๋ ๋ฐฉ๋ฒ key๊ฐ์ ๋ฃ์ผ๋ฉด index(์ ์ฅ์์น, Hash Code)๋ฅผ ์๋ ค์ค๋ค. โญ๏ธ ํด์ฑ ์์ : ํค๋ก ํด์ํจ์ ํธ์ถ -> hash function์ ํตํด hash code์ป์ด์ด -> hash code์ ๋์ํ๋ ๋งํฌ๋๋ฆฌ์คํธ ๋ฐฐ์ด์์ ์ฐพ์ -> ..
[Java] ์ ๊ท์ ์ ๋ฆฌ
๊ณ์ ์ถ๊ฐํ ๊ณํ.. ๐ค ๋ฌธ๋ฒ 1. ์ฐ์๋ ๋ฌธ์์ด ์นํํ๊ธฐ str.replaceAll("\\s{2,}", ""); \\s : ๋ฌธ์์ด (ํน์๋ถํธ์ ์ฐ์์ธ ๊ฒฝ์ฐ \\. ์ ๊ฐ์ด ์ฌ์ฉ) {2,} : 2ํ ์ด์์ 2. ํน์ ๋ฌธ์๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฌธ์ ์ ๊ฑฐ s = s.replaceAll("[^\\d\\-_.]*", ""); //์ซ์๋ -,_,.์ด ๋ค์ด๊ฐ์ง ์์ผ๋ฉด ๋ชจ๋ ์ ๊ฑฐ \\d : ์ซ์(0-9)๋ฅผ ์๋ฏธ ^ : (์ค๊ดํธ ์์ ๋ค์ด๊ฐ ์๋ ๊ฒฝ์ฐ)not์กฐ๊ฑด, "๊ทธ ๋ค์ ๋ค์ด๊ฐ๋ ๋ฌธ์์ด์ ํด๋นํ์ง ์์ผ๋ฉด ~" ์ด๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง. \\ : \d์ ๊ฐ์ \๊ฐ ์์ฒด์ ์ผ๋ก ๋ค์ด๊ฐ๋ ๋ฌธ๋ฒ์ด๋ ํน์๋ฌธ์์ ์ฌ์ฉ์ ํ์ํจ 3. ํน์ ๋ฌธ์๋ก ์์ํ๊ฑฐ๋ ์ข ๋ฃํ๋ ๊ฒฝ์ฐ์ ์ ๊ฑฐ new_id = new_id.replaceAll("^[.]|[..
[Java] ArrayList<Integer>๋ฅผ int[]๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ
1. int์ Integer์ ์ฐจ์ด int๋ primitive ์๋ฃํ์ผ๋ก ์ฐ์ฐ์ด ๊ฐ๋ฅํ์ง๋ง null๋ก ์ด๊ธฐํ ํ ์ ์๋ค๋ ์ ์ด ํน์ง์ด๋ค. Integer๋ Wrapper ํด๋์ค๋ก ์ฐ์ฐ์ด ๋ถ๊ฐ๋ฅํ์ง๋ง null๊ฐ์ ๊ฐ์ง ์ ์๋ค. ์ ์ธ int i = 0; Integer j = new Integer(10); Integer๊ฐ ์ฐ์ฐ์ ํ๊ธฐ ์ํด์๋ Unboxing๊ณผ์ ์ด ํ์ํ๋ค. Integer j = new Integer(5); int k = j.intValue(); //unboxing 2. ArrayList๋ฅผ int[]๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ List list = new ArrayList(Arrays.asList(1,2,3,4)); System.out.println(list.getClass().getSimpleName..