Banner

My Tech Blog (๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ)

์˜ค๋Š˜์˜ ๋ช…์–ธ
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹์™„์ „ํƒ์ƒ‰์€ ์•ˆ๋˜๋Š” ์ด์œ ๋ฌธ์ œ์—์„œ numberโ‰ค1,000,000์œผ๋กœ ์ตœ๋Œ€ ๋ฐฑ๋งŒ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. number ๊ฐ’์ด ๋„ˆ๋ฌด ์ปค์„œ ์™„์ „ ํƒ์ƒ‰์€ ํ˜„์‹ค์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. k๋Š” 1 ์ด์ƒ len(number) - 1 ์ดํ•˜์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆซ์ž๊ฐ€ 1,000,000์ž๋ฆฌ๋ผ๋ฉด ์ตœ๋Œ€ 999,999๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•œ๋‹ค. ์™œ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์จ์•ผ ํ•˜๋Š”๊ฐ€?์ˆซ์ž๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์ˆœํšŒํ•˜๋ฉด์„œ ์ ์ ˆํ•œ ์ˆซ์ž๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•œ๋‹ค. ์ˆซ์ž๊ฐ€ ๋ฐฑ๋งŒ ์ž๋ฆฌ์—ฌ๋„ 1,000,000๋ฒˆ์˜ ๋น„๊ต๋งŒ ํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ด ์ข‹๋‹ค.๋ฌธ์ œ์˜ ํ•ต์‹ฌ = '์•ž์—์„œ๋ถ€ํ„ฐ ๋’ค๋กœ ํฐ ์ˆซ์ž ์œ ์ง€'์•ž์ž๋ฆฌ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ˆซ์ž๋ฅผ ์„ ํƒํ•˜๋ฉฐ ํฐ ์ˆซ์ž๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ’€์–ด์•ผ ํ•œ๋‹ค.๋‚˜๋Š” ์ด์ค‘ํฌ๋ฌธ์œผ๋กœ ํ’€์—ˆ๋Š”๋ฐ ๋‹ค๋ฅธ ๋ถ„๋“ค์ด ํ’€์ดํ•œ ๊ฑธ ๋ณด๋‹ˆ ์Šคํƒ์„ ์‚ฌ์šฉํ•ด ๋”..
๐Ÿ“‘ 1. ๋Œ€์†Œ๋ฌธ์ž ๋ฐ”๊ฟ”์„œ ์ถœ๋ ฅํ•˜๊ธฐimport java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); System.out.println(swapCase(a)); } public static String swapCase(String str) { StringBuilder result = new StringBuilder(); for(char c:str.toCharArray()) { if(Character.isUpperCase(c) ) { resu..
Basic Command ์ •๋ฆฌ์ž๋™์™„์„ฑ: `Tab` ํ‚ค  ** ํด๋”๋‚˜ ํŒŒ์ผ ์ž…๋ ฅํ•  ๋•Œ ํ•ด๋‹น ์œ„์น˜ ์•ˆ์— ์žˆ๋Š” ํด๋”๋‚˜ ํŒŒ์ผ์€ ์•ž๊ธ€์ž๋งŒ ์ž…๋ ฅํ•˜๊ณ  ํƒญํ‚ค ๋ˆ„๋ฅด๋ฉด ์ž๋™์™„์„ฑโ€‹๋ถ™์—ฌ๋„ฃ๊ธฐ:`Shift + INS` ๋˜๋Š” ์šฐํด๋ฆญ** Ctrl + v ํ•˜๋ฉด Ctrl์ด ํŠน์ˆ˜๋ฌธ์ž ^๋กœ ์ž…๋ ฅ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ 1. ls (List)ls : ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ ๋ฐ ํด๋”๋ฅผ ๊ธฐ๋ณธ ํ˜•์‹์œผ๋กœ ๋ณด์—ฌ์ค€๋‹ค. ls -l : ํŒŒ์ผ ๋ฐ ํด๋”์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด์™€ ํ•จ๊ป˜ ๋ฆฌ์ŠคํŠธ์—… ํ•œ๋‹ค. ls -a : ์ˆจ๊ฒจ์ง„ ํŒŒ์ผ์„ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ํŒŒ์ผ์„ ๋ณด์—ฌ์ค€๋‹ค.** `.env` ๊ฐ™์€ ํ™˜๊ฒฝ์„ค์ • ํŒŒ์ผ๋“ค์€ ์ˆจ๊ฒจ์ ธ ์žˆ์–ด์„œ ๊ทธ๋ƒฅ -ls ๋กœ๋Š” ์•ˆ๋‚˜์˜จ๋‹ค. `ls -a`์ด๋‚˜ `ls -al`๋กœ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•œ๋‹ค.  2. cd (Change Directory)cd๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค. c..
Sensor1_X:66,Sensor1_Y:69,Sensor1_Z:61,Sensor2_X:-14,Sensor2_Y:20,Sensor2_Z:-20โ€ฆ.(์ค‘๋žต)>์ด๋Ÿฐ ๊ฒŒ ๊ณ„์† ๋ฐ˜๋ณต๋จ , ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ ๋‚˜๋ˆ„๋ ค๊ณ  ํ•จ. data = "Sensor1_X:70,Sensor1_Y:53,Sensor1_Z:73,Sensor2_X:1,Sensor2_Y:1,Sensor2_Z:1" # ์˜ˆ์‹œ ๋ฐ์ดํ„ฐ# ','๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ”sensor_data = data.split(',')# ':'๋กœ ๋‹ค์‹œ ๋‚˜๋ˆ„์–ด์„œ ๊ฐ๊ฐ์˜ ์„ผ์„œ ๊ฐ’ ์ถ”์ถœsensor_dict = {}for sensor in sensor_data: sensor_name, value = sensor.split(':') sensor_dict[sensor_name] = int(..
๊ทธ๋งŒ ๋‘๊ณ  ์‹ถ๋‹ค ๋„ˆ๋ฌด ํž๋“ค์˜ค ใ… ใ… ์ง€๊ธˆ์€ ์ƒˆ๋ฒฝ 2์‹œ 7๋ถ„  ์‚ฌ๊ฑด์˜ ๋ฐœ๋‹จ- ๊ฐœ์ธ์œ„ํ‚ค๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ฐฐํฌํ•˜๋ ค๊ณ  ํ•จ.- WMAPP๋กœ localhost์—์„œ ์‹คํ–‰ํ•จ - ์ž๋ฃŒ์ •๋ฆฌ ๋‹ค ํ•ด์„œ ์˜ฌ๋ ค๋†“์Œ- ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด yaml ํŒŒ์ผ ๋งŒ๋“ค์–ด์„œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋งŒ๋“ฆ- ์„ค์ •ํŒŒ์ผ ์ž˜๋ชป๋งŒ์ง- ๊ธฐ์กด์— ๋กœ์ปฌ์—์„œ ์‹คํ–‰๋˜๋˜ ํ”„๋กœ์ ํŠธ์— ์•„์˜ˆ ์ ‘๊ทผ์ด ์•ˆ ๋จ- apache log ๋ž‘ mysql log ํŒŒ์ผ ํ™•์ธํ–ˆ์œผ๋‚˜ ์ด์ƒ ์—†์Œ   ํ˜„์žฌ ์ƒํƒœ ์™œ ์•ˆ๋˜๋Š”๊ณ ์•ผ ์ปดํ“จํ„ฐ ์™œ ์ด๋ž˜ ๐Ÿฅณ์ด์ œ ํฌ๊ธฐํ•  ๋•Œ์ธ๊ฐ€๋ฐ”,,,ํ”„๋กœ์ ํŠธ๋Š” ์—ฌ๊ธฐ์„œ ์ž ๊น ์‰ฌ์–ด๋„ ๋˜๋Š”๋ฐ๊ทธ๋™์•ˆ ์ •๋ฆฌํ•ด๋†“์€ ์ž๋ฃŒ๋“ค ๋ฐฑ์—…์„ ํ•˜์ง€ ๋ชปํ•ด์„œ ๋‹นํ™ฉ์Šค๋Ÿฝ๋‹ค.DB๋Š” ๋‚จ์•„์žˆ๋Š”๋ฐ ๊ทธ๊ฑฐ ๋ฐฑ์—…ํ•ด๋„ ์ •๋ฆฌ๋œ ํ˜•์‹์€ ์•„๋‹๊ฑฐ ์•„๋ƒ๋งˆ์Œ์ด ๋„ˆ๋ฌด ์•„ํฌ ๐Ÿฅฒ ์›๋ž˜ ๊ณ„ํš์€ ์ €๋ฒˆ์ฃผ๊นŒ์ง€ ๋ฐฐํฌ๋ฅผ ํ•˜๋Š”๊ฒƒ์ด์—ˆ๋‹ค.์‚ฌ๋ฌด์‹ค์—์„œ ์ผํ•˜๋‹ค๊ฐ€ ์—‘์…€์ด๋‚˜ ํ•œ๊ธ€ ๋‹จ์ถ•ํ‚ค..
๋ฌธ์ œ - Running Docker on Ubuntu 22.04`docker-compose up -d`- Above command fails with this error:dainwiki@DESKTOP-4OPVAQ5:~$ docker-compose up -dERROR: yaml.scanner.ScannerError: mapping values are not allowed here  in "./docker-compose.yaml", line 6, column 31 ์˜ˆ์ƒํ•œ ์›์ธ์•ผ๋ฏˆ ํŒŒ์ผ์€ ๋„์–ด์“ฐ๊ธฐ์— ๋ฏผ๊ฐํ•˜๋ฏ€๋กœ yaml ํŒŒ์ผ 6๋ฒˆ์งธ ์ค„ 31๋ฒˆ์งธ ๋ฌธ์ž์— ๊ตฌ๋ฌธ ์˜ค๋ฅ˜๋Š” ๋„์–ด์“ฐ๊ธฐ๋‚˜ ์ฝœ๋ก  ๋ฌธ์ œ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ํผ.๋‚ด๊ฐ€ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด์„œ ํ•œ ์ผ1. yaml validator ๋Œ๋ ค๋ณด๊ธฐํ˜•์‹์ด ์œ ํšจํ•œ yamlํŒŒ์ผ๋กœ ํ™•์ธ๋จ 2. l..
gif ๊ธฐํ”„x ์ง€ํ”„ovite ๋ฐ”์ดํŠธx ๋น„ํŠธodelphi ๋ธํŒŒ์ดx ๋ธํ”ผquery ์ฟผ๋ฆฌ ํ€ด์–ด๋ฆฌ# hash ํ•ด์‹œ ์ƒต ์ƒฌํ”„! ๋ฑ… ๋Š๋‚Œํ‘œ* ์• ์Šคํ„ฐ๋ฆฌ์Šคํฌ ๋ณ„ํ‘œ^ ์บ๋Ÿฟ~ ํ‹ธ๋” ๋ฌผ๊ฒฐํ‘œ` ๋ฐฑํ‹ฑ ๋ฐฑ์ฟผ๋“œzustand ์ €์Šคํƒ ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ? ์ฅฌ์Šคํƒ•o (๋…์ผ์–ด) async ์—์ด์‹ฑํฌawait ์–ด์›จ์ž‡ajax ์•„์ž‘์Šคx ์—์ด์žญ์Šคasus ์–ด์ˆ˜์Šคx ์—์ด์ˆ˜์Šคo width ์œ„๋“œx ์œ—์Šคo height ํ—ค์ดํŠธx ํ•˜์ดํŠธobranch ๋ธŒ๋žœ์น˜null ๋„route router ๋ฃจํŠธ ๋ฃจํ„ฐredirect ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ๋ฆฌ๋””๋ ‰์…˜ ๋‘˜๋‹ค ๋จstringify ์ŠคํŠธ๋ง์ดํŒŒ์ด ์ŠคํŠธ๋ง์ง€ํŒŒ์ด ๋‘˜๋‹ค ๋จregex ๋ ˆ์ ์Šค ๋ ˆ๊ฒ์Šค ๋‘˜๋‹ค ๋˜๊ณ  ๋ ˆ๊ทธ์—‘์Šค ์•„๋‹˜ chore ์ตธ์–ดazure ์• ์ €label ๋ผ๋ฒจx ๋ ˆ์ด๋ธ”othreshold ์Šค๋ ˆ์ˆ„๋“œhref ์—์ด์น˜๋ ˆํ”„ nginx ์—”์ง„์—‘์Šค #! sh..
๊ฐœ์ธ์œ„ํ‚ค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ƒฅ ๋ณ„ ์ƒ๊ฐ ์—†์ด XAMPP๋กœ ์„ค์ •์„ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๋ฐฐํฌํ•˜๋ ค๊ณ  ์ค€๋น„ํ•˜๋˜ ์ค‘์— XAMPP๋Š” ๋กœ์ปฌ์—์„œ๋Š” ์œ ์šฉํ•˜์ง€๋งŒ, ํ˜ธ์ŠคํŒ…์ด๋‚˜ ๋ฐฐํฌ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฑธ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ WSL2๋ฅผ ์„ค์น˜ํ•ด์„œ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด ์ค€ ๋‹ค์Œ์— Docker์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ์œผ์Œ ์†”์งํžˆ ๋„์ปค๊ฐ€ ๋ญ”์ง€ ํ™•์‹คํ•˜๊ฒŒ๋Š” ๋ชจ๋ฅด๊ฒ ๋‹ค ?๊ทผ๋ฐ ์•ˆ์“ฐ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€๋Š” ๊ฐ์ด ์žกํžŒ๋‹ค.... ๋„์ปค๋ฅผ ์“ฐ๋Š” ์ด์œ ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‚ด๊ฐ€ ๋งŒ๋“  ์›น์‚ฌ์ดํŠธ๊ฐ€ ์ง‘์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ, ํ•™๊ต ์ปดํ“จํ„ฐ์—์„œ๋Š” ์•ˆ ๋  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋‘ ์ปดํ“จํ„ฐ์˜ ํ™˜๊ฒฝ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. Docker๋Š” ์ด๋Ÿฐ ํ™˜๊ฒฝ ์ฐจ์ด๋ฅผ ์—†์• ์ค˜์„œ, ์–ด๋””์„œ๋‚˜ ๋˜‘๊ฐ™์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š”๋ฐ ๊ทธ ์žฅ์ ์ด ์žˆ๋‹ค. Docke..
์ƒ๋‹จ์œผ๋กœ