์ „์ฒด ๊ธ€

    1์žฅ. ์ฝ”ํ‹€๋ฆฐ์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ, ์™œ ํ•„์š”ํ•œ ๊ฒƒ์ธ๊ฐ€?

    ๋Œ€์ƒ ํ”Œ๋žซํผ ์„œ๋ฒ„ ์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”ํ‹€๋ฆฐ์€ ์ •์  ํƒ€์ž…์–ธ์–ด์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ํƒ€์ž…์ถ”๋ก  ๊ฐ€๋Šฅํ•˜๊ธฐ์— ํƒ€์ž… ์„ ์–ธ์„ ์ƒ๋žตํ•ด๋„ ๋œ๋‹ค. ๋„์ด ๋ ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์„ ์ œ๊ณตํ•œ๋‹ค. null ์ด ๋ ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์€ ํƒ€์ž… ๋’ค์— ? ๋ฅผ ๋ถ™ํ˜€ ์ฃผ๋ฉด ๋œ๋‹ค. -> null ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š” ์ฝ”๋“œ๋Š” ์• ์ดˆ์— ์ปดํŒŒ์ผ์กฐ์ฐจ ๋˜์ง€ ์•Š๋„๋ก ๋จ...nullPointerException ์ด ์ผ์–ด๋‚˜๋Š” ๋นˆ๋„๋ฅผ ํ™• ์ค„์—ฌ์คŒ! ์ฝ”ํ‹€๋ฆฐ์€ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฐœ๋…์„ ๊ฐ–๋Š”๋‹ค. 1. ์ผ๊ธ‰์‹œ๋ฏผ์ธ ํ•จ์ˆ˜ - ํ•จ์ˆ˜๋ฅผ ์ผ๋ฐ˜ ๊ฐ’์ฒ˜๋Ÿผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค. 2. ๋ถˆ๋ณ€์„ฑ - ๊ฐ์ฒด ์ƒํƒœ ๋ณ€๊ฒฝ x 3. ๋ถ€์ˆ˜ํšจ๊ณผ ์—†์Œ - ์ž…๋ ฅ์ด ๊ฐ™์œผ๋ฉด ํ•ญ์ƒ ๊ฐ™์€ ์ถœ๋ ฅ ์—ฌ๊ธฐ์„œ ์–ป์„์ˆ˜ ์žˆ๋Š” ์ด์ ์€ 1. ๊ฐ„๊ฒฐ์„ฑ 2. ์•ˆ์ •์„ฑ - ๋‹ค์ค‘์Šค๋ ˆ๋“œ์—์„œ๋„ ์•ˆ์ „ํ•˜๋‹ค. ๋ถˆ๋ณ€๋ฐ์ดํ„ฐ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ 3. ์ˆœ์ˆ˜ ํ•จ์ˆ˜๋Š” ์ค€๋น„..

    Kotlin in Action

    ์ด์ œ๋ถ€ํ„ฐ ์ฝ”ํ‹€๋ฆฐ ๊ณต๋ถ€ ์‹œ์ž‘์ž„ ~~~ ์ฝ”ํ‹€๋ฆฐ์ด ๋ฏธ๋ž˜๋‹ค

    ํŽ˜์ด์ง• ํ•˜๊ณ  ์‹ถ์€๋ฐ skip ์„ ์จ๋„ ๊ดœ์ฐฎ์„๊นŒ?

    ํ”ํžˆ pagenation ์„ ํ• ๋•Œ skip ์„ ํ•ด์„œ ์•ž๋ถ€๋ถ„์„ ๋ฌด์‹œํ•œ๋’ค์— limit ์œผ๋กœ ์›ํ•˜๋Š” paging ํฌ๊ธฐ๋งŒํผ์„ ์ž๋ฅธ๋‹ค๊ณ  ์ฒ˜์Œ์— ์ƒ๊ฐํ•  ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ!! ์ด๊ฒƒ์ด ์„ฑ๋Šฅ์„ ์•ˆ์ข‹๊ฒŒ ํ•œ๋‹ค๊ณ  ๋“ค์—ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์…‹์„ ๋ชจ๋‘ build up ํ•œ ํ›„์— skip ์„ ํ•˜๊ธฐ์— ๊ต‰์žฅํžˆ ์„ฑ๋Šฅ์ด ์•ˆ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค.... ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ํŽ˜์ด์ง•์„ ๊ณ ์•ˆํ•  ๊ฒƒ์ธ๊ฐ€?? ๋‚˜์˜ ๊ฐ„๋žตํ•œ ํ•ด๊ฒฐ๋ฒ•์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ๋งˆ์ง€๋ง‰ id ๋ฅผ ๋ณด๋‚ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค... ๋ชฝ๊ณ  db ์—์„œ Objectid ๋Š” ์œ ์ผํ•จ์ด ๋ณด์žฅ๋˜๋Š” 12 byte binary data ์ด๊ณ  ์•ž์˜ 4 byte ๋Š” ์‹œ๊ฐ„์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๊ธฐ์— ํ•ญ์ƒ ์ฆ๊ฐ€ํ•œ๋‹ค. ๋‚˜์˜ ๊ฒฝ์šฐ์—๋Š” ์ตœ์‹ ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์›ํ–‡๊ธฐ์— ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ณด๋‚ด์ค€ id ๋ณด๋‹ค ํฐ๊ฒƒ๋“ค ์ค‘์—์„œ ๋‚ ์งœ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œํ›„์— limit์„ ์จ์„œ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.. ๊ณ ..

    ์™ธ๋ถ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋…ธ์ถœ์‹œํ‚ค์ž

    ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์—์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์™ธ๋ถ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋…ธ์ถœ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ์ค‘์—์„œ external ip ๋ฅผ ์ด์šฉํ•ด์„œ ์™ธ๋ถ€๋กœ ๋…ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ด๊ฒƒ์˜ ์žฅ ๋‹จ์ ์„ ํ•™์Šตํ•˜์—ฌ ๋ณด์ž. What is Service? pod ๋“ค์ด ์…์„ฑ๋˜๊ฒŒ ๋˜๋ฉด ๊ฐ๊ฐ์€ ip ๊ฐ€ ๋žœ๋คํ•˜๊ฒŒ ์ƒ์„ฑ๋œ๋‹ค. ์ด๋Š” ํŒŒ๋“œ๋ณ„๋กœ ๊ฐ๊ฐ ๊ฐ€์ง€๋ฉฐ ํŒŒ๋“œ๊ฐ€ restart ํ• ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กญ๊ฒŒ ํ• ๋‹น ๋ฐ›๋Š”๋‹ค. ๊ทธ๋ฆฌํ•˜์—ฌ ์ด๋“ค์˜ ip ๋ฅผ ๋ฌถ์–ด์ฃผ๊ณ  ์ด๊ฒƒ๋“ค์—๊ฒŒ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ œ๊ณตํ•ด์ฃผ๋Š” '๋ˆ„๊ตฐ๊ฐ€'๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋ฌ๋‹ค. ๊ทธ ์—ญํ• ์„ ์„œ๋น„์Šค๊ฐ€ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค. service ๋Š” ์ง€์ •๋œ ip ๋กœ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ๊ณ ์œ ํ•œ DNS ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. Service Type 1) cluster ip - ๋””ํดํŠธ๋กœ ์„ค์ •์œผ๋กœ ๋”ฐ๋กœ service type ์„ ์„ค์ •์•ˆํ•ด์ฃผ๋ฉด cluster ip ํƒ€์ž…์œผ๋กœ ์„ค์ •๋œ๋‹ค...

    ๋ชฝ๊ณ  DB ๊ฐœ๋…

    What is Mongo - ๋ฌธ์„œ์ง€ํ–ฅ ์ €์žฅ์†Œ๋ฅผ ์ œ๊ณตํ•˜๋Š” no sql databse - Document ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ (Document๋Š” rdbms ์˜ record ์™€ ์œ ์‚ฌ, Json ๊ณผ ๊ฐ™์€ key-value ์Œ์œผ๋กœ ๋˜์–ด ์žˆ์Œ) - Document ๋“ค์˜ ์ง‘ํ•ฉ์€ Collection (collection ์€ rdbms ์˜ table ๊ณผ ์œ ์‚ฌ) what is Advantage or Disadvantage https://elky84.github.io/2018/09/26/mongodb/ Mongodb ์žฅ๋‹จ์ , ํ™œ์šฉ์‹œ ๊ณ ๋ฏผํ•  ์‚ฌํ•ญ๋“ค · Elky Essay elky84.github.io

    Let's Start Mongo

    ์ฒ˜์Œ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชฝ๊ณ ! brew ์„ค์น˜ https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/ mongodb ์„œ๋ฒ„ ์‹คํ–‰ - brew services start mongodb-community mongo ์น˜๋ฉด shell ์— ์ž…์žฅ๋จ mongodb refer https://docs.mongodb.com/manual/introduction/

    Nginx ์—์„œ (IP to Domain) redirection

    IP ๋ฅผ url ๋กœ ์ž…๋ ฅ ํ•˜์˜€์„๋•Œ ๋ฐ”๋กœ domain ์œผ๋กœ redirect ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์„œ๋ฒ„ ์„ค์ •์—์„œ ์„œ๋ฒ„ ์•„์ดํ”ผ๋ฅผ listen ํ•˜๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„์—์„œ ip๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์ด๋ฅผ ๋„๋ฉ”์ธ์œผ๋กœ ๋ฐ”๊ฟ” ์ฃผ๋˜๊ฐ€ ์•„๋‹ˆ๋ฉด ๋„๋ฉ”์ธ์„ ๋ฐ˜ํ™˜ํ•ด ์ฃผ๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์ฃผ์„์„ ํ’€๊ณ  return ๋ถ€๋ถ„์„ ํ•œ์ค„ ์ถ”๊ฐ€ํ•œ๋‹ค. :wq ํ•œํ›„์— sudo service nginx reload sudo service nginx restart ๋ช…๋ น์–ด 'curl -I http://์ž๊ธฐ ์•„์ดํ”ผ' ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•˜๋‹ค. [์ฐธ๊ณ : memorynotfound.com/nginx-redirect-ip-address-domain-name/]

    ๋„๋ฉ”์ธ์— https ์ ์šฉ - letsEcrypt

    https ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ฉด http์˜ ๋ณด์•ˆ ์ทจ์•ฝ์„ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‹ค. https ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” SSL ์ด๋ผ๋Š” ์ธ์ฆ์„œ๋ฅผ ๋ฐ›์•„์•ผํ•œ๋‹ค. ์ด๋ฅผ ๋ฌด๋ฃŒ๋กœ ๋ฐœ๊ธ‰ํ•ด ์ฃผ๋Š” ์‚ฌ์ดํŠธ๊ฐ€ letsEncrypt ์ด๋‹ค. ๊ฐœ์š” Let’s Encrypt๋ž€? Let’s Encrypt๋Š” SSL ์ธ์ฆ์„œ๋ฅผ ๋ฌด๋ฃŒ๋กœ ๋ฐœ๊ธ‰ํ•ด์ฃผ๋Š” CA(Certificate Authorities)์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ธ€๋กœ๋ฒŒ ๊ธฐ์—…์˜ ํ›„์›์„ ๋ฐ›๊ณ  ์žˆ์œผ๋ฉฐ ๋ชจ์งˆ๋ผ(Mozilla) ์žฌ๋‹จ์—์„œ ‘์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ ๊ธฐ๊ด€(Trusted CA)’ ์œผ๋กœ ์ธ์ฆ๋„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฒ ๋ฆฌ์‚ฌ์ธ(VeriSign)์ด๋‚˜ ์ฝ”๋ชจ๋„(Comodo)์™€ ๊ฐ™์€ ์œ ๋ช… ์ธ์ฆ ์—…์ฒด์™€ ๊ฐ™์€ ์‹ ๋ขฐ๋„๋ฅผ ๊ฐ€์ง€๋ฉฐ SSL ์•”ํ˜ธํ™” ๊ธฐ์ˆ  ๋ฐฉ์‹๊ณผ ๋™์ž‘๋„ ์ •ํ™•ํžˆ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ง€ ๋‹ค๋ฅธ ๊ฒƒ์€ ์‚ฌ์ดํŠธ์˜ ์ธ์ฆ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด ..