๐ป ๊ณต๋ถ ๊ธฐ๋ก
-
๐ ํด๋ก์ ํจ์ ํด๋ก์ ๋ ํจ์์ ํจ์๊ฐ ์ ์ธ๋ ์ดํ์ ํ๊ฒฝ์ ์กฐํฉ์ด๋ค. ํด๋ก์ ๋ฅผ ์ดํดํ๋ ค๋ฉด JS๊ฐ ์ด๋ป๊ฒ ๋ณ์์ ์ ํจ๋ฒ์๋ฅผ ์ง์ ํ๋์ง๋ฅผ ์ดํดํด์ผํ๋ค. ๐ ์ดํ์ ๋ฒ์ ์ง์ (Lexical scoping) function init() { var name = "Mozilla"; // name์ init์ ์ํด ์์ฑ๋ ์ง์ญ ๋ณ์์ด๋ค. function displayName() { // displayName() ์ ๋ด๋ถ ํจ์์ด๋ฉฐ, ํด๋ก์ ๋ค. alert(name); // ๋ถ๋ชจ ํจ์์์ ์ ์ธ๋ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ค. } displayName(); } init(); ๐ let๊ณผ const๋ฅผ ์ฌ์ฉํ ๋ฒ์ ์ง์ if (Math.random() > 0.5) { var x = 1; } else { var x = 2; } consol..
JavaScript | ํด๋ก์ ํจ์๐ ํด๋ก์ ํจ์ ํด๋ก์ ๋ ํจ์์ ํจ์๊ฐ ์ ์ธ๋ ์ดํ์ ํ๊ฒฝ์ ์กฐํฉ์ด๋ค. ํด๋ก์ ๋ฅผ ์ดํดํ๋ ค๋ฉด JS๊ฐ ์ด๋ป๊ฒ ๋ณ์์ ์ ํจ๋ฒ์๋ฅผ ์ง์ ํ๋์ง๋ฅผ ์ดํดํด์ผํ๋ค. ๐ ์ดํ์ ๋ฒ์ ์ง์ (Lexical scoping) function init() { var name = "Mozilla"; // name์ init์ ์ํด ์์ฑ๋ ์ง์ญ ๋ณ์์ด๋ค. function displayName() { // displayName() ์ ๋ด๋ถ ํจ์์ด๋ฉฐ, ํด๋ก์ ๋ค. alert(name); // ๋ถ๋ชจ ํจ์์์ ์ ์ธ๋ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ค. } displayName(); } init(); ๐ let๊ณผ const๋ฅผ ์ฌ์ฉํ ๋ฒ์ ์ง์ if (Math.random() > 0.5) { var x = 1; } else { var x = 2; } consol..
2023.05.26 -
ํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ์ถ์ฒ | Everly SQL ์๋ธ์ฟผ๋ฆฌ(Sub Query) ์์ - select์ , from์ , where์ ์ด๋ฒ ํฌ์คํ ์ ์ค๋ฌด SQL์์ ์ ๋ง ๋ง์ด ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ(Sub Query)์ ๋ํด ์๊ฐํ๋ค. โป ์๋ธ์ฟผ๋ฆฌ๋? ์์ ํฌ์คํ ์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ SQL ๋ฌธ๋ฒ์ [SELECT, FROM, WHERE] ๋ผ๊ณ ํ์๋ค. ์๋ธ์ฟผ๋ฆฌ๋ ์์น์ suy379.tistory.com ๐ ์๋ธ์ฟผ๋ฆฌ๋? SQL์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์ฑ์ธ [SELECT, FROM, WHERE] ๊ตฌ๋ฌธ์ผ๋ก SELECT์ , FROM์ , WHERE์ ์ ๊ฐ๊ฐ ํ์ํ ์ ์ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ๋ฌธ์ด ๋ค์ด๊ฐ๋ ๊ฒ์ ์๋ฏธํ..
SQL/Postgresql | Sub Query(์๋ธ์ฟผ๋ฆฌ)ํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ์ถ์ฒ | Everly SQL ์๋ธ์ฟผ๋ฆฌ(Sub Query) ์์ - select์ , from์ , where์ ์ด๋ฒ ํฌ์คํ ์ ์ค๋ฌด SQL์์ ์ ๋ง ๋ง์ด ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ(Sub Query)์ ๋ํด ์๊ฐํ๋ค. โป ์๋ธ์ฟผ๋ฆฌ๋? ์์ ํฌ์คํ ์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ SQL ๋ฌธ๋ฒ์ [SELECT, FROM, WHERE] ๋ผ๊ณ ํ์๋ค. ์๋ธ์ฟผ๋ฆฌ๋ ์์น์ suy379.tistory.com ๐ ์๋ธ์ฟผ๋ฆฌ๋? SQL์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์ฑ์ธ [SELECT, FROM, WHERE] ๊ตฌ๋ฌธ์ผ๋ก SELECT์ , FROM์ , WHERE์ ์ ๊ฐ๊ฐ ํ์ํ ์ ์ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ๋ฌธ์ด ๋ค์ด๊ฐ๋ ๊ฒ์ ์๋ฏธํ..
2023.05.12 -
ํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ STOMP STOMP(Streaming Text Oriented Messaging Protocol)์ ๋ฉ์ธ์ง ๊ธฐ๋ฐ ํต์ ํ๋กํ ์ฝ ์ค ํ๋๋ก, ํ ์คํธ ๊ธฐ๋ฐ์ ๋ฉ์ธ์ง๋ฅผ ์ ์กํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ์ด ํ๋กํ ์ฝ์ ๋๋ถ๋ถ์ ๋ฉ์ธ์ง ๋ธ๋ก์ปค์์ ์ง์๋๋ฉฐ, ๋ค๋ฅธ ๋ฉ์ธ์ง ๊ธฐ๋ฐ ํ๋กํ ์ฝ์ ๋นํด ๋ ๊ฐ๋ณ๊ณ ๊ฐ๋จํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. STOMP๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ ์ ๊ณตํ๋ฉฐ, ํ๋์ ์ฐ๊ฒฐ๋ก ์ฌ๋ฌ ๊ฐ์ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ผ ์ ์๋ค. ๋ํ, ๋ฉ์ธ์ง์ ๊ตฌ๋ (subscription)๊ณผ ๋ฐํ(publish)์ ์ง์ํ๋ฉฐ, ๋ฉ์ธ์ง์ ํ์(queueing)๊ณผ ํธ๋์ญ์ (tran..
Spring | STOMPํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ STOMP STOMP(Streaming Text Oriented Messaging Protocol)์ ๋ฉ์ธ์ง ๊ธฐ๋ฐ ํต์ ํ๋กํ ์ฝ ์ค ํ๋๋ก, ํ ์คํธ ๊ธฐ๋ฐ์ ๋ฉ์ธ์ง๋ฅผ ์ ์กํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ์ด ํ๋กํ ์ฝ์ ๋๋ถ๋ถ์ ๋ฉ์ธ์ง ๋ธ๋ก์ปค์์ ์ง์๋๋ฉฐ, ๋ค๋ฅธ ๋ฉ์ธ์ง ๊ธฐ๋ฐ ํ๋กํ ์ฝ์ ๋นํด ๋ ๊ฐ๋ณ๊ณ ๊ฐ๋จํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. STOMP๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ ์ ๊ณตํ๋ฉฐ, ํ๋์ ์ฐ๊ฒฐ๋ก ์ฌ๋ฌ ๊ฐ์ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ผ ์ ์๋ค. ๋ํ, ๋ฉ์ธ์ง์ ๊ตฌ๋ (subscription)๊ณผ ๋ฐํ(publish)์ ์ง์ํ๋ฉฐ, ๋ฉ์ธ์ง์ ํ์(queueing)๊ณผ ํธ๋์ญ์ (tran..
2023.04.17 -
ํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ Model๊ณผ ModelAndView Model ํ๋ผ๋ฏธํฐ ๋ฐฉ์์ผ๋ก ๋ฉ์๋์ (Model model) ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ด์ฃผ๊ณ String ํํ๋ก ๋ฆฌํดํ๋ค. Model์ ๊ฐ์ ๋ฃ์ ๋ addAttribute()๋ฅผ ์ฌ์ฉํ๋ค. Model ์์ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.ui.Model; @Controller RequestMapping("/mode..
Spring | Model๊ณผ ModelAndViewํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ Model๊ณผ ModelAndView Model ํ๋ผ๋ฏธํฐ ๋ฐฉ์์ผ๋ก ๋ฉ์๋์ (Model model) ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ด์ฃผ๊ณ String ํํ๋ก ๋ฆฌํดํ๋ค. Model์ ๊ฐ์ ๋ฃ์ ๋ addAttribute()๋ฅผ ์ฌ์ฉํ๋ค. Model ์์ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.ui.Model; @Controller RequestMapping("/mode..
2023.04.07 -
https://dany-it.tistory.com/345 putty ๊ธ์ํฌ๊ธฐ, ๊ธ๊ผด ๋ฐ๊พธ๊ธฐ, ์ ์ฅํ๊ธฐ ์ฌ์ฉ๋ฒ putty ๊ธ์ํฌ๊ธฐ, ๊ธ๊ผด ๋ฐ๊พธ๊ธฐ ์ ์ฅํ๊ธฐ putty์์ ๊ธ์๊ฐ ์์์ ์ ๋ณด์ด์ง ์๋๋ค. ๊ทธ๋์ ๊ธ์ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๊ธฐ๋ก ํ์๋ค. putty๋ฅผ ์คํํด์ ๋ค์ด๊ฐ๋ฉด apperanceํญ์์ ๊ธ๊ผด์ ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ ๋ฐํ dany-it.tistory.com
Putty | ํฐํธ ํ๊ฒฝ์ค์ https://dany-it.tistory.com/345 putty ๊ธ์ํฌ๊ธฐ, ๊ธ๊ผด ๋ฐ๊พธ๊ธฐ, ์ ์ฅํ๊ธฐ ์ฌ์ฉ๋ฒ putty ๊ธ์ํฌ๊ธฐ, ๊ธ๊ผด ๋ฐ๊พธ๊ธฐ ์ ์ฅํ๊ธฐ putty์์ ๊ธ์๊ฐ ์์์ ์ ๋ณด์ด์ง ์๋๋ค. ๊ทธ๋์ ๊ธ์ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๊ธฐ๋ก ํ์๋ค. putty๋ฅผ ์คํํด์ ๋ค์ด๊ฐ๋ฉด apperanceํญ์์ ๊ธ๊ผด์ ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ ๋ฐํ dany-it.tistory.com
2023.03.15 -
https://doheejin.github.io/linux/2021/03/03/linux-scp.html [Linux] scp ๋ช ๋ น์ด๋ก (๋ก์ปฌ↔์๋ฒ) ํ์ผ ์ ์ก scp๋ SecureCopy์ ์ฝ์๋ก, ์๊ฒฉ์๋ฒ์ ์๋ ํ์ผ๊ณผ ํด๋๋ฅผ ์ ์กํ๊ฑฐ๋ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ช ๋ น์ด์ด๋ค.ssh ์๊ฒฉ ์ ์ ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ssh์ ๋์ผํ 22๋ฒ ํฌํธ๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ passw doheejin.github.io
Linux | scp ๋ช ๋ น์ด, ํ์ผ ์ ์กhttps://doheejin.github.io/linux/2021/03/03/linux-scp.html [Linux] scp ๋ช ๋ น์ด๋ก (๋ก์ปฌ↔์๋ฒ) ํ์ผ ์ ์ก scp๋ SecureCopy์ ์ฝ์๋ก, ์๊ฒฉ์๋ฒ์ ์๋ ํ์ผ๊ณผ ํด๋๋ฅผ ์ ์กํ๊ฑฐ๋ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ช ๋ น์ด์ด๋ค.ssh ์๊ฒฉ ์ ์ ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ssh์ ๋์ผํ 22๋ฒ ํฌํธ๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ passw doheejin.github.io
2023.03.15 -
https://velog.io/@qlgks1/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%8D%B0%EB%AA%ACDaemon ๋ฆฌ๋ ์ค ๋ฐ๋ชฌ(Daemon) - service, systemctl(systemd), daemon ์คํ ๋ฐ ์์ฑํ๊ธฐ ์ด๋ฆ์ ์ ๋๋ ๋งฅ์ค์ฐ์ ๋๊นจ๋น์์ ๋ฐ์๋ค๊ณ ํ๋ค, "๋งฅ์ค์ฐ์ ์ฌ๊ณ ์คํ - ์ด์ญํ ์ 2๋ฒ์น์ ๊ฐ์ ์จ๋๋ฅผ ๊ฐ๋ ๋ ๋ฌผ์ฒด๊ฐ ์๋ฐ์ ์ผ๋ก ์๋ก ์จ๋๊ฐ ๋ฌ๋ผ์ง๋ ๊ฒ" ์ ์คํ ์ค๋ช ์์ ์์ '๋๊นจ๋น' velog.io
Linux | Daemonhttps://velog.io/@qlgks1/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%8D%B0%EB%AA%ACDaemon ๋ฆฌ๋ ์ค ๋ฐ๋ชฌ(Daemon) - service, systemctl(systemd), daemon ์คํ ๋ฐ ์์ฑํ๊ธฐ ์ด๋ฆ์ ์ ๋๋ ๋งฅ์ค์ฐ์ ๋๊นจ๋น์์ ๋ฐ์๋ค๊ณ ํ๋ค, "๋งฅ์ค์ฐ์ ์ฌ๊ณ ์คํ - ์ด์ญํ ์ 2๋ฒ์น์ ๊ฐ์ ์จ๋๋ฅผ ๊ฐ๋ ๋ ๋ฌผ์ฒด๊ฐ ์๋ฐ์ ์ผ๋ก ์๋ก ์จ๋๊ฐ ๋ฌ๋ผ์ง๋ ๊ฒ" ์ ์คํ ์ค๋ช ์์ ์์ '๋๊นจ๋น' velog.io
2023.03.15 -
https://lemonandgrapefruit.tistory.com/24 VMware์์ NAT ์ค์ ๋ฐ VMware์์ NAT ํ๊ฒฝ์์ Windows ์ค์น VMware์์ NAT ์ค์ [ Edit > Virtual Network Editor ] ์ ๋ค์ด๊ฐ๋ค. VNnet8์์ IP์ Subnetmask๋ฅผ ์ค์ ํด์ค๋ค. NAT setting ์ DHCP setting๋ฅผ ๊ฐ๊ฐ ๋ค์ด๊ฐ๋ค. Gateway IP ์ฃผ์๋ฅผ ์ค์ ํ๋ค. Start IP ์ Ending IP๋ฅผ ์ค์ ํด์ฃผ๋ lemonandgrapefruit.tistory.com https://hyeo-noo.tistory.com/383 [Linux] ๋ฆฌ๋ ์ค ์๋ฒ ์ ์ ๋ฐฉ๋ฒ๊ณผ ๋๊ตฌ(ubuntu) Server์ ์ด๋ป๊ฒ ์ ์ํ๋์? ํน๋ณํ ์ฌ์ฉํ๋ ๋๊ตฌ๋ ๋ฐฉ๋ฒ์ด ..
Linux / VMware | NAT ์ค์ https://lemonandgrapefruit.tistory.com/24 VMware์์ NAT ์ค์ ๋ฐ VMware์์ NAT ํ๊ฒฝ์์ Windows ์ค์น VMware์์ NAT ์ค์ [ Edit > Virtual Network Editor ] ์ ๋ค์ด๊ฐ๋ค. VNnet8์์ IP์ Subnetmask๋ฅผ ์ค์ ํด์ค๋ค. NAT setting ์ DHCP setting๋ฅผ ๊ฐ๊ฐ ๋ค์ด๊ฐ๋ค. Gateway IP ์ฃผ์๋ฅผ ์ค์ ํ๋ค. Start IP ์ Ending IP๋ฅผ ์ค์ ํด์ฃผ๋ lemonandgrapefruit.tistory.com https://hyeo-noo.tistory.com/383 [Linux] ๋ฆฌ๋ ์ค ์๋ฒ ์ ์ ๋ฐฉ๋ฒ๊ณผ ๋๊ตฌ(ubuntu) Server์ ์ด๋ป๊ฒ ์ ์ํ๋์? ํน๋ณํ ์ฌ์ฉํ๋ ๋๊ตฌ๋ ๋ฐฉ๋ฒ์ด ..
2023.03.15