๋กœ์ผ“๐Ÿพ
article thumbnail
[Jenkins] ์šฐ๋ฆฌ์˜ ์นœ์ ˆํ•œ ๋น„์„œ Jenkins
... 2021. 8. 11. 15:29

์  ํ‚จ์Šค๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์‹œ ์ง€์†์ ์œผ๋กœ ํ†ตํ•ฉ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํˆด์ž…๋‹ˆ๋‹ค. CI(Continuous Integration) ํˆด ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์  ํ‚จ์Šค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ ์ „์— ์šฐ์„  CI/CD์— ๋Œ€ํ•ด ๋จผ์ € ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. CI/CD๋ž€? CI๋Š” Continuous Integration ์ฆ‰, ์ง€์†์ ์ธ ํ†ตํ•ฉ์ด๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ง€์†์ ์ธ ํ†ตํ•ฉ์ด๋ž€, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒˆ๋กœ์šด ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ •๊ธฐ์ ์œผ๋กœ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ ๋˜์–ด ๊ณต์œ  ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ํ†ตํ•ฉํžˆ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. (๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ํ•˜๋ฃจ์— ์—ฌ๋Ÿฌ๋ฒˆ๊นŒ์ง€) ์ด๋Ÿฌํ•œ CI์˜ ํ•ต์‹ฌ ๋ชฉํ‘œ๋Š” ๋ฒ„๊ทธ๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ์ฐพ์•„ ํ•ด๊ฒฐํ•˜๊ณ , ์†Œํ”„ํŠธ์›จ์–ด์˜ ํ’ˆ์งˆ์„ ๊ฐœ์„ ํ•˜๊ณ , ์ƒˆ๋กœ์šด ์—…๋ฐ์ดํŠธ์˜ ๊ฒ€์ฆ ๋ฐ ๋ฆด๋ฆฌ์ฆˆ์˜ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ค๋Š” ๊ฒƒ์— ์žˆ์Šต๋‹ˆ๋‹ค. CD๋ž€? ํ•ด์„ํ•˜์ž๋ฉด, ์ง€์†์ ์ธ ์„œ๋น„์Šค ์ œ๊ณต ํ˜น์€ ์ง€์†์ ์ธ ๋ฐฐํฌ ๋ผ๋Š”..

article thumbnail
[Jenkins] warํŒŒ์ผ์— 1.0.0-BUILD-SNAPSHOT ์•ˆ๋ถ™๊ฒŒ ํ•˜๊ธฐ
... 2021. 8. 11. 14:41

/var/lib/jenkins/workspace/ ๋กœ ์ด๋™ ํ›„ ๋ถ™์ง€ ์•Š๊ฒŒ ํ•˜๋ ค๋Š” ํ”„๋กœ์ ํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ํ†ฐ์บฃ์ด ์•„๋‹Œ ์  ํ‚จ์Šค ๋‚ด workplace์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ pom.xml์— ์•„๋ž˜์™€ ๊ฐ™์ด ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค. ..... ${project.name} .... ๊ทธ ํ›„ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๊ฒŒ ๋˜๋ฉด ๋’ค์— 1.0.0-BUILD-SNAPSHOT์ด ๋ถ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

article thumbnail
[Jenkins] ์„œ๋ฒ„ ๋‚ด Jenkins(์  ํ‚จ์Šค) ์„ค์น˜ํ•˜๊ธฐ
... 2021. 8. 11. 14:05

ํ…Œ์ŠคํŠธ ์„œ๋ฒ„ ๋‚ด ์  ํ‚จ์Šค ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” CentOS7 ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. [STEP1] ์  ํ‚จ์Šค๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๋Š” ํ™•์ธํ•˜๊ธฐ $ yum list installed | grep jenkins [STEP2] ์  ํ‚จ์Šค ์„ค์น˜ํ•˜๊ธฐ [STEP2-1] url์— ํ•ด๋‹นํ•˜๋Š” ํŒŒ์ผ์„ /etc/yum.repos.d/jenkins.repo ๊ฒฝ๋กœ์— ๋‹ค์šด $ wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo [STEP2-2] key import $ rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key [STEP2-3] ์  ํ‚จ์Šค ์„ค์น˜ $ yum install jenkin..

article thumbnail
[Tomcat] ์„œ๋ฒ„ ๋‚ด tomcat ์„ค์น˜ํ•˜๊ธฐ
... 2021. 8. 11. 13:48

๋กœ์ปฌ์ด ์•„๋‹Œ ํ…Œ์ŠคํŠธ ์„œ๋ฒ„๋‚ด tomcat8 ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” CentOS ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. ์•„์ฃผ ๊ธฐ์ดˆ์ ์ธ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด๋Š” ์•ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์—ฌ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. [STEP1] Apach Tomcat ์‚ฌ์ดํŠธ ์ ‘์† Apach Tomcat ์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ์ €๋Š” 8๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๊ธฐ์— Tomcat8์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ "๋งํฌ ์ฃผ์†Œ ๋ณต์‚ฌ"๋ฅผ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค. [STEP2] wget ์„ค์น˜ํ•˜๊ธฐ ์„œ๋ฒ„์— ์ ‘์† ํ›„ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค. yum install -y wget * ์ฐธ๊ณ  : yum์€ ๋ ˆ๋“œํ–‡ ๊ณ„์—ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €, wget๋Š” ์›น ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ปจํ…์ธ ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ํ”„๋กœ๊ทธ๋žจ [STEP3] ์•Œ๋งž์€ ์œ„์น˜์— ํ†ฐ์บฃ ์„ค์น˜ ๋ฐ ์••์ถ• ํ’€๊ธฐ ์ €๋Š” /var/lib/tomcat-feadmin ์œ„์น˜์— ํ†ฐ์บฃ..

article thumbnail
๋ˆ„๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํŒŒ๊ดดํ•  ์ˆ˜ ์žˆ์„๊นŒ?
... 2021. 8. 11. 11:41

์ด ๊ธ€์€ Song Seunggeun ๋‹˜์˜ ๊ธ€์„ ๋ณด๊ณ  ์ž‘์„ฑํ•œ ๊ธ€์ด๋ฉฐ, ํ—ˆ๋ฝ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋…ผ๋ž€์˜ ์—ฌ์ง€๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” 2021๋…„ ํ˜„์žฌ ์†Œํ”„ํŠธ์›จ์–ด ์—…๊ณ„์—์„œ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์–ธ์–ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2020๋…„ Github์˜ ๋ถ„์„์— ๋”ฐ๋ฅด๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” 2014๋…„ ์ด๋ž˜๋กœ ํ•ญ์ƒ ์˜ํ–ฅ๋ ฅ ์žˆ๋Š” ์–ธ์–ด์˜€๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์นœ์ฒ™์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋˜ํ•œ ๊ทธ ์ˆœ์œ„๊ฐ€ 4์œ„์— ๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์–ด๋–ป๊ฒŒ ์ด๋ ‡๊ฒŒ ์œ ๋ช…ํ•ด์งˆ ์ˆ˜ ์žˆ์—ˆ์„๊นŒ์š”? ํŒŒ์ด์ฌ, ์ž๋ฐ”, C ๋“ฑ์˜ ์ „ํ†ต์˜ ๊ฐ•์ž๋“ค, ๊ทธ๋ฆฌ๊ณ  Golang, Rust, Swift, Dart ๋“ฑ์˜ ์‹ ํฅ ๊ฐ•์ž๋“ค๊ณผ์˜ ๊ฒฝ์Ÿ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์–ด๋–ป๊ฒŒ ์šฐ์œ„๋ฅผ ์ ํ•  ์ˆ˜ ์žˆ์—ˆ์„๊นŒ์š”? ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ํด๋ ˆ์ดํŠผ ํฌ๋ฆฌ์Šคํ…์Šจ ๊ต์ˆ˜์˜ ํŒŒ๊ดด์  ํ˜์‹  ์ด๋ก ์„ ์ด์šฉํ•ด์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์„ฑ์žฅํ• ..

article thumbnail
[Jenkins] ์  ํ‚จ์Šค + SVN+ ๋ฉ”์ด๋ธ+์Šคํ”„๋ง์„ ์ด์šฉํ•˜์—ฌ ๋นŒ๋“œ์—…๊ณผ ์ž๋™๋ฐฐํฌ ํ•˜๊ธฐ
... 2021. 8. 9. 16:55

๋กœ์ปฌ ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ํ…Œ์ŠคํŠธ ์„œ๋ฒ„์—์„œ ์  ํ‚จ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ CI/CD๋ฅผ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” CentOS7 ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. KTCloud๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„ ๊ตฌ์ถ•(์ƒ๋žต) ํ…Œ์ŠคํŠธ ์„œ๋ฒ„ ๋‚ด ํ†ฐ์บฃ(port80), JDK(1.8.x) ์„ค์น˜ ํ…Œ์ŠคํŠธ ์  ํ‚จ์Šค ์„œ๋ฒ„ ๊ตฌ์ถ• ํ…Œ์ŠคํŠธ ์„œ๋ฒ„ ๋‚ด ์  ํ‚จ์Šค๋ฅผ ํ†ตํ•ด ๋นŒ๋“œ์—…๊ณผ ์ž๋™๋ฐฐํฌ ์ง„ํ–‰ [Jenkins] CI/CD์™€ ์šฐ๋ฆฌ์˜ ์นœ์ ˆํ•œ ๋น„์„œ Jenkins ์  ํ‚จ์Šค๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์‹œ ์ง€์†์ ์œผ๋กœ ํ†ตํ•ฉ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํˆด์ž…๋‹ˆ๋‹ค. CI(Continuous Integration) ํˆด ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์  ํ‚จ์Šค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ ์ „์— ์šฐ์„  CI/CD์— ๋Œ€ํ•ด ๋จผ์ € ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. CI kingofbackend.tistory.com [STEP1] ํ…Œ์ŠคํŠธ ์„œ๋ฒ„ ๋‚ด ํ†ฐ์บฃ(port80)..

[Linux] yum, apt-get ์ฐจ์ด
... 2021. 7. 30. 09:20

OS ์ข…๋ฅ˜ OS ๋Š” ํฌ๊ฒŒ Windows, Linux, Unix, MacOS 4๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜๋ฉ๋‹ˆ๋‹ค. Linux ์ข…๋ฅ˜ Linux ๋Š” ํฌ๊ฒŒ ๋ ˆ๋“œํ–‡, ๋ฐ๋น„์•ˆ, ์šฐ๋ถ„ํˆฌ 3๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜๋˜๋ฉฐ, ๊ณ„์—ด์— ๋”ฐ๋ฅธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋ช…๋ น์–ด๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค ๋ ˆ๋“œํ–‡ ๊ณ„์—ด์€ yum ์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ ˆ๋“œํ–‡ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํŽ˜๋„๋ผ CentOS ๋ฐ๋น„์•ˆ, ์šฐ๋ถ„ํˆฌ ๊ณ„์—ด์€ apt-get ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

[Linux] wget, curl ์ฐจ์ด
... 2021. 7. 30. 09:05

wget vs curl wget ๊ณผ curl ์€ ๋‘˜ ๋‹ค ์›น ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ปจํ…์ธ ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” Linux ์ปค๋งจ๋“œ์ž…๋‹ˆ๋‹ค. wget ๊ณผ curl ์€ ๊ฑฐ์˜ ์œ ์‚ฌํ•˜์ง€๋งŒ ์กฐ๊ธˆ ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณตํ†ต์  HTTP, HTTPS, FTP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์ปจํ…์ธ ๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜๋Š” ์ปค๋งจํŠธ ๋ผ์ธ ํˆด์ž…๋‹ˆ๋‹ค. HTTP POST request ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. (์ฆ‰, ์›น์‚ฌ์ดํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.) HTTP ์ฟ ํ‚ค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ ‰์…˜์—†์ด ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜คํ”ˆ์†Œ์Šค์ด๋ฉฐ ๋ฌด๋ฃŒ์ž…๋‹ˆ๋‹ค. 90๋…„๋Œ€์— ์‹œ์ž‘ํ•œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. (wget ์€ 1995๋…„, curl ์€ 1996๋…„์— ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.) metalink ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ฐจ์ด์  wget ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค...

article thumbnail
[Spring] ํŠธ๋žœ์žญ์…˜์˜ propagation ์„ค์ •๋ณ„ ๋™์ž‘
... 2021. 6. 23. 15:40

์ด ๊ธ€์€ DevEric ๋‹˜์˜ ๊ธ€์„ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜์˜ propagation ์„ค์ •์ด๋ž€ Spring์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜ '@Transactional'์€ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ์•ˆ์—์„œ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ํŠธ๋žœ์žญ์…˜ ๋‚ด๋ถ€์—์„œ ํŠธ๋žœ์žญ์…˜์„ ๋˜ ํ˜ธ์ถœํ•œ๋‹ค๋ฉด ์Šคํ”„๋ง์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์„๊นŒ์š”? ์ƒˆ๋กœ์šด ํŠธ๋žœ์žญ์…˜์ด ์ƒ์„ฑ๋  ์ˆ˜๋„ ์žˆ๊ณ , ์ด๋ฏธ ํŠธ๋žœ์žญ์…˜์ด ์žˆ๋‹ค๋ฉด ๋ถ€๋ชจ ํŠธ๋žœ์žญ์…˜์— ํ•ฉ๋ฅ˜ํ•  ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ง„ํ–‰๋˜๊ณ  ์žˆ๋Š” ํŠธ๋žœ์žญ์…˜์—์„œ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ํ˜ธ์ถœ๋  ๋•Œ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ์ •ํ•˜๋Š” ๊ฒƒ์„ 'ํŠธ๋žœ์žญ์…˜์˜ ์ „ํŒŒ ์„ค์ •'์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์ „ํŒŒ ์„ค์ • ์˜ต์…˜ ํŠธ๋žœ์žญ์…˜์˜ ์ „ํŒŒ ์„ค์ •์€ '@Transactional'์˜ ์˜ต์…˜ 'propagation'์„ ํ†ตํ•ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์˜ต์…˜์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ..

article thumbnail
[Java] try ~ catch๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•˜๊ธฐ
... 2021. 6. 22. 09:51

Sims๋‹˜์˜ ๊ธ€์„ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค ๋ณด๋ฉด ๋‹ค์–‘ํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ๋Š” file์„ ์ฝ์œผ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ํ•ด๋‹น file์ด ์—†๋Š” ๊ฒฝ์šฐ, 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ ๋“ฑ๋“ฑ.. ์‰ฝ๊ฒŒ ์ ‘ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜๋“ค์ด ๋งŽ์ด ์žˆ์ฃ . ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ '์˜ˆ์™ธ ์ฒ˜๋ฆฌ'๋ผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค. ์˜ˆ์™ธ์ฒ˜๋ฆฌ != ๋ฒ„๊ทธ ์ž, ์ผ๋‹จ ์˜ค๋ฅ˜๋ฅผ ๋ถ„๋ฅ˜ํ•ด ๋ด…์‹œ๋‹ค. ์œ„์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ 2๊ฐ€์ง€ ์˜ค๋ฅ˜๋ฅผ ๋ง์”€๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ๋‘ ๋ฒˆ์งธ๋Š” 0์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ์˜ค๋ฅ˜์ง€๋งŒ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋ฉด ํŠน์ง•์ด ์กฐ๊ธˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ, ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์˜ ์˜ค๋ฅ˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์˜ˆ์ƒ์„ ํ•˜๊ณ  ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ..

article thumbnail
[JSP] <c:forEach> varStatus ํ™œ์šฉ๋ฒ•
... 2021. 6. 10. 14:12

// ๋ฐ˜๋ณตํ•ด์„œ ํ‘œ์‹œํ•  ๋‚ด์šฉ ํ˜น์€ ๋ฐ˜๋ณตํ•  ๊ตฌ๋ฌธ ์ด ๋•Œ, ์ƒํƒœ์šฉ ๋ณ€์ˆ˜๋ฅผ status๋ผ๊ณ  ์ง€์ •ํ–ˆ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ${status.current} ํ˜„์žฌ for๋ฌธ์˜ ํ•ด๋‹นํ•˜๋Š” ๋ฒˆํ˜ธ ${status.index} 0๋ถ€ํ„ฐ์˜ ์ˆœ์„œ ${status.count} 1๋ถ€ํ„ฐ์˜ ์ˆœ์„œ ${status.first} ์ฒซ ๋ฒˆ์งธ์ธ์ง€ ์—ฌ๋ถ€ ${status.last} ๋งˆ์ง€๋ง‰์ธ์ง€ ์—ฌ๋ถ€ ${status.begin} for๋ฌธ์˜ ์‹œ์ž‘ ๋ฒˆํ˜ธ ${status.end} for๋ฌธ์˜ ๋ ๋ฒˆํ˜ธ ${status.step} for๋ฌธ์˜ ์ฆ๊ฐ€๊ฐ’ ํ™œ์šฉ ์˜ˆ / ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

article thumbnail
[Java] ์ž๋ฐ” static์˜ ์˜๋ฏธ์™€ ์‚ฌ์šฉ๋ฒ•
... 2021. 6. 6. 21:53

์ •์ (Static)์ด๋ž€? ์ •์ (static)์€ ๊ณ ์ •๋œ์ด๋ž€ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Static์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Static๋ณ€์ˆ˜์™€ Static๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”๋ฐ ๋‹ค๋ฅธ๋ง๋กœ ์ •์ ํ•„๋“œ์™€ ์ •์  ๋ฉ”์†Œ๋“œ๋ผ๊ณ ๋„ ํ•˜๋ฉฐ ์ด ๋‘˜์„ ํ•ฉ์ณ ์ •์  ๋ฉค๋ฒ„๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. (ํด๋ž˜์Šค ๋ฉค๋ฒ„๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค.) ์ •์  ํ•„๋“œ์™€ ์ •์  ๋ฉ”์†Œ๋“œ๋Š” ๊ฐ์ฒด(์ธ์Šคํ„ด์Šค)์— ์†Œ์†๋œ ๋ฉค๋ฒ„๊ฐ€ ์•„๋‹ˆ๋ผ ํด๋ž˜์Šค์— ๊ณ ์ •๋œ ๋ฉค๋ฒ„์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ํด๋ž˜์Šค ๋กœ๋”๊ฐ€ ํด๋ž˜์Šค๋ฅผ ๋กœ๋”ฉํ•ด์„œ ๋ฉ”์†Œ๋“œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์ ์žฌํ• ๋•Œ ํด๋ž˜์Šค๋ณ„๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํด๋ž˜์Šค์˜ ๋กœ๋”ฉ์ด ๋๋‚˜๋Š” ์ฆ‰์‹œ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •์ (Static) ๋ฉค๋ฒ„ ์ƒ์„ฑ Static ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ์ •์ ๋ฉค๋ฒ„๋“ค์€ Heap์˜์—ญ์ด ์•„๋‹Œ Static์˜์—ญ์— ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. Static ์˜์—ญ์— ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ ๊ณต..

article thumbnail
์™œ ๊ฐœ๋ฐœ์ž๋Š” ์ž˜๋ชป๋œ ๊ธฐ์ˆ  ์„ ํƒ์„ ๋ฐฅ ๋จน๋“ฏ์ด ํ•˜๋‚˜?
... 2021. 6. 5. 19:02

๊ฐœ๋ฐœ ์ด์Šˆ๊ฐ€ ๋Œ€๋ถ€๋ถ„ ๊ทธ๋ ‡์ง€๋งŒ, ๊ธฐ์ˆ ์ ์ธ ์ธก๋ฉด๋ณด๋‹ค ์˜์™ธ๋กœ ์˜์‚ฌ์†Œํ†ต ๋ฌธ์ œ ๊ฐ™์€ ์ธ์  ์š”์†Œ๊ฐ€ ์›์ธ์ด ๋  ๋•Œ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์บ๋ฆฌ ํ”Œ๋ฆฌ์ฒผ์€ "์™œ ๊ฐœ๋ฐœ์ž๋Š” ์ž˜๋ชป๋œ ๊ธฐ์ˆ  ์„ ํƒ์„ ๋ฐฅ ๋จน๋“ฏ์ด ํ•˜๋‚˜?"๋ผ๋Š” ์ œ๋ชฉ์˜ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€์—์„œ ๊ทธ ์›์ธ์„ ๋‹ค์„ฏ ๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์”ฉ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์€ ์™œ ๊ฐœ๋ฐœ์ž๋Š” ์ž˜๋ชป๋œ ๊ธฐ์ˆ  ์„ ํƒ์„ ๋ฐฅ ๋จน๋“ฏ์ด ํ•˜๋‚˜? ์™€ Optimizing Java ๋ผ๋Š” ์„œ์ ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ง€๋ฃจํ•จ ๊ฐœ๋ฐœ์ž๋Š” ๋Œ€๋ถ€๋ถ„ ์ž๊ธฐ ์—ญํ• ์— ์ง€๋ฃจํ•จ์„ ๋А๋ผ๊ณ  ๋ญ”๊ฐ€ ์ƒˆ๋กญ๊ณ  ๋„์ „์ ์ธ ์ผ์„ ์ฐพ์•„ ๊ฐ™์€ ํšŒ์‚ฌ ๋˜๋Š” ์•„์˜ˆ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ๋– ๋‚  ๊ถ๋ฆฌ๋ฅผ ํ•˜๋Š” ์‚ฌ๋žŒ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ๋‚ด์— ๋”ฑํžˆ ๋งˆ๋•…ํ•œ ๊ธฐํšŒ๊ฐ€ ์—†๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ํšŒ์‚ฌ๋กœ ์ด์งํ•˜๋Š” ๊ฒŒ ์—ฌ์˜์น˜ ์•Š์„ ๋•Œ๋„ ์žˆ๊ฒ ์ฃ . ๋ฌผ๋ก , ์ง€๋ฃจํ•œ ์ผ์ƒ์„ ์ž˜ ์ฐธ๊ณ  ๊ฒฌ๋”œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์™ธ๋ ค ๋” ์‰ฝ๊ณ  ํŽธ..

article thumbnail
[Java] ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ถ”์ƒํด๋ž˜์Šค
... 2021. 6. 1. 20:27

์ถ”์ƒํด๋ž˜์Šค๋Š” abstarct๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ธํ„ฐํŽ˜์ด์Šค๋Š” interface๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์–ธ์ œ ์ถ”์ƒํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์–ธ์ œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ์š”? ์•„๋งˆ ๋งŽ์€ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋ถ„๋“ค์ด ๋ช…์พŒํ•œ ๋‹ต์„ ๋‚ด๋†“์ง€ ๋ชปํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ € ๋˜ํ•œ ์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ ์ ˆํ•œ ์‚ฌ์šฉ ์šฉ๋„๋ฅผ ์ธ์ง€ํ•˜์ง€ ๋ชปํ•œ ์ฑ„ ๊ฐœ๋ฐœ์„ ํ•ด์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์— ์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•ด ์•Œ์•„ ๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ถ”์ƒํด๋ž˜์Šค ์ถ”์ƒํด๋ž˜์Šค๋Š” ์ผ๋ฐ˜ํด๋ž˜์Šค์™€ ๋ณ„๋ฐ˜ ๋‹ค๋ฅผ ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‹จ์ง€, ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•˜์—ฌ ์ƒ์†์„ ํ†ตํ•˜์—ฌ ์ž์† ํด๋ž˜์Šค์—์„œ ์™„์„ฑํ•˜๋„๋ก ์œ ๋„ํ•˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฏธ์™„์„ฑ ์„ค๊ณ„๋„๋ผ๊ณ ๋„ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. public abstract class ํด๋ž˜์Šค์ด๋ฆ„{ public..

article thumbnail
[AWS] EC2๋ฅผ ์ด์šฉํ•˜์—ฌ Node.js ์„œ๋ฒ„ ๋ฐฐํฌํ•˜๊ธฐ
... 2021. 5. 23. 18:24

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” AWS EC2๋ฅผ ์ด์šฉํ•˜์—ฌ Node.js๋ฅผ ๋ฐฐํฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ถ„ํˆฌ๋ฅผ ํ•ด๋ณด์‹œ์ง€ ์•Š์•˜๋‹ค๋ฉด ์กฐ๊ธˆ ์–ด๋ ค์šด ๋ถ€๋ถ„์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. AWS EC2 ์‹œ์ž‘ํ•˜๊ธฐ EC2 ๊ฐ™์€ ๊ฒฝ์šฐ S3์™€ ๋‹ค๋ฅด๊ฒŒ ๋น„์šฉ์ด ๊ฝค ๋‚˜์˜ต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ•„์š”ํ•  ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ๋ฐ˜๋“œ์‹œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ค‘์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ ๊ฒฝ์šฐ ์ฒญ๊ตฌ์„œ ๋ณด๊ณ  ์ €์ฒ˜๋Ÿผ ๊นœ์ง ๋†€๋ž๋‹ˆ๋‹ค ใ…œใ…œ AWS EC2์— ์ ‘์†ํ•˜๊ณ , ์ธ์Šคํ„ด์Šค ์‹œ์ž‘ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค. ์šฐ๋ถ„ํˆฌ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๊ธฐ์— 18.04 ๋ฒ„์ „์˜ ์šฐ๋ถ„ํˆฌ๋ฅผ ์„ ํƒํ•ด์ค๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค ์œ ํ˜• ์„ ํƒ์—์„œ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ์ฒดํฌํ•˜๊ณ  ๊ฒ€ํ†  ๋ฐ ์‹œ์ž‘ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค. ์ญ‰์ญ‰ ๋„˜์–ด์™€์„œ 7๋‹จ๊ณ„์—์„œ ๋ณด์•ˆ ๊ทธ๋ฃน ํŽธ์ง‘์„ ํด๋ฆญํ•ด์ค๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ์šฉ์ด๊ธฐ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ „์„ธ๊ณ„ ๋ˆ„๊ตฌ๋‚˜ ์•„๋ฌด ๊ณณ์—์„œ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฒ€ํ†  ๋ฐ ์‹œ์ž‘ ..

article thumbnail
[AWS] HTTP to HTTPS๋กœ ๋ฐฐํฌํ•˜๊ธฐ (S3 ๊ธฐ์ค€)
AWS 2021. 5. 21. 20:39

์ด์ „ ๊ธ€ 'Route 53 ๋„๋ฉ”์ธ ๊ตฌ๋งค ํ›„ ์—ฐ๊ฒฐํ•˜๊ธฐ'์—์„œ ๋„๋ฉ”์ธ ๊ตฌ๋งค ํ›„ S3์™€ ์—ฐ๋™์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Http๋กœ ์ ‘์†๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ Https๋กœ ๋ฐ”๊ฟ”๋ณด๋Š” ์ž‘์—…์„ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Https๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด์„œ๋Š” S3, CloudFront, AWS Certificate Manager, Route53 ์„ ์ด์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. S3๋Š” ์ •์ ์ธ ์›น ํ˜ธ์ŠคํŒ…์ด์—ฌ์„œ EC2์™€ ๊ฐ™์€ ๋™์ ์ธ ์›น ํ˜ธ์ŠคํŒ…์˜ Https๋Š” EC2์˜ Load Balancer๋ฅผ ์ด์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Route53์—์„œ ๋„๋ฉ”์ธ ๊ตฌ๋งค ํ›„ S3๋กœ ๋ฐฐํฌํ–ˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. AWS Certificate Manager AWS์— ์ ‘์†ํ•˜์…”์„œ Certificate Manager๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์ด ์žˆ๋Š”๋ฐ ๋ฐ˜๋“œ์‹œ ๋ฏธ๊ตญ๋™๋ถ€(๋ฒ„์ง€๋‹ˆ์•„ ๋ถ๋ถ€)us-east-1๋กœ ..

article thumbnail
[AWS] Route 53 ๋„๋ฉ”์ธ ๊ตฌ๋งค ํ›„ ์—ฐ๊ฒฐํ•˜๊ธฐ
AWS 2021. 5. 19. 14:19

๊ธ€์ž๊ฐ€ ๊ฒ€์€ ์ƒ‰์œผ๋กœ ๋ณด์ผ ์‹œ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ๋‹ฌ ๋ชจ์–‘์„ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š” :) Amazon Route 53๋Š” ๋†’์€ ๊ฐ€์šฉ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚œ ํด๋ผ์šฐ๋“œ ์›น ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ํ™ˆํŽ˜์ด์ง€ ๊ฐ€์‹œ๋ฉด ๋” ์ž์„ธํžˆ ๋ณด์‹ค ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋„๋ฉ”์ธ์„ ๊ตฌ๋งคํ•˜์—ฌ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ € ๊ฐ™์€ ๊ฒฝ์šฐ ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ example.com ์˜ ๋„๋ฉ”์ธ์„ ๊ฐ€์ง„ ์›น ์‚ฌ์ดํŠธ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์–ด์„œ ์นดํŽ˜24, ๊ฐ€๋น„์•„ ๋“ฑ์„ ์•Œ์•„๋ณด๋‹ค๊ฐ€ AWS S3, EC2, RDS ๋“ฑ AWS ๊ด€๋ จํ•œ ํด๋ผ์šฐ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ์ ์ด ์žˆ์–ด์„œ ์ด๋ฒˆ์—๋„ AWS Route 53์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. AWS๋Š” 1๋…„ ๊ธฐ์ค€ ํ•œํ™” 15,000์›(com ๊ธฐ์ค€, 12$) ์ •๋„์ž…๋‹ˆ๋‹ค. ์นดํŽ˜24๊ฐ€ 22,000์›, ๊ฐ€๋น„์•„๊ฐ€ 13,500์› ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์นดํŽ˜24์—์„œ .com์ด ๋“ฑ๋ก๋ถˆ..

article thumbnail
[Java] ์ž๋ฐ”์˜ ๋™์ž‘๊ณผ์ • Java Compiler์™€ JVM
... 2021. 5. 11. 14:12

์ดํด๋ฆฝ์Šค์—์„œ *.java๋ฅผ ๋‹จ์ถ•ํ‚ค ๋ˆŒ๋Ÿฌ์„œ ์‹คํ–‰์‹œํ‚ฌ ์ค„๋งŒ ์•Œ์•˜์ง€ *.java ํŒŒ์ผ์ด ์–ด๋– ํ•œ ๊ณผ์ •์„ ๊ฑฐ์ณ ์‹คํ–‰์ด ๋˜๋Š”์ง€๋Š” ์•Œ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์–ด๋–ค ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์–ด๋””์„œ ๋งŽ์ด ๋“ค์–ด๋ณธ JVM์€ ๋ฌด์—‡์ธ์ง€ ๊ทธ๋ฆฌ๊ณ  ์ž๋ฐ”์—์„œ *.java๋ฅผ ์–ด๋–ป๊ฒŒ ์ปดํ“จํ„ฐ๊ฐ€ ์‹คํ–‰์‹œํ‚ค๋Š” ์ง€์— ๋Œ€ํ•œ ๊ณผ์ •์„ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด๋‚˜ ์งˆ๋ฌธ ์‚ฌํ•ญ์ด ์žˆ์œผ์‹œ๋ฉด ์–ธ์ œ๋“ ์ง€ ๋ง์”€ํ•ด์ฃผ์„ธ์š” :) ์ „์ฒด์ ์ธ ์ž๋ฐ”์˜ ์‹คํ–‰๊ณผ์ • ์œ„ ๊ทธ๋ฆผ์€ ์ „์ฒด์ ์ธ ์ž๋ฐ”์˜ ์‹คํ–‰๊ณผ์ •์„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๋” ๊นŠ์ˆ™์ด ํŒŒ๊ณ ๋“ค๋ฉด ์ด๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋งŽ์€ ๊ฒƒ๋“ค์ด ์กด์žฌํ•˜์ง€๋งŒ, ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด์ •๋„๋งŒ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌํ‚ค์›Œ๋“œ *Java Compiler , *JVM , *Interpreter , *JIT compiler Java Compiler with binar..

article thumbnail
[CA] ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ๊ณผ ๋ฐ”์ดํŠธ ํŒŒ์ผ ๊ทธ๋ฆฌ๊ณ  ์ปดํŒŒ์ผ, ๋งํฌ
... 2021. 5. 10. 11:43

์ž๋ฐ”์˜ ์ž‘๋™์›๋ฆฌ๋ฅผ ๊ณต๋ถ€ํ•˜๋˜ ์ค‘ ๋ฐ”์ดํŠธ ํŒŒ์ผ๊ณผ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์˜ ๊ฐœ๋…์„ ์ˆ™์ง€ํ•ด์•ผ๋˜์„œ ๊ด€๋ จ ๊ธ€์„ ์“ฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Complie๊ณผ Link C์–ธ์–ด๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์†Œ์ŠคํŒŒ์ผ(*.c)์ด ๋ชฉ์ ํŒŒ์ผ(*.obj)๋กœ ๋ณ€ํ™˜๋  ๋•Œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ , ์ฆ‰ 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ๋ชฉ์ ํŒŒ์ผ์€ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ์˜ ํ˜•ํƒœ์ด์ง€๋งŒ ์‹คํ–‰๋  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ์™„์ „ํ•œ ๊ธฐ๊ณ„์–ด๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. *์†Œ์ŠคํŒŒ์ผ : ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ๊ณ ๋ ˆ๋ฒจ์–ธ์–ด์ธ ์†Œ์Šค์ฝ”๋“œ๋กœ ๊ตฌ์„ฑ๋œ ํŒŒ์ผ ex. *.java, *.py *๋ชฉ์ ํŒŒ์ผ : ์†Œ์ŠคํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•ด์„œ ์ƒ๊ธด ํŒŒ์ผ ex. ๋ฐ”์ดํŠธ์ฝ”๋“œ, ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ ์ปดํŒŒ์ผ๋Ÿฌ ์— ์˜ํ•ด ๋ณ€ํ™˜๋œ ๋ชฉ์ ํŒŒ์ผ์€ ๋ง์ปค ์— ์˜ํ•ด ์‹คํ–‰๊ฐ€๋Šฅํ•œ ์‹คํ–‰ํŒŒ์ผ(*.exe)๋กœ ๋ณ€ํ™˜๋  ๋•Œ ํ•จ์ˆ˜๋‚˜ ํ—ค๋” ํŒŒ์ผ ๋“ฑ์˜ ์‹ค์ œ ๋ฉ”๋ชจ..

article thumbnail
[JS]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋™์ž‘์˜ ์‚ผ์œ„์ผ์ฒด! - V8, Web API, Event Loop
... 2021. 5. 3. 23:29

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋ฉด์„œ ์ฒ˜์Œ์—๋Š” ๊ทธ์ € ์ฝ”๋“œ ์งœ๊ธฐ์—๋งŒ ๊ธ‰๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์–ธ์–ด์˜ ์ž‘๋™์›๋ฆฌ ๊ฐ™์€ ๊ฑด ๋ด๋„ ๋„๋ฌด์ง€ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ”๊ธฐ์— ๊ด€์‹ฌ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ ์ฐจ ํ˜๋Ÿฌ ์šฐ์—ฐํžˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ž‘๋™์›๋ฆฌ ๊ด€๋ จ ๊ธ€์„ ๋‹ค์‹œ ๋ณด๊ฒŒ๋˜์—ˆ๋Š”๋ฐ ๊ธ€์ด ์–ด๋ ต์ง€ ์•Š๊ณ  ์ดํ•ด๊ฐ€ ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. "๊ทธ๋•Œ ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ๊ฐ€ ์ด๋ž˜์„œ ์ด๋Ÿฐ์‹์œผ๋กœ ์ž‘๋™ํ–ˆ๊ตฌ๋‚˜" ๋ฅผ ๊นจ๋‹ฌ์œผ๋ฉด์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ๊ฒŒ ๋˜๊ณ  ๋‚˜๋‹ˆ ํ•œ์ธต ๋” ์ฝ”๋”ฉ์ด ์žฌ๋ฏธ์žˆ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ž‘๋™์›๋ฆฌ์— ์žˆ์–ด ํ•ต์‹ฌ ์›๋ฆฌ์ธ JavasScript Engine(V8), Web API, Callback Queue, ์ด๋ฒคํŠธ ๋ฃจํ”„ ๊ทธ ์ค‘ ํŠนํžˆ ์ด๋ฒคํŠธ ๋ฃจํ”„ ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด๋‚˜ ์งˆ๋ฌธ ์‚ฌํ•ญ์ด ์žˆ์œผ์‹œ๋ฉด ์–ธ์ œ๋“ ์ง€ ๋Œ“๊ธ€๋กœ..

article thumbnail
[OS] ๋” ์ด์ƒ ์–ด๋ฒ„๋ฒ„ํ•˜์ง€๋ง์ž!! ์Šค๋ ˆ๋“œ์™€ ํ”„๋กœ์„ธ์Šค
... 2021. 4. 26. 22:35

๋ˆ„๊ตฐ๊ฐ€ ์ €์—๊ฒŒ ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ๋ฌผ์—ˆ๋˜ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ, ๋ช…ํ™•ํ•˜๊ฒŒ ๋Œ€๋‹ต์„ ๋ชปํ•œ๊ฒŒ ๋„ˆ๋ฌด ์•„์‰ฌ์›Œ์„œ ์ด ์ฐธ์— ํ™•์‹คํžˆ ๊ณต๋ถ€ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ ค ์ด ๊ธ€์„ ์“ฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋…๋“ค์ด ํŒŒ๊ณ ํŒŒ๊ณ  ๋“ค๋ฉด ๋ฐ‘๋„ ๋๋„ ์—†๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ด ๊ธ€์„ ์ดํ•ดํ•˜๋Š”๋ฐ ์žˆ์–ด ๊ตณ์ด ๋ถˆํ•„์š”ํ•œ ๊ฐœ๋…๋“ค์— ๋Œ€ํ•ด์„  ์–ธ๊ธ‰ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋Š” ๋ฌด์—‡์ผ๊นŒ? #ํ”„๋กœ์„ธ์Šค(Process)๋ž€? ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์ „์— ํ”„๋กœ๊ทธ๋žจ์ด๋ž€ ๋ฌด์—‡์ธ์ง€ ํŒŒ์•…ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด๋ž€ ๋‹จ์–ด๋Š” ์ปดํ“จํ„ฐ์ „๊ณต์ž๊ฐ€ ์•„๋‹ˆ์—ฌ๋„ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์ด ๋“ค์–ด๋ดค์„ ๊ฒƒ์ด๊ณ  ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋„ ํ•˜๋Š” ๋‹จ์–ด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ์€ ์–ด๋–ค ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”ํƒ•ํ™”๋ฉด์— LoL.exe , Visual Studio.exe ๊ฐ™์€ ํŒŒ์ผ๋“ค์ด ์žˆ๋Š”๋ฐ ์ด๊ฒƒ๋“ค์ด ํ”„..

article thumbnail
[Python] list(๋ฆฌ์ŠคํŠธ)์˜ ์–•์€ ๋ณต์‚ฌ์™€ ๊นŠ์€ ๋ณต์‚ฌ
... 2021. 4. 25. 21:28

๋ฆฌ์ŠคํŠธ ๋ณต์‚ฌํ•˜๊ธฐ ๋ณ€์ˆ˜๋Š” ๊ฐ์ฒด๋ฅผ ๋‹ด๋Š” ๊ทธ๋ฆ‡์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•˜๋ฉด ๋‘ ๋ณ€์ˆ˜๋Š” ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ๋‘ ๊ฐœ์˜ ์ด๋ฆ„์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์ด์ง€ ๊ฐ์ฒด ์ž์ฒด๊ฐ€ ๋‘ ๊ฐœ๊ฐ€ ๋œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๋ณ€ํ˜• ๊ฐ์ฒดimmutable object์—์„œ๋Š” ํ•œ ๋ณ€์ˆ˜์— ์ƒˆ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€์ž…ํ•ด๋„ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์ง€๋งŒ, ๋ฆฌ์ŠคํŠธ ๊ฐ™์€ ๋ณ€ํ˜• ๊ฐ์ฒดmutable object์—์„œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์žฅ์ ์ด ๋˜๊ธฐ๋„ ํ•˜๊ณ , ๋‹จ์ ์ด ๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„  ์—ฌ๊ธฐ๊นŒ์ง€ ์ฝ”๋“œ๋กœ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. >>> mu_a = [2020, 'year'] >>> mu_b = mu_a >>> mu_b.append(['hi', 'hello']) >>> mu_a [2020, '..

article thumbnail
[Node.js] uuid ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ๋ฐ ์‚ฌ์šฉํ•˜๊ธฐ
... 2021. 4. 12. 16:43

UUID๋Š” Universally Unique IDentifier์˜ ์•ฝ์ž๋กœ, ์ „์„ธ๊ณ„์— ํ•˜๋‚˜๋ฐ–์— ์—†๋Š” ID๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ID๋Š” ๊ณ ์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ์ž๋“ค์— UUID๋ฅผ ๋ถ™์—ฌ์„œ ๊ตฌ๋ถ„ํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฉด์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. UUID๊ฐ€ ๊ฒน์น˜๋ฉด ์–ด์ฉŒ์ง€? ์ด ๊ธ€์€ koreanhole ๋‹˜์˜ ๊ธ€์ž…๋‹ˆ๋‹ค. Intro ์ตœ๊ทผ UOS๊ณต์ง€์‚ฌํ•ญ ์•ฑ์˜ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์„ ๊ต์ฒดํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด Firebase์˜ Firestore๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ์ƒˆ๋กญ๊ฒŒ Nestjs๋กœ ์„œ๋ฒ„๋ฅผ ์ž‘์„ฑํ•˜๋Š” kingofbackend.tistory.com ์„ค์น˜ $ npm install uuid uuid ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ install ํ•ฉ๋‹ˆ๋‹ค. ์ข…๋ฅ˜ UUID๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. v1: ํƒ€์ž„์Šคํƒฌํ”„(์‹œ๊ฐ„) ๊ธฐ..

article thumbnail
Node.js์— ๊ด€ํ•œ 10๊ฐ€์ง€ ํ›„ํšŒ - ๋ผ์ด์–ธ ๋‹ฌ๊ณผ Deno.js
... 2021. 4. 11. 22:25

Node.js๋ฅผ ๊ฐœ๋ฐœํ•œ ๋ผ์ด์–ธ ๋‹ฌ(Ryan Dahl) ์€ ์ง€๋‚œ 2018๋…„ 6์›” Javascript ์ตœ๋Œ€ ์ฝ˜ํผ๋Ÿฐ์Šค์ธ JSConf 2018์—์„œ 10 Things I Regret About Node.js ์„ ๋ฐœํ‘œํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„ Node.js๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์ƒ๊ฒผ๋˜ ํ›„ํšŒ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ƒˆ๋กœ์šด ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋Ÿฐํƒ€์ž„์ธ Deno.js๋ฅผ ๋ฐœํ‘œํ•˜์˜€์Šต๋‹ˆ๋‹ค. (Node์—์„œ de๋ฅผ no ์•ž์— ์“ด๊ฑด๋ฐ ์ด๊ฑฐ ๋ˆˆ์น˜์ฑ„๊ณ  ์†Œ๋ฆ„์ด.. ) ๋ผ์ด์–ธ ๋‹ฌ์€ Node.js ๋งŒ๋“ค๋ฉด์„œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ HTTP ์„œ๋ฒ„(Event driven HTTP server)์— ์ƒ๋‹นํžˆ ๋งŽ์€ ์‹ฌํ˜ˆ์„ ๊ธฐ์šธ์˜€์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ Node.js๋ฅผ ๋งŒ๋“ค๋•Œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ์ด ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ HTTP ์„œ๋ฒ„๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ๋Š” ์—ฌ์ „ํžˆ Node๋Š” ์ข‹์€ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋Ÿฐํƒ€์ž„์ด๋ผ๊ณ  ๋ง..

article thumbnail
[JavaScript] ๊ธฐ๋‹ค๋ ค! ๋จน์–ด! async/await ์ดํ•ดํ•˜๊ธฐ
... 2021. 3. 28. 12:14

์šฐ๋ฆฌ๋Š” ๋ญ‰์น˜์—๊ฒŒ ๊ธฐ๋‹ค๋ ค! ๋จน์–ด! ํ›ˆ๋ จ์„ ๊ต์œก์‹œํ‚ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ญ‰์น˜์˜ ๋‹ค๋ฆฌ์— ๊ฐ„์‹์„ ์˜ฌ๋ ค๋†“๊ณ  ๋จน์–ด!๋ผ๊ณ  ํ–ˆ์„ ๊ฒฝ์šฐ ๋ญ‰์น˜๊ฐ€ ๊ฐ„์‹์„ ๋จน์—ˆ์œผ๋ฉด ํ•˜๋Š”๋ฐ ๋ญ‰์น˜๋Š” ์ฃผ์ธ์˜ ๋ช…๋ น์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ (๋น„๋™๊ธฐ ๋ฐฉ์‹ ๋ฌธ์ œ) ์ œ๋ฉ‹๋Œ€๋กœ ๊ฐ„์‹์„ ๋จน์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค...๋ญ‰์น˜์—๊ฒŒ ํ›ˆ๋ จ(์ผ๋ฐ˜ ์ฝœ๋ฐฑํ•จ์ˆ˜)์„ ์‹œ์ผœ๋ณด์•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ญ‰์น˜๋Š” ๋ง์„ ๋“ฃ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ญ‰์น˜๋Š” ๋ง๋ชปํ•˜๋Š” ๊ฐ•์•„์ง€๋ผ ํ˜ผ๋‚ผ ์ˆ˜๋„ ์—†๊ณ  ์šฐ๋ฆฌ๋Š” ๋‚œ์ฒ˜ํ•œ ์ƒํ™ฉ์— ๋น ์ ธ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹คใ… ใ…  ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๋” ์‰ฌ์šด ํ›ˆ๋ จ๋ฐฉ๋ฒ•(async/await)์œผ๋กœ ๋ญ‰์น˜๋ฅผ ๊ต์œก์‹œํ‚ค๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค!! # ๋น„๋™๊ธฐ์™€ ๋™๊ธฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ€์žฅ ์‹ ๊ฒฝ์จ์•ผ ํ•˜๋Š” ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋ถ„๋ช… ๋กœ์ง์€ ๋งž๊ฒŒ ์ง ๊ฑฐ ๊ฐ™์€๋ฐ ๊ฒฐ๊ณผ๊ฐ’์ด undefined ์ด๊ฑฐ๋‚˜ ์•Œ์ˆ˜ ์—†๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์‹ญ์ค‘ํŒ”๊ตฌ ๋น„๋™๊ธฐ ๋ฌธ์ œ๋ฅผ ์˜์‹ฌํ•ด..

article thumbnail
[Server] ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ(Load Balancer)๋Š” ์™œ ํ•„์š”ํ• ๊นŒ?
... 2021. 3. 15. 16:55

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

article thumbnail
[Linux] OpenSSH ์„œ๋ฒ„ ๊ตฌ์ถ•ํ•˜๊ธฐ
... 2021. 3. 9. 20:05

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์›๊ฒฉ์œผ๋กœ ์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” OpenSSH ์„œ๋ฒ„์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. OpenSSH ์„œ๋ฒ„๋Š” ํ…”๋„ท ์„œ๋ฒ„์™€ ๊ธฐ๋Šฅ์ด ๋™์ผํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์œผ๋‚˜ ๋ณด์•ˆ์ƒ ์•ˆ์ „ํ•˜์ง€ ๋ชปํ–ˆ๋˜ ํ…”๋„ท์— ๋น„ํ•ด OpenSSH๋Š” ํ›จ์”ฌ ์•ˆ์ „ํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. OpenSSH๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ ์•”ํ˜ธํ™” ํ•œ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. # OpenSSH ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•ด๋ณด์ž ์ €๋Š” VMware workstation ํ™˜๊ฒฝ์—์„œ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ SSH ์„œ๋ฒ„์˜ ํŒจํ‚ค์ง€ ์ด๋ฆ„์€ "openssh-server" ์ด๊ณ  ์„œ๋น„์Šค(๋ฐ๋ชฌ) ์ด๋ฆ„์€ "sshd"์ž…๋‹ˆ๋‹ค. rpm -qa openssh-server ๋ช…๋ น์–ด๋กœ ํ˜„์žฌ ์„ค์น˜๋˜์–ด ์žˆ๋Š” openssh-server๋ฅผ ํ™•์ธํ•ด์ค๋‹ˆ๋‹ค.(CentOS๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ openssh๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค๊ณ  ํ•ฉ..

article thumbnail
[shell] ์…ธ ์Šคํฌ๋ฆฝํŠธ for๋ฌธ๊ณผ while๋ฌธ ๋ฐ˜๋ณต๋ฌธ
... 2021. 3. 9. 19:40

!/bin/sh hap=0 for i in 1 2 3 4 5 6 7 8 9 10 do hap=`expr $hap + $i` done echo "1๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ํ•ฉ:"$hap hap2=0 for((i=0;i

article thumbnail
[shell] ์…€ ์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ
... 2021. 3. 9. 16:52

์‚ฌ์šฉ์ž ์ •์˜ํ•จ์ˆ˜ #!/bin/sh myFunction(){ echo "ํ•จ์ˆ˜ ์•ˆ์œผ๋กœ ๋“ค์–ด์™”์Œ" return } echo "ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค." myFunction echo "ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค." exit 0 ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์‚ฌ์šฉ #!/bin/sh sumFunction(){ echo "$1 $2 ๊ฐœ์˜ ํ•ฉ์€ `expr $1 + $2` ์ž…๋‹ˆ๋‹ค" } echo "ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” $1 ์™€ $2 ์ž…๋‹ˆ๋‹ค" sumFunction $1 $2 #!/bin/sh myFunction(){ result=`expr $1 + $2` return "$result" } temp=$(myFunction 1 2) echo $? export ์™ธ๋ถ€ ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. #!/bin..

article thumbnail
[shell] ์…ธ ์Šคํฌ๋ฆฝํŠธ if๋ฌธ๊ณผ case๋ฌธ
... 2021. 3. 8. 21:05

#if ๋ฌธ if [ ์กฐ๊ฑด ] then ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰ fi *์ฃผ์˜ํ• ์  : '[ ์กฐ๊ฑด ]' ์‚ฌ์ด์˜ ๊ฐ ๋‹จ์–ด์—๋Š” ๋ชจ๋‘ ๊ณต๋ฐฑ์ด ์žˆ์–ด์•ผ ํ•จ if [ ์กฐ๊ฑด ] ๋Œ€์‚ฐ if test ๋„ ๊ฐ€๋Šฅ #!/bin/sh if [ "woo" = "woo" ] then echo "์ฐธ์ž…๋‹ˆ๋‹ค" fi if test "woo1" = "woo1" then echo "์ฐธ2์ž…๋‹ˆ๋‹ค" fi exit 0 ์กฐ๊ฑด๋ฌธ์— ๋“ค์–ด๊ฐ€๋Š” ๋น„๊ต ์—ฐ์‚ฐ์ž ๋ฌธ์ž์—ด ๋น„๊ต ๊ฒฐ๊ณผ "๋ฌธ์ž์—ด1" = "๋ฌธ์ž์—ด2" ๋‘ ๋ฌธ์ž์—ด์ด ๊ฐ™์œผ๋ฉด ์ฐธ "๋ฌธ์ž์—ด1" != "๋ฌธ์ž์—ด2" ๋‘ ๋ฌธ์ž์—ด์ด ๊ฐ™์ง€ ์•Š์œผ๋ฉด ์ฐธ -n "๋ฌธ์ž์—ด" ๋ฌธ์ž์—ด์ด NULL์ด ์•„๋‹ˆ๋ฉด ์ฐธ -z "๋ฌธ์ž์—ด" ๋ฌธ์ž์—ด์ด NULL์ด๋ฉด ์ฐธ ์‚ฐ์ˆ  ๋น„๊ต ๊ฒฐ๊ณผ ์ˆ˜์‹1 -eq ์ˆ˜์‹2 ๋‘ ์ˆ˜์‹์ด ๊ฐ™์œผ๋ฉด ์ฐธ ์ˆ˜์‹1 -ne ์ˆ˜์‹2 ๋‘ ์ˆ˜์‹์ด ๊ฐ™์ง€ ์•Š์œผ๋ฉด..

profile on loading

Loading...