๋กœ์ผ“๐Ÿพ
article thumbnail
[Network]์™€์ด์–ด ์ƒคํฌ๋ฅผ ์ด์šฉํ•œ SSL ํ•ธ๋“œ์‰์ดํฌ(handhake)์˜ ์ดํ•ด
... 2021. 10. 12. 14:18

์ด ๊ธ€์˜ ์ €์ž‘๊ถŒ์€ ์•„๋ฆฌ๋ฐค ๋‹˜์—๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค. "์•”ํ˜ธํ™” ํ†ต์‹ " ๋ญ”๊ฐ€ ํ• ๋ฆฌ์šฐ๋“œ ๋ธ”๋ก๋ฒ„์Šคํ„ฐ ์‚ฐ์—… ์ŠคํŒŒ์ด ์•ก์…˜ ์˜ํ™”์—์„œ๋‚˜ ๋‚˜์˜ฌ๋ฒ•ํ•œ ๋‹จ์–ด์ฃ  ํ•˜์ง€๋งŒ ์ƒ๊ฐ ์™ธ๋กœ ์šฐ๋ฆฌ ์ผ์ƒ์ƒํ™œ์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์š”. ๊ทธ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๊ฐ€ https ์ฃ  https ๋ž€ ๊ธฐ์กด์— ์ธํ„ฐ๋„ท ๋ฐฉ์‹(http)์— ๋ณด์•ˆ์„ ๊ฒฐํ•ฉํ•œ ๊ฒƒ์ด๊ณ , ์˜ค๋Š˜์€ ๊ทธ "๋ณด์•ˆ" ์ด ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ง€๋Š”์ง€์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•  ๊ฑฐ์˜ˆ์š”. 1. ๊ทธ "๋ณด์•ˆ"์ด ๋ญ”๋ฐ ์•”ํ˜ธํ™” ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ผ๊นŒ? ์•”ํ˜ธํ™” ํ†ต์‹ ์€ SSL(๋˜๋Š” TLS)๋ผ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด์„œ ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ด์š”. ์šฐ๋ฆฌ๊ฐ€ ์ฒ˜์Œ ๋งŒ๋‚œ ์‚ฌ๋žŒ๊ณผ ์ธ์‚ฌํ•˜ ๋“ฏ ์‚ฌ์šฉ์ž์™€ ์›น์„œ๋ฒ„๊ฐ€ ์•”ํ˜ธํ™” ํ†ต์‹ ์„ ํ•  ๋• ์ธ์‚ฌํ•˜๋ฉฐ ์–ด๋–ค ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉ ํ•  ๊ฒƒ์ธ์ง€ ์–˜๊ธฐ๋ฅผ ๋‚˜๋ˆ„์ฃ . ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ SSL Handshake๋ผ๊ณ  ์นญํ•ด์š”. ๋ฒˆ์™ธ์ ์ธ ์–˜๊ธฐ๋กœ h..

article thumbnail
[Network]DNS๊ฐ€ UDP๋ฅผ ์ด์šฉํ•˜๋Š” ์ด์œ 
... 2021. 10. 12. 13:37

TCP ์™€ UDP๋Š” ์‹ ๋ขฐ์„ฑ vs ์‹ ์†์„ฑ ์˜ ํŠน์ง•์„ ๋†“๊ณ  tcp์™€ udp๋ฅผ ์ด์šฉํ•˜๋Š” ์„œ๋น„์Šค ๋“ค์ด ๊ฐˆ๋ฆฐ๋‹ค. TCP๋Š” - HTTP, Email, FIle transfer UDP๋Š” - DNS, Broadcasting ๋„๋ฉ”์ธ ์ด๋ฆ„๊ณผ IP์ฃผ์†Œ๋ฅผ ์„œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” DNS๋Š” ์™œ UDP์— ์†ํ•ด ์žˆ์„๊นŒ? UDP์˜ ํŠน์ง• UDP๋Š” ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ด ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ๊ธฐ๋Šฅ์œผ๋กœ ๋™์ž‘ ์ฆ‰, ๋‹ค์ค‘ํ™”/์—ญ๋‹ค์ค‘ํ™” ๊ธฐ๋Šฅ๊ณผ ๊ฐ„๋‹จํ•œ ์˜ค๋ฅ˜ ๊ฒ€์‚ฌ ๊ธฐ๋Šฅ์„ ์ œ์™ธํ•˜๋ฉด IP์— ์•„๋ฌด๊ฒƒ๋„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๊ฐ€ TCP๋Œ€์‹ ์— UDP๋ฅผ ์„ ํƒํ•œ๋‹ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ฑฐ์˜ IP์™€ ์ง์ ‘ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ tcp์— ๋น„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ–๊ณ  ์žˆ๊ธฐ์— DNS์„œ๋น„์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ ์ ํ•ฉํ•˜๋‹ค. ์—ฐ๊ฒฐ์˜ ์‹œ์ž‘ ๊ณผ ๋ ์„ค์ •์ด ์—†๋‹ค๋Š” ์ ๋งŒ์•ฝ dns๊ฐ€ ..

article thumbnail
[MySQL]Client does not support authentication protocol requested by server; consider upgrading MySQL client ์—๋Ÿฌ
... 2021. 10. 7. 10:33

์ด ๋ฌธ์ œ๋Š” ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์—์„œ mysql ํŒจ์Šค์›Œ๋“œ ํ”Œ๋Ÿฌ๊ทธ์ธ "caching_sha2_password"์„ ์†Œํ™”ํ•˜์ง€ ๋ชปํ•ด์„œ ์ƒ๊ธฐ๋Š” ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์œ ์ €์˜ ํŒจ์Šค์›Œ๋“œ Plusin์„ ๋ฐ”๊ฟ”์ค์‹œ๋‹ค. mysql์— ์ ‘์†ํ•˜์‹œ๊ณ , ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Xptmxm1212!@'; ์ˆ˜์ •์ด ์™„๋ฃŒ ๋˜์—ˆ๋‹ค๋ฉด, ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด Plugin์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„๊ฑฐ์—์š” :) mysql> SELECT Host,User,plugin,authentication_string FROM mysql.user;

article thumbnail
[MySQL] AWS EC2์— ์„ค์น˜ํ•œ MySQL ์™ธ๋ถ€ ์ ‘์† ํ—ˆ์šฉํ•˜๊ธฐ
... 2021. 10. 7. 09:45

1. ec2 ์ ‘์† ํ›„ cd/etc/mysql/mysql.conf.d ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. 2. sudo vi mysqld.cnf 3. bind-address 127.0.0.1 ๊ฐ€ ์ ํžŒ์ค„ ๋งจ์•ž์— # ๋ฅผ ๋„ฃ์–ด ์ฃผ์„์ฒ˜๋ฆฌ ํ•ด์ฃผ๊ธฐ 4. mysql ์ ‘์†(sudo /usr/bin/mysql -u root -p) 5. ์™ธ๋ถ€์ ‘์† ํ—ˆ์šฉ sql๋ฌธ ์ž…๋ ฅ mysql> create user 'root'@'%' identified by '[password]'; mysql> grant all privileges on *.* to 'root'@'%' with grant option; 'root' ๋Œ€์‹  ์œ ์ € ์ด๋ฆ„์„ ๋„ฃ์–ด์ฃผ์‹œ๋ฉด๋˜๊ณ , %๋Š” ๋ชจ๋“  ๊ณณ์—์„œ ์ ‘์† ํ—ˆ์šฉ์ด๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค. 6. mysql ์žฌ์‹œ์ž‘ํ•˜๊ธฐ sudo service mysql res..

article thumbnail
[EKS] AWS EKS๋กœ k8s ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ ํ›„ ALB๋กœ ๋ฐฐํฌํ•˜๊ธฐ
... 2021. 10. 5. 22:15

์ด๋ฒˆ ๊ธ€์„ ์ง„ํ–‰ํ•˜๋ ค๋ฉด ๋จผ์ € ์„ ํ–‰๋˜์–ด์•ผ ํ•  ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ aws, k8s์— ๋Œ€ํ•œ ๊ธฐ์ดˆ ์ง€์‹์ด ์—†์œผ๋ฉด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -k8s 1.19๋ฒ„์ „ -aws cli ์„ค์น˜ ํ›„ aws์— ์•ก์„ธ์Šค ํ•˜๊ธฐ -eksctl ์„ค์น˜ -์•„๋ž˜์™€ ๊ฐ™์€ vpc ๊ตฌ์ถ• ์œ„ 3๊ฐ€์ง€ ์„ ํ–‰์ž‘์—…์ด ๋˜์—ˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. k8s ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ ์šฐ์„  ํผ๋ธ”๋ฆฟ ์„œ๋ธŒ๋„ท 3๊ฐœ๋ฅผ ๊ฐ€์ง€๋Š” VPC๋ฅผ ํ†ตํ•ด EKS๋ฅผ ์ด์šฉํ•˜์—ฌ k8s ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. $ eksctl create cluster -f create-cluster.yaml ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ k8s ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. * create-cluster.yaml apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: "..

article thumbnail
[Linux] ๋ฆฌ๋ˆ…์Šค ๊ทธ๋ฃน ์ƒ์„ฑ/์‚ญ์ œ/ํ™•์ธ/์ถ”๊ฐ€ - groupadd
... 2021. 10. 5. 15:51

๋ฆฌ๋ˆ…์Šค์‹œ์Šคํ…œ์—๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์ž๋™์œผ๋กœ ์‚ฌ์šฉ์ž๋ช…๊ณผ ๊ฐ™์€ ๊ทธ๋ฃน์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” ์ž์‹ ์˜ ๊ณ„์ • ์ด๋ฆ„๊ณผ ๋™์ผํ•œ ๊ทธ๋ฃน์— ๋ฐ˜๋“œ์‹œ ์†ํ•˜๊ฒŒ ๋˜๋ฉฐ, ํŠน์ • ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด์„œ ๊ธฐ์กด์˜ ์‚ฌ์šฉ์ž๋“ค์ด ์†Œ์†๋˜๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฃน ์ถ”๊ฐ€ - groupadd groupadd ๋ช…๋ น์–ด๋กœ ์ƒ์„ฑ๋˜๋Š” ๊ทธ๋ฃน์€ ํŠน๋ณ„ํ•œ ์˜ต์…˜์ด ์ฃผ์–ด์ง€์ง€ ์•Š๋Š” ํ•œ GID๋Š” 499 ๊นŒ์ง€๋Š” ํ• ๋‹น๋˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰, GID ๊ฐ€ 500 ์ด์ƒ์ธ ๊ทธ๋ฃน๋“ค ๊ฐ€์šด๋ฐ ๊ฐ€์žฅ ๋‚ฎ์€ GID ๋ฒˆํ˜ธ๋กœ ๊ทธ๋ฃน์„ ์ƒ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค( -r ์˜ต์…˜ ์‚ฌ์šฉ์‹œ์—๋Š” ์˜ˆ์™ธ). BASH $ groupadd teamzezz ์•„๋ฌด ์˜ต์…˜์—†์ด ์ƒˆ๋กœ์šด ๊ทธ๋ฃน์„ ์ƒ์„ฑํ•˜๋ฉด ๊ธฐ์กด์— ์žˆ๋˜ ๊ทธ๋ฃน์˜ ๋งˆ์ง€๋ง‰ ๋ฒˆํ˜ธ ๋‹ค์Œ๋ฒˆํ˜ธ๋ฅผ GID ๋กœ ํ• ๋‹นํ•˜์—ฌ teamzezz ๋ผ๋Š” ๊ทธ๋ฃน์ด ์ƒ์„ฑ๋œ๋‹ค. BASH grep teamzezz /e..

article thumbnail
[AWS] EC2 root ๊ณ„์ • ์‚ฌ์šฉํ•˜๊ธฐ
... 2021. 10. 5. 15:29

โ–ถ 1. root ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋จผ์ € ๋ณ€๊ฒฝํ•˜์—ฌ ์ค€๋‹ค. #sudo passwd root โ–ถ 2. sshd_config ์„ค์ •์ •๋ณด ๋ณ€๊ฒฝ #sudo vi /etc/ssh/sshd_config :set nu ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋ณด๊ธฐ ์ข‹๊ฒŒ ๋ผ์ธ์ˆ˜ ํ‘œ์‹œ. 38 ๋ผ์ธ์˜ "PermitRootLogin yes" ๋ถ€๋ถ„์˜ ์ฃผ์„์„ ํ•ด์ œํ•˜๊ณ  ์ €์žฅ (:wq) โ–ถ 3. ๋ฃจํŠธ ๊ฒฝ๋กœ์— .ssh ๊ฒฝ๋กœ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ค€๋‹ค. #sudo mkdir /root/.ssh ๋‚˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์ด๋ฏธ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ์–ด ์ƒ์„ฑ๋˜์ง„ ์•Š์•˜๋‹ค. โ–ถ 4. ec2์œ ์ €์˜ ์ธ์ฆํ‚ค๋ฅผ root๋กœ ๋ณต์‚ฌํ•œ๋‹ค. #sudo cp /home/ec2-user/.ssh/authorized_keys /root/.ssh โ–ถ 5. sshd๋ฅผ ๋ฆฌ์Šคํƒ€ํŠธ ํ•œ๋‹ค. #sudo systemctl restart ssh..

article thumbnail
[AWS] ์•„๋งˆ์กด ๋ฆฌ๋ˆ…์Šค์— nginx ์„ค์น˜ํ•˜๊ธฐ
... 2021. 9. 26. 12:58

Amazon Linux 2 OS์˜ EC2์—์„œ nginx ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Amazon Linux 2์—์„œ๋Š” yum์„ ํ†ตํ•œ nginx ์„ค์น˜๊ฐ€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ yum ์„ ํ†ตํ•œ ์„ค์น˜ ์‹œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. sudo yum install nginx yum์œผ๋กœ๋Š” nginx ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. To use, run ์— ๋‚˜์™€์žˆ๋Š” amazon-linux-extras install : topic ๋ฅผ ์ด์šฉํ•˜์—ฌ nginx ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. amazon-linux-extras list ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•  nginx๋ฅผ ์ฐพ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. amazon-linux-extras list | grep nginx ์กฐํšŒ๋œ nginx1์— ๋Œ€ํ•ด์„œ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ..

article thumbnail
[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ Reflection ์‚ฌ์šฉํ•˜๊ธฐ
... 2021. 9. 13. 15:06

์ž๋ฐ”์—์„œ ๋ณ€์ˆ˜๋ช…์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ• 1-์ธ์ˆ˜๋Š” ์—†๊ณ  ์ƒ์„ฑ์ž๋งŒ ์žˆ๋Š” ํด๋ž˜์Šค์—๋งŒ ํ•ด๋‹น ํด๋ž˜์Šค์— ์ธ์ˆ˜๊ฐ€์—†๋Š” ์ƒ์„ฑ์ž๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Class๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Class domainClass = Class.forName("com.femarket.domain." + domainName); Object domain = domainClass.newInstance(); ๋ฐฉ๋ฒ• 2 ํด๋ž˜์Šค์— ์ธ์ˆ˜๊ฐ€์—†๋Š” ์ƒ์„ฑ์ž๊ฐ€์—†๋Š” ๊ฒฝ์šฐ์—๋„ ์ž‘๋™ํ•˜๋Š” ๋” ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์€ ํด๋ž˜์Šค ๊ฐœ์ฒด๋ฅผ ์ฟผ๋ฆฌํ•˜์—ฌ ํ•ด๋‹น Constructor๊ฐœ์ฒด ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ ์ด ๊ฐœ์ฒด์— ๋Œ€ํ•œ newInstance()๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Class clazz = Class.forName("..

article thumbnail
[EKS] EKS๋กœ ๊ตฌ์ถ•ํ•œ cluster ์™ธ๋ถ€ ์ ‘๊ทผํ•˜๊ธฐ
... 2021. 9. 10. 13:08

kube config์—์„œ eks ์ •๋ณด๊ฐ€ ์žˆ์–ด์•ผํ•ด์š” ์›Œ์ปค๋…ธ๋“œ ์ƒ์„ฑ ์ „์—๋„ ์ ‘๊ทผ๊ฐ€๋Šฅํ•ด์š” ๋งˆ์Šคํ„ฐ๋Š” ์–ด์ฐจํ”ผ aws์—์„œ ๊ด€๋ฆฌํ•ด์„œ aws sts get-caller-identity ์ด๊ฑธ๋กœ ๋ณธ์ธ local ์ปดํ“จํ„ฐ์—์„œ access key, secret key ์„ค์ •ํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹œ๊ณ  aws eks --region ${region_name} update-kubeconfig --name ${cluster_name} ์ด๊ฑธ๋กœ kube config ํŒŒ์ผ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š” https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/managing-auth.html ํด๋Ÿฌ์Šคํ„ฐ ์ธ์ฆ - Amazon EKS ์ด ํŽ˜์ด์ง€์— ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์ ์„ ์•Œ๋ ค ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์‹ค๋ง์‹œ์ผœ ๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ž ๊น ์‹œ๊ฐ„..

article thumbnail
[JavaScript] ํ˜„์žฌ ๋‚ ์งœ, ์‹œ๊ฐ„ ๊ตฌํ•˜๊ธฐ (yyyy-MM-dd HH:mm:ss)
... 2021. 9. 9. 14:18

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ํ˜„์žฌ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Date ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. Date ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ์˜ ๋‚ ์งœ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด YYYY-MM-DD์™€ ๊ฐ™์€ ํ˜•์‹์˜ ๋‚ ์งœ ํฌ๋งท์œผ๋กœ ์ถœ๋ ฅ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, Date ๊ฐ์ฒด์—์„œ ์ œ๊ณตํ•˜๋Š” ์ถ”์ถœ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ ์งœ ํฌ๋งท์„ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์ด ์ถ”๊ฐ€์ ์œผ๋กœ ํ•„์š”ํ•˜๋‹ค. ํ˜„์žฌ ๋‚ ์งœ, ์‹œ๊ฐ„ ๊ตฌํ•˜๊ธฐ var today = new Date(); console.log(today); // ๊ฒฐ๊ณผ : Sun May 30 2021 15:47:29 GMT+0900 (๋Œ€ํ•œ๋ฏผ๊ตญ ํ‘œ์ค€์‹œ) // ๊ฒฐ๊ณผ : Sun May 30 2021 15:47:29 GMT+0900 (๋Œ€ํ•œ๋ฏผ๊ตญ ํ‘œ์ค€์‹œ) Date ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ์‹œ์Šคํ…œ์˜ ๋‚ ์งœ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ถœ๋ ฅํ•˜๋ฉด, ํ‰์ƒ์‹œ์— ์‚ฌ์šฉํ•˜๋Š” ๋‚ ์งœ ํฌ๋งท(YYYY-MM-DD ..

article thumbnail
[Javascript] JSON๊ณผ JavaScript Object์˜ ์ฐจ์ด์ 
... 2021. 9. 3. 10:33

ajax ์‚ฌ์šฉํ•˜๋˜ ์ค‘ ํ•œ๊ฐ€์ง€ ์˜๋ฌธ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ์™œ JSON.stringify๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ฉด ์™œ ์Šคํ”„๋ง @RequestBody์—์„œ ๋ฐ›์งˆ ๋ชปํ•˜๋Š”์ง€ ๋ง์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ data : {test : "test"} ์™€ data : JSON.stringify์˜ ํƒ€์ž…๋“ค์„ ์ฝ˜์†”๋กœ ์ฐ์–ด๋ณธ ๊ฒฐ๊ณผ ์ „์ž๋Š” object์ด๊ณ  ํ›„์ž๋Š” string์ด์˜€์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์•„ํ•˜! ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ”ํžˆ ๋งํ•˜๋Š” json๊ณผ js์—์„œ ์‚ฌ์šฉํ•˜๋Š” javacscript Object๋Š” ๋‹ค๋ฅธ๊ฑฐ๊ตฌ๋‚˜! ๊ทธ๋ž˜์„œ ์ด๊ฑฐ์— ๋Œ€ํ•ด ๊ธ€์„ ์ฐพ์•„๋ณธ ํ›„ ์ •๋ง ์ž˜ ์„ค๋ช…ํ•ด์ฃผ์‹  ๊ธ€์ด ์žˆ์–ด์„œ ๊ฐ€์ ธ์™€๋ดค์Šต๋‹ˆ๋‹ค. ์ด๊ธ€์€ yongseong.log ๋‹˜์˜ ๊ธ€์ž…๋‹ˆ๋‹ค. [๊ฐœ๋ฐœ์ƒ์‹] JSON๊ณผ JavaScript Object์˜ ์ฐจ์ด์  ์•ˆ๋…•ํ•˜์„ธ์š”. ๊น€์šฉ์„ฑ์ž…๋‹ˆ๋‹ค.์ •๋ง ๋น„์Šทํ•˜๊ฒŒ ์ƒ๊ฒจ๋จน์€..

[JavaScript] ๊ฒ€์ƒ‰์€ ๊ท€์ฐฎ๊ณ  ๊ธฐ์–ต์€ ์•ˆ๋‚˜๊ณ  ajax ๊ธฐ๋ณธ ์˜ˆ์ œ
... 2021. 9. 3. 10:10

var data = {"name":"John Doe"} $.ajax({ type : "post", url : "/test", dataType : "json", //์„œ๋ฒ„์—์„œ ๋ฐ›์„ ๋ฐ์ดํ„ฐ ํƒ€์ž… contentType: "application/json; charset=utf-8", //์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž… data : JSON.stringify(data), success : function(result) { alert(result.success); }, error: function(e){ alert("fail"); } }); ๋งจ๋‚  ๊นŒ๋จน์–ด์„œ ์ œ๊ฐ€ ๋ณด๊ธฐ ์œ„ํ•ด ์”๋‹ˆ๋‹ค. $.ajax({ type : `http method type`, url : `url`, data : `์„œ๋ฒ„์— ์ „์†กํ•  ๋ฐ์ดํ„ฐ`, contentTy..

article thumbnail
[Network]์‚ฌ์ด๋”(CIDR) ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
... 2021. 8. 31. 21:51

CIDR? AWS, GCP, Azure ๋“ฑ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ๋“ฑ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋„คํŠธ์›Œํฌ ์„ค์ •์—์„œ VPC ๋ฐ Subnet ์„ ์ƒ์„ฑํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ CIDR(Classless Inter-Domain Routing) ๋ธ”๋ก์„ ์ด์šฉํ•˜์—ฌ 10.10.1.0/24 ๋“ฑ๊ณผ ๊ฐ™์ด ํ‘œ์‹œํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž ๊ผฌ๊ผฌ๋งˆ ์‹œ์ ˆ์—๋Š” AWS ์ฝ˜์†”์—์„œ ๋„คํŠธ์›Œํฌ, ์‹œํ๋ฆฌํ‹ฐ๊ทธ๋ฃน ๋“ฑ์—์„œ ๋งŽ์ด ๋ด ์™”์ง€๋งŒ ์„ ๋ฐฐ๋“ค์ด ์•Œ๋ ค์ค€ ๋Œ€๋กœ ๊ทธ๋ƒฅ Cํด๋ž˜์Šค์ผ๋•Œ๋Š” /24, ํŠน์ •IP๋งŒ ์ง€์ •ํ• ๋•Œ๋Š” /32 ๋กœ ์•Œ๊ณ  ์‚ด์•„์™”์—ˆ๊ณ , ์•„์ง๋„ ๊ทธ๋ ‡๊ฒŒ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋ถ„๋ช…ํžˆ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์„œ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ์ •ํ™•ํ•˜๊ฒŒ! ํฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑ ํ•ด ๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ CIDR๋Š” ์‚ฌ์ด๋” ๋ผ๊ณ  ์ฝ์œผ๋ฉด ๋˜๊ณ , ์œ ํˆฝ์—์„œ ๋ฏธ๊ตญ์ธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐœ์Œํ•˜๋Š”๊ฑธ ๋“ค์–ด๋ณด๋‹ˆ ์‹ธ์ด๋” ์ •๋„๋กœ ๋ฐœ์Œ ํ•ฉ..

article thumbnail
[MySQL] ํ”„๋กœ์‹œ์ €๋ฅผ ์ด์šฉํ•œ ๋”๋ฏธ๋ฐ์ดํ„ฐ ์‚ฝ์ž…ํ•˜๊ธฐ
... 2021. 8. 31. 09:54

๋”๋ฏธ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ํ”„๋กœ์‹œ์ € ์ƒ์„ฑ ํŽ˜์ด์ง• ํ…Œ์ŠคํŠธ์™€ ๊ฐ™์ด ๋งŽ์€ ์–‘์˜ ๋”๋ฏธ๋ฐ์ดํ„ฐ(dummy data)๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ํ”„๋กœ์‹œ์ €๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋”๋ฏธ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค. Workbench์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•œ๋‹ค. DELIMITER $$ DROP PROCEDURE IF EXISTS loopInsert$$ CREATE PROCEDURE loopInsert() BEGIN DECLARE i INT DEFAULT 1; WHILE i

article thumbnail
[Network] L4 LoadBalancer์™€ L7 LoadBalancer ๋น„๊ต
... 2021. 8. 31. 09:08

๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ž€? ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” ์„œ๋ฒ„์— ๊ฐ€ํ•ด์ง€๋Š” ๋ถ€ํ•˜(=๋กœ๋“œ)๋ฅผ ๋ถ„์‚ฐ(=๋ฐธ๋Ÿฐ์‹ฑ)ํ•ด์ฃผ๋Š” ์žฅ์น˜ ๋˜๋Š” ๊ธฐ์ˆ ์„ ํ†ต์นญํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ํ’€(Server Pool, ๋ถ„์‚ฐ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์„œ๋ฒ„๋“ค์˜ ๊ทธ๋ฃน) ์‚ฌ์ด์— ์œ„์น˜ํ•˜๋ฉฐ, ํ•œ ๋Œ€์˜ ์„œ๋ฒ„๋กœ ๋ถ€ํ•˜๊ฐ€ ์ง‘์ค‘๋˜์ง€ ์•Š๋„๋ก ํŠธ๋ž˜ํ”ฝ์„ ๊ด€๋ฆฌํ•ด ๊ฐ๊ฐ์˜ ์„œ๋ฒ„๊ฐ€ ์ตœ์ ์˜ ํผํฌ๋จผ์Šค๋ฅผ ๋ณด์ผ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ๋งŒ์•ฝ Scale-out์˜ ๋ฐฉ์‹์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์ฆ์„คํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๋ฉด ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„์‚ฐํ•ด์ฃผ๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค. OSI 7 ๊ณ„์ธต์ด๋ž€? ๋„คํŠธ์›Œํฌ ํ†ต์‹  ์‹œ์Šคํ…œ์€ ํฌ๊ฒŒ ์ผ๊ณฑ ๊ฐ€์ง€์˜ ๊ณ„์ธต(OSI 7 layers, ๊ฐœ๋ฐฉํ˜• ํ†ต์‹ ์„ ์œ„ํ•œ ๊ตญ์ œ ํ‘œ์ค€ ๋ชจ๋ธ)์œผ๋กœ ๋‚˜๋‰œ๋‹ค. ๊ฐ๊ฐ์˜ ๊ณ„์ธต(Layer)์ด L1/L2/L3โ€ฅโ€ฅL7์— ํ•ด๋‹นํ•œ๋‹ค. ์ƒ์œ„ ๊ณ„์ธต์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์žฅ๋น„๋Š” ํ•˜์œ„ ๊ณ„์ธต์˜ ์žฅ..

article thumbnail
[AWS] AWS ๊ด€๋ จ ์ฃผ๋œ ์„œ๋น„์Šค ๋ฐ ์šฉ์–ด
... 2021. 8. 30. 23:14

S3 S3๋Š” AWS๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. 99.999999%๋ผ๋Š” ๋†’์€ ๋‚ด๊ตฌ์„ฑ์ด ํŠน์ง•์ธ ์Šคํ† ๋ฆฌ์ง€๋กœ ๋ฏธ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ ์šฉ๋Ÿ‰ ๋“ฑ์„ ์ •์˜ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ ๊ณต๊ฐœ ์ •์ฑ…, ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”, ๋น„์šฉ ํšจ์œจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์žฅ๊ธฐ ๋ณด๊ด€ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ดํ”„์‚ฌ์ดํด ์ •์ฑ… ๋“ฑ์˜ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์œ ์šฉํ•œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. S3์—์„œ๋Š” ์Šคํ† ๋ฆฌ์ง€์˜ ๊ธฐ๋ณธ ๋‹จ์œ„๋กœ '๋ฒ„ํ‚ท'์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์˜์—ญ์„ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ์•ˆ์— ํŒŒ์ผ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. CloudFront CloudFront๋Š” AWS๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ(Content Delivery Network, CDN) ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. CDN์€ ์ธํ„ฐ๋„ท์—์„œ ์›น ์ฝ˜ํ…์ธ , ์ด๋ฏธ์ง€, ๋™์˜์ƒ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ์„ ๋น ๋ฅด๊ฒŒ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. CloudFront๋Š” ์ „ ..

๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ๋‚ด์šฉ์„ ๋ณด์‹œ๋ ค๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.
article thumbnail
[ElasticSearch+Java] analyze ์ž๋ฐ”์—์„œ ๊ตฌํ˜„ํ•˜๊ธฐ
... 2021. 8. 27. 11:16

ํ‚ค๋ฐ”๋‚˜์—์„œ ์•„๋ž˜ ์ฝ”๋“œ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. analyzer๋Š” ์ปค์Šคํ…€ analyzer ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. tokenizer๋Š” nori๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ , filter๋Š” shingle๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์ž๋ฐ”์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. AnalyzeRequest request = AnalyzeRequest.withIndexAnalyzer("st_pdt", "nori_discard_1", pdt.getS_name()); AnalyzeResponse response = client.indices().analyze(request, RequestOptions.DEFAULT); List tokens = response.getTokens(); for(An..

article thumbnail
[JavaScript] ๋ฌดํ•œ ์Šคํฌ๋กค ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ
... 2021. 8. 27. 10:55

๋ฌดํ•œ ์Šคํฌ๋กค์€ ์ด์ปค๋จธ์Šค ๊ด€๋ จ๋œ ์›น์ด๋‚˜ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ ‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์Šคํฌ๋กค์˜ ์œ„์น˜๊ฐ€ ์–ด๋– ํ•œ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๊ฒŒ ๋˜๋ฉด ์ถ”๊ฐ€์ ์œผ๋กœ ์ƒํ’ˆ๋“ค์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. [JavaScript] ๋ฌดํ•œ ์Šคํฌ๋กค ์‹œ ์ƒํ’ˆ ์œ„์น˜ ์œ ์ง€ ๋ฌดํ•œ ์Šคํฌ๋กค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์žˆ์–ด ๋ฐ˜๋“œ์‹œ ๋ณ‘ํ–‰๋˜์–ด์•ผ ํ•  ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๋ฌดํ•œ ์Šคํฌ๋กค๋กœ ๋ Œ๋”๋ง๋œ ์ƒํ’ˆ์„ ๋ˆ„๋ฅด๊ณ  ๋‹ค์‹œ [๋’ค๋กœ๊ฐ€๊ธฐ]๋ฅผ ํ–ˆ์„ ์‹œ ์—ฌ์ „ํžˆ ๊ทธ ์ƒํ’ˆ์˜ ์œ„์น˜๋กœ ์™€์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ kingofbackend.tistory.com ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€ ๋ฐ”๋กœ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฌดํ•œ ์Šคํฌ๋กค ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. var stopping = false; var end = false; $(window).scroll(function () { var cst = $(window).scrollTop(); var ..

article thumbnail
[JavaScript] ๋ฌดํ•œ ์Šคํฌ๋กค ์‹œ ์ƒํ’ˆ ์œ„์น˜ ์œ ์ง€
... 2021. 8. 27. 10:30

๋ฌดํ•œ ์Šคํฌ๋กค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์žˆ์–ด ๋ฐ˜๋“œ์‹œ ๋ณ‘ํ–‰๋˜์–ด์•ผ ํ•  ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๋ฌดํ•œ ์Šคํฌ๋กค๋กœ ๋ Œ๋”๋ง๋œ ์ƒํ’ˆ์„ ๋ˆ„๋ฅด๊ณ  ๋‹ค์‹œ [๋’ค๋กœ๊ฐ€๊ธฐ]๋ฅผ ํ–ˆ์„ ์‹œ ์—ฌ์ „ํžˆ ๊ทธ ์ƒํ’ˆ์˜ ์œ„์น˜๋กœ ์™€์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. [JavaScript] ๋ฌดํ•œ ์Šคํฌ๋กค ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ ๋ฌดํ•œ ์Šคํฌ๋กค์€ ์ด์ปค๋จธ์Šค ๊ด€๋ จ๋œ ์›น์ด๋‚˜ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ ‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์Šคํฌ๋กค์˜ ์œ„์น˜๊ฐ€ ์–ด๋– ํ•œ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๊ฒŒ ๋˜๋ฉด ์ถ”๊ฐ€์ ์œผ๋กœ ์ƒํ’ˆ๋“ค์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€ kingofbackend.tistory.com ๋งŒ์•ฝ, ์ด ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์ƒํ’ˆ์„ ๋ˆ„๋ฅด๊ณ  ๋ง˜์— ๋“ค์ง€ ์•Š์•„ [๋’ค๋กœ๊ฐ€๊ธฐ]๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ ๋‹ค์‹œ ์ด ์ƒํ’ˆ์ด ๋‚˜์™”๋˜ ๊ณณ๊นŒ์ง€ ์Šคํฌ๋กค์„ ๋‚ด๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์˜ ์ง‘, ์•„์ด๋””์–ด์Šค์€ ์–ด๋–ป๊ฒŒ ๋˜์–ด์žˆ๋Š” ์ง€ ํ•œ๋ฒˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. [์˜ค๋Š˜์˜ ์ง‘] ์˜ค๋Š˜์˜ ์ง‘..

article thumbnail
[JavaScript] sessionStorage ์ด์šฉํ•˜๊ธฐ
... 2021. 8. 27. 10:09

function setSessionStorage(key, value){ sessionStorage.setItem(key, value); } function getSessionStorage(key){ return sessionStorage.getItem(key); } function setJSONSessionStorage(key, value){ sessionStorage.setItem(key, JSON.stringify(value)); } function getJSONSessionStorage(key){ return JSON.parse(sessionStorage.getItem(key)); } function removeSessionStorage(key){ sessionStorage.removeItem(ke..

article thumbnail
[AWS] IAM ์œ ์ € ๋ฐ MFA ์ƒ์„ฑํ•˜๊ธฐ
... 2021. 8. 26. 22:15

IAM ์ด๋ž€? IAM(AWS Identity and Access Management)์€ AWS ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. IAM์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ๋œ ๋Œ€์ƒ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ฆฌ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋ฅผ ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค. ์ถœ์ž…์ด ํ—ˆ๊ฐ€๋œ ์ธ์›๋“ค์€ ์ถœ์ž… ์นด๋“œ๋ฅผ ํ†ตํ•ด ์ถœ์ž…ํ•˜๊ฑฐ๋‚˜, ๋ฆฌ์ŠคํŠธ์— ๋ฐฉ๋ฌธ ๊ธฐ๋ก์„ ํ•˜๊ณ  ํ—ˆ๊ฐ€๋ฅผ ๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. IAM์€ ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ์ถœ์ž… ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ์ถœ์ž…์นด๋“œ๋‚˜, ๋ฐฉ๋ฌธ ํ—ˆ๊ฐ€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” AWS ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๋ณด์•ˆ ์ฃผ์ฒด๊ฐ€ ์ธ์ฆ(Authentication)๊ณผ ๊ถŒํ•œ๋ถ€์—ฌ(Authorization)์„ ๋ฐ›์•„ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์Šน์ธํ•˜๋Š” ๊ฒƒ์ด IAM์˜ ์ฃผ์š” ์ž‘๋™ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. AWS ๊ณ„์ •์„ ์ฒ˜์Œ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ „์ฒด AWS ์„œ๋น„..

๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ๋‚ด์šฉ์„ ๋ณด์‹œ๋ ค๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.
article thumbnail
[Docker] ์™ธ๋ถ€์—์„œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์ ‘์†ํ•˜๊ธฐ
... 2021. 8. 25. 13:02

์ด ๊ธ€์€ ๋„์ปค ๊ณต๋ถ€ํ•œ ํ”์ ์„ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. $ docker run -d -p 8080:80 --name nginx-exposed --restart always nginx ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์™ธ๋ถ€์—์„œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -d(detach) : ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์˜ต์…˜ -p(publish) : ์™ธ๋ถ€์—์„œ ํ˜ธ์ŠคํŠธ๋กœ ๋ณด๋‚ธ ์š”์ฒญ์„ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋กœ ์ „๋‹ฌํ•˜๋Š” ์˜ต์…˜์œผ๋กœ -p : ํ˜•์‹์ž…๋‹ˆ๋‹ค. * ์ฐธ๊ณ  : ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ จ ์„ค์ •์€ ์ถ”ํ›„ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์„ค์ •์„ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒˆ๋กญ๊ฒŒ ๋‹ค์‹œ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋„์ปค์˜ ํŠน์ง•์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฐํฌ ์ƒํƒœ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ๋„์™€์ค๋‹ˆ๋‹ค.

article thumbnail
UUID๊ฐ€ ๊ฒน์น˜๋ฉด ์–ด์ฉŒ์ง€?
... 2021. 8. 25. 09:15

์ด ๊ธ€์€ koreanhole ๋‹˜์˜ ๊ธ€์ž…๋‹ˆ๋‹ค. Intro ์ตœ๊ทผ UOS๊ณต์ง€์‚ฌํ•ญ ์•ฑ์˜ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์„ ๊ต์ฒดํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด Firebase์˜ Firestore๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ์ƒˆ๋กญ๊ฒŒ Nestjs๋กœ ์„œ๋ฒ„๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค. UOS๊ณต์ง€์‚ฌํ•ญ์˜ ์„œ๋ฒ„์—๋Š” ์ด 3๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ( department, notice, user )์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ชจ๋ธ์˜ ๋ ˆ์ฝ”๋“œ ๋งˆ๋‹ค ๊ณ ์œ ์˜ id๊ฐ’์„ ๋ฐœ๊ธ‰ํ–ˆ๋Š”๋ฐ ๋ชจ๋‘ uuid(v4)๋กœ ๋ฐœ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. uuid๋ฅผ ๋งˆ๊ตฌ์žก์ด๋กœ ๋ฐœ๊ธ‰ํ•˜๊ฒŒ ๋˜๋ฉด ํ˜น์‹œ ๋‚˜์ค‘์— ๊ฒน์น˜๋Š” uuid๊ฐ€ ์žˆ์ง€ ์•Š์„๊นŒ? UUID ์†Œ๊ฐœ uuid๋Š” ๋ฒ”์šฉ๊ณ ์œ ์‹๋ณ„์ž(Universal Unique IDentifier)๋ผ๊ณ  ํ•œ๋‹ค. ๋„คํŠธ์›Œํฌ์ƒ์— ์กด์žฌํ•˜๋Š” ๊ฐœ์ฒด๋“ค์„ ์‹๋ณ„ํ•˜๊ณ  ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ ์ฃผ์ฒด๊ฐ€ ์Šค์Šค๋กœ ์ด๋ฆ„์„ ..

article thumbnail
[Node.js] Socket.io Cors(ํฌ๋กœ์Šค ๋„๋ฉ”์ธ) ํ•ด๊ฒฐํ•˜๊ธฐ
... 2021. 8. 24. 21:38

์›น์„ ๊ฐœ๋ฐœํ•˜๋ฉด ํ•œ๋ฒˆ์€ ๊ผญ Cors ๋ฌธ์ œ๋ฅผ ๋งž๋‹ฅ๋œจ๋ฆฝ๋‹ˆ๋‹ค. ์ฑ„ํŒ… ์„œ๋ฒ„๋ฅผ aws๋กœ ๊ตฌ์ถ•ํ•˜๊ณ , ๋กœ์ปฌ์—์„œ ์ฑ„ํŒ… ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฑ„ํŒ…์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์—ญ์‹œ๋‚˜ ๋„๋ฉ”์ธ์ด ๋‹ฌ๋ผ Cors ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค. Node.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ค‘ 'Cors'๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์ง€๋งŒ Socket.io์—์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ๋ผ์„œ ์ด๊ฑธ๋กœ๋Š” ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ณธ ๊ฒฐ๊ณผ Socker.io ๊ณต์‹๋ฌธ์„œ์— ๋‹คํ–‰ํžˆ ์ž˜ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. "socket.io": "^4.1.3" ๋ฒ„์ „ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. const io = require("socket.io")(server, { cors: { origin: "*", methods: ["GET", "POST"] } }); ์œ„ ์ฝ”๋“œ๋ฅผ server-side์— ์ž‘์„ฑํ•ด์ฃผ์‹œ๊ณ , client-side์—๋Š” ์•„..

article thumbnail
[Docker] ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์•Œ์•„๋ณด๊ธฐ
... 2021. 8. 24. 20:55

์ด ๊ธ€์€ ๋„์ปค ๊ณต๋ถ€ํ•œ ํ”์ ์„ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๋Š” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ผ๊ณ  ํ•˜๋Š” ์ €์žฅ์†Œ์— ๋ชจ์—ฌ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” ๋„์ปค ํ—ˆ๋ธŒ์ผ์ˆ˜๋„ ์žˆ๊ณ , ๋‚ด๋ถ€์— ๊ตฌ์ถ•ํ•œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ณ„๋„์˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ๋„์ปค ํ—ˆ๋ธŒ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. $ docker search nginx ์œ„ ๋ช…๋ น์–ด๋กœ nginx์— ๋Œ€ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. INDEX : ์ด๋ฏธ์ง€๊ฐ€ ์ €์žฅ๋œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. NAME : ๊ฒ€์ƒ‰๋œ ์ด๋ฏธ์ง€ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๊ณต์‹ ์ด๋ฏธ์ง€๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด '๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ฃผ์†Œ/์ €์žฅ์†Œ ์†Œ์œ ์ž/ ์ด๋ฏธ์ง€ ํ˜•ํƒœ' ์ž…๋‹ˆ๋‹ค. DESCRIPTION : ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค. STARS : ์ข‹์•„์š” ๊ฐฏ์ˆ˜์ž…๋‹ˆ๋‹ค. OFFICAL : ์ด๋ฏธ์ง€์— ํฌํ•จ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ฏธ๋“ค์›จ์–ด ๋“ฑ์„ ๊ฐœ๋ฐœํ•œ ์—…์ฒด์—์„œ ๊ณต์‹์ ์œผ๋กœ ์ œ๊ณตํ•œ..

article thumbnail
[Elastic Search] TokenFilter - NGram
... 2021. 8. 24. 15:09

์ด ๊ธ€์€ ๊น€์ข…๋ฏผ(kimjmin@gmail.com)๋‹˜์˜ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ฌด๋‹จ ๋ณต์ œ/์ˆ˜์ •์„ ๊ธˆํ•ฉ๋‹ˆ๋‹ค. Elasticsearch๋Š” ๋น ๋ฅธ ๊ฒ€์ƒ‰์„ ์œ„ํ•ด ๊ฒ€์ƒ‰์— ์‚ฌ์šฉ๋  ํ…€ ๋“ค์„ ๋ฏธ๋ฆฌ ๋ถ„๋ฆฌํ•ด์„œ ์—ญ ์ธ๋ฑ์Šค์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ณผํ•™ ์šฉ์–ด์ง‘ ๊ฒ€์ƒ‰ ๊ฐ™์€ ํŠน์ •ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋”ฐ๋ผ ํ…€์ด ์•„๋‹Œ ๋‹จ์–ด์˜ ์ผ๋ถ€๋งŒ ๊ฐ€์ง€๊ณ ๋„ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. RDBMS์˜ LIKE ๊ฒ€์ƒ‰ ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋Š” wildcard ์ฟผ๋ฆฌ๋‚˜ regexp (์ •๊ทœ์‹) ์ฟผ๋ฆฌ๋„ ์ง€์›์„ ํ•˜์ง€๋งŒ, ์ด๋Ÿฐ ์ฟผ๋ฆฌ๋“ค์€ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋ชจ๊ฐ€ ๋งŽ๊ณ  ๋Š๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— Elasticsearch์˜ ์žฅ์ ์„ ํ™œ์šฉํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์‚ฌ์šฉ์„ ์œ„ํ•ด ๊ฒ€์ƒ‰ ํ…€์˜ ์ผ๋ถ€๋งŒ ๋ฏธ๋ฆฌ ๋ถ„๋ฆฌํ•ด์„œ ์ €์žฅ์„ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ๋‹จ์–ด์˜ ์ผ๋ถ€๋ฅผ ๋‚˜๋ˆˆ ๋ถ€์œ„๋ฅผ NGram ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต์€ unigram(์œ ๋‹ˆ๊ทธ๋žจ ..

article thumbnail
[Kubernetes] ๋ฐฐํฌ๋œ ํŒŒ๋“œ์˜ ์„ธ๋ถ€ ๊ฐ’์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•
... 2021. 8. 24. 12:42

์ด ๊ธ€์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ณต๋ถ€ํ•œ ํ”์ ์„ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. $ kubectl get pod pod-name -o yaml ์œ„ ๋ช…๋ น์–ด๋Š” ํŒŒ๋“œ์— ๋Œ€ํ•œ yaml ํŒŒ์ผ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. $ kubectl get pods pod-name -o yaml > pod.yaml ๋”ฐ๋ผ์„œ ์œ„์— ๋ช…๋ น์–ด๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์ถ”ํ›„ ํ•ด๋‹น ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.

profile on loading

Loading...