๐Ÿ‘ฉ๐Ÿปโ€๐ŸŒพ

[์šฐ๋ฆฌFISA ํด๋ผ์šฐ๋“œ ์—”์ง€๋‹ˆ์–ด๋ง] 2์ฃผ์ฐจ ํšŒ๊ณ  ๋ณธ๋ฌธ

Activity/์šฐ๋ฆฌFISA

[์šฐ๋ฆฌFISA ํด๋ผ์šฐ๋“œ ์—”์ง€๋‹ˆ์–ด๋ง] 2์ฃผ์ฐจ ํšŒ๊ณ 

์ฅฌ์Šค์ด 2024. 7. 21. 16:14
728x90

2์ฃผ์ฐจ๋Š” ์ •๋ง ๋ˆˆ ๊นœ์งํ•  ์ƒˆ์— ์ง€๋‚˜๊ฐ„ ๊ฑฐ ๊ฐ™๋‹ค๐Ÿ™€

์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์šด ์ฃผ์ œ๋“ค๋„ ๋งŽ์•˜๋Š”๋ฐ ์‹ฌ์ง€์–ด ์–‘๊นŒ์ง€ ๋งŽ์•„์„œ ๊ทธ๋‚ ๊ทธ๋‚  ์ตœ๋Œ€ํ•œ ๋ฐฐ์šด ๋‚ด์šฉ๋“ค์„ TIL ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ๋กœ ๊ธฐ๋กํ•ด๋†“๊ณ ์ž ๋…ธ๋ ฅํ–ˆ๋‹ค.

2์ฃผ์ฐจ TIL ๋ณด๋Ÿฌ๊ฐ€๊ธฐ๐Ÿ‘†๐Ÿป

 

TIL/Woori-FISA/week2 at main ยท 2oo1s/TIL

Contribute to 2oo1s/TIL development by creating an account on GitHub.

github.com

๊ทธ๋Ÿฌ๋ฉด 2์ฃผ์ฐจ ํšŒ๊ณ  ์‹œ์ž‘๐Ÿ”ฅ

 

์›”์š”์ผ

๋ฐฐ์šด ๋‚ด์šฉ๋“ค ์ค‘ Stream API ํ™œ์šฉ๋ฐฉ๋ฒ•์ด ๊ฐ€์žฅ ์ธ์ƒ๊นŠ์—ˆ๋‹ค.

์‚ฌ์‹ค ์ด์ œ๊นŒ์ง€ ์ฝ”ํ…Œ๋ฅผ ๋ณด๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ์ต์ˆ™ํ•˜์ง€ ์•Š์•„ ํ™œ์šฉํ•ด๋ณธ ์ ์ด ์—†์—ˆ๋Š”๋ฐ, ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋‹ˆ ํ›จ์”ฌ ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ€๋…์„ฑ์ด ๋†’์•„๋ณด์˜€๋‹ค.

 

์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ์ง์ ‘ ๋น„๊ตํ•ด๋ณด์žโœ…

List<String> datas2 = Arrays.asList("1", "2", "3", "4", "5");

// Stream API ์‚ฌ์šฉ
System.out.println(datas2.stream().mapToDouble(Double::parseDouble).sum());      // 15.0

// Stream API ์‚ฌ์šฉ X
double sum = 0.0;
for (String str : datas2)
    sum += Double.parseDouble(str);
System.out.println(sum);

์œ„ ์ฝ”๋“œ๋Š” List์— ๋‹ด๊ธด ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ ํ›„ ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ์‹์ด๋‹ค.

๋‘ ๋ฐฉ์‹์„ ๋น„๊ตํ•˜๋ฉด, ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ Stream API๋ฅผ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ๋” ๊ฐ„๊ฒฐํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์‚ฌ์šฉํ•ด๋ณด๋ฉด์„œ ๋А๋‚€ ์ ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ๋ฐ”๋กœ ์ ์šฉํ•ด๋ด์•ผ๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.

 ๊ธด ์ฝ”๋“œ๋ณด๋‹ค ์งง๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๊ฒŒ ๋” ํŽธํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ, ์‹ค์ œ๋กœ ์ฝ”ํ…Œ์— ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ๋ฉด์ ‘์—์„œ๊นŒ์ง€ ์–ธ๊ธ‰๋˜๊ธฐ๋„ ํ•˜๋ฏ€๋กœ

์กฐ๊ธˆ ๋” ํšจ์œจ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ค„ ์•ˆ๋‹ค๋Š” ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ต์ˆ™ํ•ด์ ธ์•ผ๊ฒ ๋‹ค!!!๐Ÿ”ฅ

 

ํ™”์š”์ผ

Elasticsearch์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•๊ณผ Kibana๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํ•™์Šตํ–ˆ๋‹ค.

 

DB ๋‹ค๋ฃจ๋Š” ๊ฒƒ์„ ์žฌ๋ฐŒ์–ดํ•˜๋Š” ๋‚˜๋กœ์„œ ์ƒˆ๋กœ์šด ํˆด์„ ํ™œ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ์ž‘์—…์ด๋ผ ์‚ฌ์‹ค ์กฐ๊ธˆ ์„ค๋ ˆ๊ธฐ๋„ ํ–ˆ๋‹ค. ์‹ฌ์ง€์–ด ๊ทธ๋™์•ˆ์€ RDBMS๋งŒ ๋‹ค๋ค˜๋Š”๋ฐ Nosql์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ํ•˜๋‹ˆ,,, ๋” ํฅ๋ฏธ๋กญ๊ฒŒ ๋А๊ปด์กŒ๋‹ค๐Ÿ™Š

...

๊ทธ๋Ÿฐ๋ฐ ์ˆ˜์—…์„ ๋“ฃ๋‹ค๋ณด๋‹ˆ, ์˜๋ฌธ์ ์ด ์ƒ๊ฒผ๋‹ค.

 

'DB๋ž‘ ์ฐจ์ด๊ฐ€ ์—†์–ด๋ณด์ด๋Š”๋ฐ, Elasticsearch๋ฅผ ์จ์•ผ ๋ผ,,,?'

 

๋ญ”๊ฐ€ ๊ฒ€์ƒ‰์—”์ง„์ด๋ผ๋Š” Elasticsearch์˜ ์ฐจ๋ณ„์ ์„ ๋А๋ผ์ง€ ๋ชปํ•˜์—ฌ,,, ์™œ ์‚ฌ์šฉ์„ ํ•ด์•ผํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์ฐพ์•„๋ณด์•˜๋‹ค.

์ฐพ์•„๋ณด๋ฉฐ ๋‚ด๊ฐ€ ์ •๋ฆฌํ•œ ์ด์œ ๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๋กœ,

1) RDBMS์—์„  ๋ถˆ๊ฐ€๋Šฅํ•œ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ์˜ ์ƒ‰์ธ๊ณผ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅ

2) ์—ญ์ƒ‰์ธ ์ง€์›์œผ๋กœ ๋งค์šฐ ๋น ๋ฅธ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅ

์ด์—ˆ๋‹ค.

 

์ˆ˜์—… ์ค‘์—๋Š” ์ ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•ด์„œ ์ง์ ‘์ ์œผ๋กœ ๋А๊ปด์ง€์ง„ ์•Š์•˜์ง€๋งŒ ํ•ด๋‹น ์ด์œ ๋“ค์„ ๋ฐ”ํƒ•์œผ๋กœ ์ƒ๊ฐํ•ด๋ดค์„ ๋•Œ,

๊ธฐ์—…๊ณผ ๊ฐ™์ด ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•  ๋•Œ 2)์—์„œ์˜ ์—ญ์ƒ‰์ธ ์ง€์›์ด ๊ต‰์žฅํžˆ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์œผ๋กœ ์ž‘์šฉํ•  ๊ฑฐ ๊ฐ™์•˜๋‹ค.

 

'์—ญ์ƒ‰์ธ' ๊ฐœ๋…์€ ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ํ•จ๊ป˜ ์ดํ•ดํ•ด๋ณด์ž๐Ÿค“

์˜ˆ์‹œ ๋ฌธ์žฅ ์ƒ๊ฐํ•ด๋Š”๊ฒŒ ์™ค์ผ€ ์–ด๋ ตใ…ˆi,,,๐Ÿ˜‚

๋งŒ์•ฝ, DB์—์„œ 'iPhone'์ด๋ž€ ๋‹จ์–ด๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•œ๋‹ค๋ฉด ์™ผ์ชฝ ํ‘œ์—์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋ฉฐ 1, 4, 5๋ฒˆ์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ฐพ์•„์•ผํ•œ๋‹ค.

ํ•˜์ง€๋งŒ, ์—ญ์ƒ‰์ธ ๊ฐœ๋…์„ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅธ์ชฝ ํ‘œ์—์„œ 'iPhone'๋งŒ ์ฐพ์œผ๋ฉด 1,4,5๋ฒˆ์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์—ญ์ƒ‰์ธ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ํƒ์ƒ‰ ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ๊นŒ์ง€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค!

์ˆ˜์š”์ผ

DBeaver ํ”„๋กœ๊ทธ๋žจ ํ™˜๊ฒฝ์„ธํŒ…๊ณผ ์šฐ๋ฆฌ์นด๋“œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•ด์„œ ์‹œ๊ฐํ™”ํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ๋‹ค.

DBeaver ํ”„๋กœ๊ทธ๋žจ์€ ๋“ค์–ด๋ดค์ง€๋งŒ, ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•ด๋ณธ ์ ์€ ์—†๋Š” ํˆด์ด์—ˆ๋‹ค.

DBeaver๋ž€?
๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜์ž๋ฉด, ๋ฌด๋ฃŒ ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ DB ๊ด€๋ฆฌ๋„๊ตฌ์ด๋‹ค.

์ข€ ๋” ์ž์„ธํžˆ ์–˜๊ธฐํ•ด ๋ณด์ž! ์šฐ๋ฆฌ๊ฐ€ ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ ํ•˜๋‚˜์˜ DB๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ๋ณด๋‹จ 2๊ฐœ ์ด์ƒ(MySQL, Oracle, MongoDB, etc ...)์˜ DB๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์„ ํ…๋ฐ ๊ทธ๋Ÿด ๋•Œ๋งˆ๋‹ค MySQL์€ workbench๋กœ, Oracle์€ Oracle ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ์—” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค.

DBeaver๋Š” ๋‹ค์–‘ํ•œ DB(๊ฑฐ์˜ ๋ชจ๋“  DB ๊ฐ™๊ธด ํ•˜๋‹ค,,,)๋ฅผ ์ง€์›ํ•˜์—ฌ ์‚ฌ์šฉ ์ค‘์ธ DB๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ด๋Ÿฐ ๋ฒˆ๊ฑฐ๋กœ์›€์„ ํ•ด์†Œํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ํˆด์ด๋‹ค.

...

์ˆ˜์—…์‹œ๊ฐ„์—๋Š” Ubuntu์— ์„ค์น˜ํ•œ MySQL์„ DBeaver์— ์—ฐ๊ฒฐํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ, ์ปค๋„ฅ์…˜์„ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ • ์ค‘์— ์œ„ ์‚ฌ์ง„์— ๋ณด์ด๋Š” Mainํƒญ๊ณผ SSH ํƒญ์ด ๋น„์Šทํ•œ ์„ค์ • ๊ฐ™์€๋ฐ ๊ฐ๊ฐ ์–ด๋–ค ๊ฑธ ๋‹ด๋‹นํ•˜๋Š”์ง€ ๊ถ๊ธˆํ–ˆ๋Š”๋ฐ

๋งˆ์นจ ๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ ์„ค๋ช…ํ•ด์ฃผ์…จ๋‹ค!

์ขŒ์ธก ์ด๋ฏธ์ง€๋Š” Mainํƒญ์œผ๋กœ ๋ฆฌ๋ˆ…์Šค ๋‚ด์— ์„ค์น˜ํ•œ MySQL์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ •์ด๊ณ ,

์šฐ์ธก ์ด๋ฏธ์ง€๋Š” SSHํƒญ์œผ๋กœ ๋ฆฌ๋ˆ…์Šค์™€ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ์— ํ•„์š”ํ•œ ์„ค์ •์ด์—ˆ๋‹ค.

์ขŒ) Ubuntu ํ™”๋ฉด, ์šฐ) DBeaver ํ™”๋ฉด

์„ค์ •์„ ์™„๋ฃŒํ•˜๋ฉด ์œ„ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์„ฑ๊ณต์ ์œผ๋กœ ์—ฐ๊ฒฐ์ด ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค!

 

1์ฃผ์ฐจ ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ํ„ฐ๋ฏธ๋„๋กœ๋งŒ mysql์„ ํ™œ์šฉํ•˜๊ธฐ์—” ๋ถˆํŽธํ•จ์ด ์žˆ๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ํˆด์„ ํ™œ์šฉํ•ด์„œ ์ ‘๊ทผํ•˜๋‹ˆ ์—„์ฒญ ํŽธํ–ˆ๋‹ค๐Ÿ˜ฎ

(์ง€๊ธˆ๊นŒ์ง€ ์‚ฌ์šฉํ•ด๋ณด์ง€ ๋ชปํ•œ ํˆด๋“ค์„ ์‚ฌ์šฉํ•ด๋ณด๋‹ˆ ๋‹ค์–‘ํ•œ ํˆด์„ ์•Œ๊ณ  ํ™œ์šฉํ•˜๋Š”๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ๋„ ์•Œ๊ฒŒ๋๋‹ค =D)

 

๋‹ค์Œ์œผ๋กœ, ์šฐ๋ฆฌ์นด๋“œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒ€๋ณ„๋กœ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

์šฐ๋ฆฌํŒ€์€ ์—ฌํ–‰/๋ ˆ์ €/๋ฌธํ™” ์นดํ…Œ๊ณ ๋ฆฌ์— ํ‰๊ท ์ ์œผ๋กœ ๋งŽ์€ ์†Œ๋น„๋ฅผ ํ•˜๋Š” ๊ณ ๊ฐ์ธต์€ ๋ˆ„๊ตฌ์ธ์ง€, ํ•ด๋‹น ๊ณ ๊ฐ์ธต์ด ๊ฑฐ์ฃผํ•œ ์ง€์—ญ ๋ถ„ํฌ ๋“ฑ๋“ฑ์„ ์‹œ๊ฐํ™”ํ–ˆ๋‹ค.

 

๊ฐœ์ธ์ ์œผ๋กœ, ์œ„ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ต‰์žฅํžˆ ๋œป๊นŠ์—ˆ๋‹ค. ์™œ๋ƒ๋ฉด, ๊ธˆ์œต๊ถŒ์—์„œ๋Š” ์‹ ๊ทœ ์„œ๋น„์Šค๋‚˜ ์‹ ๊ทœ ์ƒํ’ˆ์„ ์–ด๋–ป๊ฒŒ ๊ธฐํšํ•˜๋Š”์ง€์™€ ๋ฐ์ดํ„ฐ์— ์–ด๋–ค ํ•ญ๋ชฉ๋“ค์ด ์–ด๋–ป๊ฒŒ ํฌํ•จ๋˜๋Š”์ง€๊ฐ€ ํ•ญ์ƒ ๋Š˜ ๊ถ๊ธˆํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค๐Ÿง!

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

๋ชฉ์š”์ผ

SQL ์—ฐ์Šต ๋ฐ Elasticsearch์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…์— ๋Œ€ํ•ด ๋ฐฐ์› ๋‹ค.

 

๊ฐ€์žฅ ์ตœ๊ทผ์— ํ•œ ํ”„๋กœ์ ํŠธ์—์„œ๋„ Oracle์„ ์‚ฌ์šฉํ–ˆ๊ณ , ์ฝ”ํ…Œ์—์„œ๋„ ๊ณ„์† Oracle ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋˜ ํ„ฐ๋ผ ์˜ค๋žœ๋งŒ์— MySQL์„ ์‚ฌ์šฉํ•ด์„œ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ฌธ๋ฒ•๋“ค์ด ๊ฝค ์žˆ์—ˆ๋‹ค.

-- Oracle
SELECT ename, NVL(comm, 0), hiredate
FROM emp
WHERE TO_CHAR(hiredate, 'YYYY-MM-DD') = '2022-10-05'

-- MySQL
SELECT ename, IFNULL(comm, 0), hiredate
FROM emp
WHERE DATE_FORMAT(hiredate,'%Y-%m-%d') = '2022-10-05'

์œ„ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉฐ ์˜ˆ์‹œ๋ฅผ ๋“ค์ž๋ฉด, Oracle๊ณผ MySQL์—์„œ 1) NULL๊ฐ’์„ ์น˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, 2) ๋‚ ์งœ ํ˜•์‹์„ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๋‹ค.

์˜ˆ์‹œ๋Š” ์•„์ฃผ ์ผ๋ถ€๋ถ„์ด๊ณ  ๋‹ค๋ฅธ ๋ฌธ๋ฒ•๋“ค์ด ๋” ์žˆ์–ด ์กฐ๊ธˆ ํ—ท๊ฐˆ๋ฆฌ์ง€๋งŒ, ๊ฐ€๋” ์ฝ”ํ…Œ์—์„œ SQL ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ MySQL๋กœ ์ œํ•œํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๊ฐ„ํ˜น ์žˆ์œผ๋ฏ€๋กœ ์ด๋ฒˆ ๊ธฐํšŒ์— MySQL ๋ฌธ๋ฒ•๋„ ๋‹ค์‹œ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๊ณ„๊ธฐ๊ฐ€ ๋  ๊ฑฐ ๊ฐ™๋‹ค =D

 

๋‹ค์Œ์œผ๋กœ, Elasticsearch์—์„œ ์‚ฌ์šฉ๋˜๋Š” 'Text, Keyword' ๊ฐœ๋…์„ ๋ฐฐ์› ๋Š”๋ฐ ์ˆ˜์—…์„ ๋“ค์œผ๋ฉด์„œ๋„ ํ—ท๊ฐˆ๋ ธ๋˜ ๋ถ€๋ถ„์ด๋ผ ์ด๋ฒˆ ํšŒ๊ณ ๋ฅผ ์“ฐ๋ฉด์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋” ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค!๐Ÿค“

 

Elasticsearch์—๋Š” ๋ฌธ์ž์—ด ํ•„๋“œ ์ค‘ Text์™€ Keyword๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ, ๋‘ ํƒ€์ž…์˜ ๊ฒ€์ƒ‰ & ์ƒ‰์ธ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๋‘ ํƒ€์ž…์˜ ์ฐจ์ด๋ฅผ ์˜ˆ์‹œ๋กœ ๋น„๊ตํ•˜๋ฉด, Keyword ํƒ€์ž…์œผ๋กœ "Hello World"๋ผ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ๋ฐ์ดํ„ฐ ๊ทธ๋Œ€๋กœ ์ƒ‰์ธ๋˜์–ด ๊ฒ€์ƒ‰ํ•  ๋•Œ "Hello World" ๊ทธ๋Œ€๋กœ ๊ฒ€์ƒ‰ํ•ด์•ผ ๋˜์ง€๋งŒ, Text ํƒ€์ž…์ธ ๊ฒฝ์šฐ์—๋Š” "Hello", "World"๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ‰์ธ๋˜์–ด Keyword์™€ ๋‹ฌ๋ฆฌ "Hello"๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•ด๋„ ๊ฒ€์ƒ‰์ด ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค!

๊ธˆ์š”์ผ

Filebeat์™€ Logstash๋ฅผ Elasticsearch์™€ ์—ฐ๊ฒฐํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•œ ํ›„,

window์— ์„ค์น˜ํ•œ Elasticsearch, Logstash, Filebeat๋ฅผ ์šฐ๋ถ„ํˆฌ์— ๋˜‘๊ฐ™์ด ์„ค์น˜ํ•˜๊ณ  ํ™˜๊ฒฝ์„ธํŒ…ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค.

์ž์„ธํ•œ ๊ณผ์ •์€ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค!

 

์šฐ๋ถ„ํˆฌ ๋‚ด Elasticsearch ์„ค์น˜ํ•˜๊ธฐ

1. ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜๐Ÿ’ปi) Elasticsearch ์„ค์น˜wget tar -xvf elasticsearch-7.11.1-linux-x86_64.tar.gzii) Filebeat ์„ค์น˜wget tar -xvf filebeat-7.11.1-linux-x86_64.tar.gziii) Logstash ์„ค์น˜wget tar -xvf logstash-7.11.1-linux-x86_64.tar.gz2. ์‹คํ–‰ํ™˜๊ฒฝ

2oo1s.tistory.com

์›”์š”์ผ์— ์„ค์น˜ํ•œ ELK ์Šคํƒ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ํ™œ์šฉํ•˜์—ฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•ด๋ดค์œผ๋‹ˆ ์•„๋ž˜ ์‚ฌ์ง„์„ ์ฐธ๊ณ ํ•ด์„œ ๊ฐ ํ”„๋กœ๊ทธ๋žจ์˜ ์—ญํ• ์„ ์ •๋ฆฌํ•ด๋ณด์ž๐Ÿ“

  • Filebeat
    • ํŠน์ • ํด๋”(์œ„์น˜)์— ์ ์žฌ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ง€ํ•œ ํ›„, Logstash๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก
  • Logstash
    • Filebeat๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜์—ฌ Elasticsearch๋กœ ์ „์†ก
    • Logstash๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  Filebeat์—์„œ Elasticsearch๋กœ ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ๋Ÿด ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •์ œ๋˜๊ณ  ์•Š๊ณ  ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ๋‹ค์ˆ˜ ํฌํ•จ๋˜์–ด ์žˆ์Œ
  • Elasticsearch
    • DB(๋ฐ์ดํ„ฐ ์ €์žฅ), ๊ฒ€์ƒ‰์—”์ง„
  • Kibana
    • Elasticsearch์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”

 

728x90
Comments