SMALL

๋ชฉ๋ก์ „์ฒด ๊ธ€ (58)

You are a developer, not a coder.

Terminal์—์„œ bash_profile์ด ๋จน์ง€ ์•Š์„๋•Œ, ํ•ด๊ฒฐ๋ฒ•

Terminal์—์„œ๋Š” ~/.bash_profile์„ ์„ค์ •ํ•  ๋•Œ๊ฐ€ ๋งŽ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ source ~/.bash_profile์„ ์ž…๋ ฅํ•œ ํ›„, bashํ”„๋กœํŒŒ์ผ ์„ค์ •๊ฐ’์ด ์ œ๋Œ€๋กœ ์…‹ํŒ…๋˜์–ด ์žˆ๋Š”๊ฑธ ํ™•์ธํ–ˆ๋Š”๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ„ฐ๋ฏธ๋„์ฐฝ์„ ๋„๊ณ , ์žฌ์‹œ์ž‘์„ ํ•˜๋ฉด bashํ”„๋กœํŒŒ์ผ ์„ค์ •๊ฐ’์ด ์ œ๋Œ€๋กœ ์ž‘๋™๋˜์ง€ ์•Š๋Š”๊ฑธ ํ™•์ธํ–ˆ๋‹ค. ์ˆ˜๋งŽ์€ ๊ฒ€์ƒ‰๋์— ์ฐพ์€ ์ด๋ฌธ์ œ์˜ ์›์ธ์€ zsh ๋•Œ๋ฌธ!! Mac์˜ ํ„ฐ๋ฏธ๋„ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•˜์—ฌ bash -> zsh ์‰˜์ด ๋˜์–ด์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด๋Š” ๊ธฐ์กด ํ„ฐ๋ฏธ๋„์ด ์ฒ˜์Œ ๊ตฌ๋™๋ ๋•Œ, .bash_profile์„ ์ฝ์–ด๋“ค์—ฌ ํ™˜๊ฒฝ๊ฐ’์„ ์ฐธ๊ณ ํ–ˆ๋‹ค๋ฉด zsh๋Š” ~/.zshrc๋ฅผ ๋ฐ”๋ผ๋ณด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ, ~/.bash_profile์— ์›ํ•˜๋Š” ํ™˜๊ฒฝ์œผ๋กœ ์…‹ํŒ…๊ฐ’์„ ๋„ฃ์€ ๋’ค ํ™ˆ๋””๋ ‰ํ† ๋ฆฌ์— .zshrc ํŒŒ์ผ์„ ์ƒ์„ฑ ํ›„, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ๋ฌธ์„ ์ถ”..

Development Tip 2020. 10. 27. 11:20
Heap ์—๋Œ€ํ•ด์„œ

์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์œ„ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ Goal ์šฐ์„  ์ˆœ์œ„ ํ๋ฅผ ์œ„ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ, ํž™(heap)์— ๋Œ€ํ•ด ์ดํ•ดํ•œ๋‹ค. ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ํž™(heap)์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํž™(heap)์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๋ฅผ ์ดํ•ดํ•œ๋‹ค. [๋“ค์–ด๊ฐ€๊ธฐ ์ „] ์šฐ์„ ์ˆœ์œ„ ํ: ์šฐ์„ ์ˆœ์œ„์˜ ๊ฐœ๋…์„ ํ์— ๋„์ž…ํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ๋“ค์ด ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ„๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ์˜ ์ด์šฉ ์‚ฌ๋ก€ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹œ์Šคํ…œ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ์ œ์–ด ์šด์˜ ์ฒด์ œ์—์„œ์˜ ์ž‘์—… ์Šค์ผ€์ฅด๋ง ์ˆ˜์น˜ ํ•ด์„์ ์ธ ๊ณ„์‚ฐ ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ๋ฐฐ์—ด, ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ, ํž™ ์œผ๋กœ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด ์ค‘์—์„œ ํž™(heap)์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํšจ์œจ์ ์ด๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ ‘ํž™(heap)’์ด๋ž€? ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ์˜ ์ผ์ข…์œผ๋กœ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์œ„ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’..

Development Basic 2020. 6. 3. 23:59
Queue์— ๋Œ€ํ•ด์„œ

java๋กœ ํ(Queue)๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. Goal ํ(Queue)์˜ ๊ธฐ๋ณธ ์—ฐ์‚ฐ์„ ์ดํ•ดํ•œ๋‹ค. java๋กœ ํ(Queue)๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ(Queue)์˜ ๊ฐœ๋… ์ปดํ“จํ„ฐ์˜ ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒ ๊ตฌ์กฐ์˜ ํ•œ๊ฐ€์ง€๋กœ, ๋จผ์ € ์ง‘์–ด ๋„ฃ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋Š” FIFO(First In First Out)๊ตฌ์กฐ๋กœ ์ €์žฅํ•˜๋Š” ํ˜•์‹ ํ(Queue)์˜ ์—ฐ์‚ฐ ํ(Queue)๋Š” FIFO(First-In-First-Out) ๋ฅผ ๋”ฐ๋ฅธ๋‹ค. add(item): item์„ ๋ฆฌ์ŠคํŠธ์˜ ๋๋ถ€๋ถ„์— ์ถ”๊ฐ€ํ•œ๋‹ค. remove(): ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•œ๋‹ค. peek(): ํ์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ํ•ญ๋ชฉ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. isEmpty(): ํ๊ฐ€ ๋น„์–ด ์žˆ์„ ๋•Œ์— true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํ(Queue)์˜ ๊ตฌํ˜„ ํ(Queue)๋Š” ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ..

Development Basic 2020. 6. 3. 23:58
Array, List, Map

1. Array vs List Array ArrayList ์‚ฌ์ด์ฆˆ ์ดˆ๊ธฐํ™”์‹œ ๊ณ ์ • int[] myArray = new int[6]; ์ดˆ๊ธฐํ™”์‹œ ์‚ฌ์ด์ฆˆ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์Œ. ์œ ๋™์  ArrayList myArrayList = new ArrayList(); ์†๋„ ์ดˆ๊ธฐํ™”์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜์–ด ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. ์ถ”๊ฐ€์‹œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์žฌํ• ๋‹นํ•˜์—ฌ ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌ์ด์ฆˆ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ ์ถ”๊ฐ€ ์‚ญ์ œ ๊ฐ€๋Šฅ add(), remove() ๋กœ ๊ฐ€๋Šฅ ๋‹ค์ฐจ์› ๊ฐ€๋Šฅ int[][][] muttiArray = new int [3][3][3]; ๋ถˆ๊ฐ€๋Šฅ 2. List ๋‚ด๋ถ€๊ตฌํ˜„์€ ๋ฐฐ์—ด๋กœ ๋˜์–ด ์žˆ๋‹ค. ์•Œ๋งž๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ๊ณต๊ฐ„๋งŒ ์žˆ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ ์ €์žฅ์†๋„๋Š” ๋น ๋ฅด๋‹ค. ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฏ€๋กœ, ๋ฐ์ดํ„ฐ ํŠน์ง•์ด ํฌ์ง€์…˜๋ณ„๋กœ ์˜๋ฏธ๊ฐ€ ์žˆ์„๋•Œ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ์ข‹๋‹ค. ์ด๋ง์€ ์ฆ‰..

Development Basic 2020. 6. 3. 23:44
Cookie vs Session

์ฟ ํ‚ค์™€ ์„ธ์…˜์€ ๊ฐœ๋ฐœ์ž ๋ง๊ณ ๋„ ์ธํ„ฐ๋„ท ์‚ฌ์šฉ์ž๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ๋งŽ์ด ๋“ค์–ด๋ณธ ๋‹จ์–ด์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ํ—ท๊ฐˆ๋ ค ํ•˜๊ธฐ์— ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋‹จ ์ฟ ํ‚ค๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด์„œ ๊ฐ„๋žตํ•˜๊ฒŒ ๊ทธ๋ฆผ์œผ๋กœ ์„ค๋ช… ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฟ ํ‚ค๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ณผ์ • HTTP์˜ ํŠน์ง•๊ณผ ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  HTTP ํ”„๋กœํ† ์ฝœ์˜ ํŠน์ง•์ด์ž ์•ฝ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. HTTP ํ”„๋กœํ† ์ฝœ ํ™˜๊ฒฝ์—์„œ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” HTTP ํ”„๋กœํ† ์ฝœ์ด connectionless, statelessํ•œ ํŠน์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. connectionless ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ํ•œ ํ›„ ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ๊ทธ ์—ฐ๊ฒฐ์„ ๋Š์–ด ๋ฒ„๋ฆฌ๋Š” ํŠน์ง• HTTP๋Š” ๋จผ์ € ํด๋ผ์ด์–ธํŠธ๊ฐ€ request๋ฅผ ์„œ๋ฒ„์— ..

Development Basic 2020. 6. 3. 11:39
Heap์— ๋Œ€ํ•ด์„œ

1. Heap์˜ ๊ธฐ๋ณธ๊ฐœ๋… ์ฐธ์กฐํ˜•์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ–๋Š” ์ธ์Šคํ„ด์Šค, ๋ฐฐ์—ด, Object๋ฅผ ์ƒ์†ํ•˜๋Š” String ๋“ฑ์ด ์ €์žฅ๋˜๋Š” ์˜์—ญ์ด๋‹ค. ์ด๋•Œ ์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” Stack ์˜์—ญ์˜ ๊ณต๊ฐ„์—์„œ ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ Heap ์˜์—ญ์˜ ์ฐธ์กฐ๊ฐ’์„ new์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ๋ฆฌํ„ด ๋ฐ›๋Š”๋‹ค. ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” Heap์˜์—ญ์˜ ์ฐธ์กฐ ๊ฐ’์„ Stack ์˜์—ญ์˜ ๊ฐ์ฒด๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ, ๋ฆฌํ„ด ๋ฐ›์€ ์ฐธ์กฐ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด์„œ๋งŒ ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋ฅผ ํ•ธ๋“ค๋ง ํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค. Heap์˜์—ญ์€ ์‚ฌ์šฉ์ž์— ์˜ํ•ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋™์ ์œผ๋กœ ํ• ๋‹น๋˜๊ณ  ํ•ด์ œ๊ฐ€ ๋œ๋‹ค.

Development Basic 2020. 5. 28. 16:40
Stack์— ๋Œ€ํ•ด์„œ

1. Stack์˜ ๊ธฐ๋ณธ๊ฐœ๋… ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ๊ด€๊ณ„๋˜๋Š” ์ง€์—ญ ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ ์ด๋‹ค. Stack์€ ์š”์†Œ๋ฅผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ํ•œ์ชฝ ๋‹จ์—์„œ๋งŒ ์ €์žฅ/์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋Š” ์ปฌ๋ ‰์…˜ ์ด๋‹ค. LIFO (Last - In - First - Out) ์ฆ‰, ํ›„์ž…์„ ์ถœ์˜ ๊ตฌ์กฐ๋กœ ๋งŽ์ด ์•Œ๋ ค์ ธ ์žˆ๋Š” ์ปฌ๋ ‰์…˜ ์ด๋‹ค. ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ top ์ด๋ผ๊ณ  ํ•˜๋ฉฐ, Stack์€ top์—์„œ๋งŒ ์‚ฝ์ž…, ์‚ญ์ œ, ์ฝ๊ธฐ ๋™์ž‘์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ํ•จ๊ป˜ ํ• ๋‹น๋˜๋ฉฐ, ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ์™„๋ฃŒ๋˜๋ฉด ์†Œ๋ฉธํ•œ๋‹ค. Stack ์˜์—ญ์— ์ €์žฅ๋˜๋Š” ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ ์ •๋ณด๋ฅผ ์Šคํƒ ํ”„๋ ˆ์ž„ (Stack Frame)๋ผ๊ณ  ํ•œ๋‹ค. ์ปดํŒŒ์ผ ์‹œ์— ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค. 2. Java์—์„œ์˜ Stack Method ์ข…๋ฅ˜ Method ์ข…๋ฅ˜ ๋™์ž‘ ์„ค๋ช… pop() Delete, Read ..

Development Basic 2020. 5. 28. 00:29
์ •์  ์ฝ˜ํ…์ธ ๋ฅผ ๋‚ฎ์€ ๋น„์šฉ์œผ๋กœ ๋ฐฐํฌ

์ •์  ์ฝ˜ํ…์ธ  ์ „๋‹ฌ ๋น„์šฉ์„ ์ค„์ด๋ ค๋ฉด CloudFront, S3๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. CloudFront๋Š” CDN์˜ ์ผ์ข…์œผ๋กœ ์„ธ๊ณ„ ๊ฐ์ง€์— ๋ฐฐ์น˜๋œ ์„œ๋ฒ„์—์„œ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐœ์‹œํ•˜๊ณ  ์ „๋‹ฌํ•œ๋‹ค. ์บ์‹œ์— ํžˆํŠธํ•œ ๊ฒฝ์šฐ์—๋Š” ์›น ์„œ๋ฒ„์™€ DB ์„œ๋ฒ„์— ์ ‘์†ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ๋‚ฎ์ถฐ ์šด์˜ ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ, ์ •์  ์ฝ˜ํ…์ธ ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ์— ๋งค์šฐ ์ ํ•ฉํ•œ ์„œ๋น„์Šค ์กฐํ•ฉ์ด๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•˜๊ฒŒ ๋˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๋Š” CloudFront์—์„œ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋œ๋‹ค. CloudFront์— ์บ์‹œ๋˜์ง€ ์•Š์€ ์ฝ˜ํ…์ธ ๋Š” ์˜ค๋ฆฌ์ง€๋„์ธ ELB๋กœ ๊ฐ€์ง€๋Ÿฌ ๊ฐ„๋‹ค. ์ผ๋‹จ ์‚ฌ์šฉ์ž๊ฐ€ ์•ก์„ธ์Šคํ•œ ์ฝ˜ํ…์ธ ๋Š” CloudFront์— ์บ์‹œ๋œ๋‹ค. ์ดํ›„ ๊ฐ™์€ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋Š” CloudFront๊ฐ€ ์บ์‹œ๋œ ์ฝ˜ํ…์ธ ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐฐํฌํ•œ๋‹ค. CloudFront๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ •์  ์ฝ˜..

AWS 2020. 5. 11. 14:41
LIST