[Kotlin] ์ฝ”ํ‹€๋ฆฐ val์™€ var ์ฐจ์ด
ยท
Languages/Kotlin
val(๊ฐ’์„ ๋œปํ•˜๋Š” value) ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜๋‹ค. val๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์ผ๋‹จ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๋‚˜๋ฉด ์žฌ๋Œ€์ž…์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ž๋ฐ”๋กœ ๋งํ•˜์ž๋ฉด final ๋ณ€์ˆ˜์— ํ•ด๋‹นํ•œ๋‹ค. var(๋ณ€์ˆ˜๋ฅผ ๋œปํ•˜๋Š” variable) ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์ฐธ์กฐ๋‹ค. ์ด๋Ÿฐ ๋ณ€์ˆ˜์˜ ๊ฐ’์€ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค. ์ž๋ฐ”์˜ ์ผ๋ฐ˜ ๋ณ€์ˆ˜์— ํ•ด๋‹นํ•œ๋‹ค. ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ฐธ์กฐ์™€ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ๋ถ€์ˆ˜ ํšจ๊ณผ๊ฐ€ ์—†๋Š” ํ•จ์ˆ˜์™€ ์กฐํ•ฉํ•ด ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ํ•จ์ˆ˜ํ˜• ์ฝ”๋“œ์— ๊ฐ€๊นŒ์›Œ์ง„๋‹ค. ์ฝ”ํ‹€๋ฆฐ ์ธ์•ก์…˜ - 65p
[Kubernetes] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ช…๋ น์–ด
ยท
Cloud/Kubernetes
# ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ด๋ฏธ์ง€ ๋ชฉ๋ก kubectl get pods -o wide # pods ํ™•์ธ kubectl get pods # ์ปจํ…Œ์ด๋„ˆ ์ƒํƒœ ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ kubectl get pod -w # ํ˜„์žฌ ๋ชจ๋“ ์ •๋ณด ํ™•์ธ kubectl get all # ํ˜„์žฌ ์„œ๋น„์Šค ํ™•์ธ kubectl get service # ๋ฐฐํฌ๋œ ์ด๋ฏธ์ง€ ์‚ญ์ œ kubectl delete deploy {service name} # ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„ค์ • ํŒŒ์ผ ์ ์šฉ kubectl apply -f kubernetes.yaml # ๋กœ์ปฌ์— ํ•ด๋‹น ์„ค์ •์œผ๋กœ ๋„์›Œ๋ณด๊ธฐ kubectl port-forward {pod name} 8080:8000 # get ๋ช…๋ น์–ด HELP kubectl get -h # ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ ํ™•์ธ kubectl logs {pod name} #์ปจํ…Œ์ด..
[Docker] ๋„์ปค ๋ช…๋ น์–ด
ยท
Cloud/Docker
# ๋„์ปค ์ด๋ฏธ์ง€ ๋ชฉ๋ก ์กฐํšŒ docker images # ๋™์ž‘์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ์กฐํšŒ docker ps # ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ docker rm [์ปจํ…Œ์ด๋„ˆid] # ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ์กฐํšŒ docker ps -a # ์ด๋ฏธ์ง€ ์‚ญ์ œ (-f๋Š” ์˜ต์…˜์ด๊ณ  ๊ฐ•์ œ ์‚ญ์ œ) docker rmi -f [์ด๋ฏธ์ง€id] # ๋„์ปค ์‹คํ–‰ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...] ์˜ต์…˜์„ค๋ช… -ddetached mode ํ”ํžˆ ๋งํ•˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋ชจ๋“œ -pํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ์˜ ํฌํŠธ๋ฅผ ์—ฐ๊ฒฐ (ํฌ์›Œ๋”ฉ) -vํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐ (๋งˆ์šดํŠธ) -e์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ์‚ฌ์šฉํ•  ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ • –name์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ ์„ค์ • –rmํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ์‹œ ์ปจํ…Œ์ด๋„ˆ ์ž๋™ ์ œ๊ฑฐ -it-i์™€ -t๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•œ ๊ฒƒ..
[TIP] ์˜์ˆ˜์ฆ ํ•œ ์žฅ์— 100์›(ํƒ„์†Œ์ค‘๋ฆฝ ์‹ค์ฒœํฌ์ธํŠธ)
ยท
TIP
์˜ฌ ํ•ด๋ถ€ํ„ฐ ์‹œํ–‰๋œ ํƒ„์†Œ์ค‘๋ฆฝ ์‹ค์ฒœํ™œ๋™์„ ํ•˜๊ฒŒ๋˜๋ฉด ์ผ์ • ๊ธˆ์•ก์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค. ํšŒ์› ๊ฐ€์ž…์—์„œ ์ง€๊ธ‰ ๋ฐฉ๋ฒ•์„ ์นด๋“œ/๊ณ„์ขŒ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ๊ตญํ™˜๊ฒฝ๊ณต๋‹จ์—์„œ ์‹œํ–‰ํ•ด์„œ ๋ฏฟ๊ณ  ํ•˜์„ธ์š”. ๋ชจ๋‘ ์‹ ์ฒญํ•ด์„œ ์•Œ๋œฐํ•˜๊ฒŒ ๋ˆ ๋ชจ์œผ์„ธ์š”. https://cpoint.or.kr/netzero/ ํƒ„์†Œ์ค‘๋ฆฝ ์‹ค์ฒœํฌ์ธํŠธ ํƒ„์†Œ์ค‘๋ฆฝ์‹ค์ฒœํฌ์ธํŠธ๋ž€? cpoint.or.kr
[์—ฌ์˜๋„] ์ฝ˜๋ž˜๋“œ 37 ๊ทธ๋ฆด์•ค๋ฐ” ๋Ÿฐ์น˜ ํ›„๊ธฐ
ยท
์‹๋‹น
๋ง› โ˜…โ˜…โ˜…โ˜†โ˜† ๋ถ„์œ„๊ธฐ โ˜…โ˜…โ˜…โ˜…โ˜† ์„œ๋น„์Šค โ˜…โ˜…โ˜…โ˜†โ˜† ์ƒ๋Ÿฌ๋“œ ๋ฐ”์— ์Œ์‹์˜ ์ˆ˜๋Š” ๋งŽ์ง€ ์•Š์€ํŽธ. ๋ฆฌํ•„๋„ ๋น ๋ฅด์ง€ ์•Š์€ํŽธ. ์ฃผ์ฐจ๊ถŒ์„ ์ œ๋Œ€๋กœ ์ฃผ์ง€ ์•Š์€ ์‹ค์ˆ˜๊ฐ€ ์žˆ์—ˆ์Œ. ์Œ์‹์€ ์‚ฌ์ง„์ฐ๊ธฐ ์ข‹๊ฒŒ ์ด์˜์ง€๋งŒ ๋ง›์€ ๊ทธ์ €๊ทธ๋Ÿฐ ํŽธ.
[lol] ๋กค OP.GG for Desktop
ยท
Game
๋กค ์ถ”์ฒœ ๋ฃฌ ์ž๋™ ์„ธํŒ…๊ณผ ์•„์ดํ…œ ํŠธ๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐ€์•ผํ• ์ง€ ๊ฐ€์ด๋“œ ํ•ด์ฃผ๋Š” ๋กค ๋ณด์กฐ ํˆด์ž…๋‹ˆ๋‹ค. ๋ฐ์Šคํฌํƒ‘ ๋‚ด์— ๋กœ๊ทธ์ธ์€ ํ•„์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ฉฐ ์‹คํ–‰ํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ณต์‹ ์‚ฌ์ดํŠธ : OP.GG for Desktop OP.GG for Desktop © 2012-2021 OP.GG. OP.GG isn’t endorsed by Riot Games and doesn’t reflect the views or opinions of Riot Games or anyone officially involved in producing or managing League of Legends. League of Legends and Riot Games are trademarks or registered trade www.op.gg
[TIP] ์•„์ดํฐ, ๋งฅ ์ถ”์ฒœ ์บ˜๋ฆฐ๋”, ํผ์ฆ๊ฒŒ์ž„ ์–ดํ”Œ (22๋…„ 01์›” 27์ผ)
ยท
TIP
โ—‹ Clendar - Minimal Calendar ํด๋ Œ๋‹ค๋ฅด๋Š” ํ•„์š”ํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๋ฏธ๋‹ˆ๋ฉ€๋ฆฌ์ฆ˜ ์บ˜๋ฆฐ๋” ์•ฑ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์žฅ์น˜(์•„์ดํฐ, ์•„์ดํŒจ๋“œ, ๋งฅ)์—์„œ ํญ๋„“๊ฒŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์œ„์ ฏ, ํ‚ค๋ณด๋“œ ๋‹จ์ถ•ํ‚ค ๋ฐ Siri ๋‹จ์ถ•ํ‚ค๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ์„ฏ ๊ฐ€์ง€ ๋‹ค๋ฅธ ํ…Œ๋งˆ ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://apps.apple.com/us/app/id1548102041#?platform=iphone โ—‹ Ray Financial Calculator ๋‹จ์ˆœํ•˜๋ฉด์„œ๋„ ๊ฐ•๋ ฅํ•œ ์ด ์žฌ๋ฌด ๊ณ„์‚ฐ๊ธฐ๋Š” ๋ณต์žกํ•œ ๊ณ„์‚ฐ๋งŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋Œ€๋ถ€๋ถ„์˜ ์žฌ๋ฌด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋น ๋ฅธ ์ฐธ์กฐ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ณ„์‚ฐ๊ธฐ์—๋Š” ์„ค๋ช…, ๊ณต์‹ ๋ฐ ์˜ˆ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ์ •์‹์„ ๋‹จ๊ณ„๋ณ„๋กœ ์„ธ๋ถ„ํ™”ํ•˜๊ณ , ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ๋ณด๊ณ ์„œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต..
[IntelliJ] IntelliJ์—์„œ Junit display names ์•ˆ๋‚˜์˜ฌ ๋•Œ
ยท
Tool/IntelliJ
๋ฌธ์ œ์˜ ์›์ธ์€ IntelliJ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค. ์„ค์ •์„ ๋ฐ”๊ฟ”์ฃผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. IntelliJ settings -> Build, Execution, Deployment -> Gradle and under "Run tests using" select "IntelliJ IDEA" ์ถœ์ฒ˜ : https://stackoverflow.com/questions/59012129/why-isnt-displayname-working-for-me-in-junit-5 Why isn't @DisplayName working for me in JUnit 5? For some reason, I'm really having a hard time getting display names to actually be respected ..
[Git] gitignore ํŒจํ„ด ๊ทœ์น™
ยท
Tool/Git
# : ์ฃผ์„ /TODO : ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” TODO ํŒŒ์ผ ๋ฌด์‹œ build/ : build/ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ ๋ฌด์‹œ *.a : ํ™•์žฅ์ž๊ฐ€ .a์ธ ํŒŒ์ผ ๋ฌด์‹œ !lib.a : .a์ธ ํŒŒ์ผ์€ ๋ชจ๋‘ ๋ฌด์‹œํ•˜์ง€๋งŒ !(๋А๋‚Œํ‘œ)๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ์€ ๋ฌด์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค doc/*.txt : doc/notes.txt ํŒŒ์ผ์€ ๋ฌด์‹œํ•˜๊ณ  doc/server/arch.txt ํŒŒ์ผ์€ ๋ฌด์‹œํ•˜์ง€ ์•Š์Œ doc/**/*.pdf : doc ๋””๋ ‰ํ„ฐ๋ฆฌ ํ•˜์œ„ ๋ชจ๋“  .pdf ํŒŒ์ผ์„ ๋ฌด์‹œ
[IntelliJ] cmder ํ„ฐ๋ฏธ๋„๋กœ ์‚ฌ์šฉํ•˜๊ธฐ
ยท
Tool/IntelliJ
ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ธฐ %CMDER_ROOT% : ํ™˜๊ฒฝ๋ณ€์ˆ˜์— %๋ฅผ ๋บ€ ํ‚ค ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ณ  CMDER ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. "cmd.exe" /c ""%CMDER_ROOT%\vendor\git-for-windows\bin\bash.exe"" ์ •์  ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ธฐ(ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ • ํ•„์š”์—†์Œ) full path to : ์ด ๋ถ€๋ถ„์„ cmder๊ฐ€ ์„ค์น˜๋œ ๊ฒฝ๋กœ๋ฅผ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. "cmd" /k ""full\path\to\vendor\init.bat""