๐ฉ๐ปโ๐พ
[์ฐ๋ฆฌFISA ํด๋ผ์ฐ๋ ์์ง๋์ด๋ง] 2์ฃผ์ฐจ ํ๊ณ ๋ณธ๋ฌธ
[์ฐ๋ฆฌFISA ํด๋ผ์ฐ๋ ์์ง๋์ด๋ง] 2์ฃผ์ฐจ ํ๊ณ
์ฅฌ์ค์ด 2024. 7. 21. 16:142์ฃผ์ฐจ๋ ์ ๋ง ๋ ๊น์งํ ์์ ์ง๋๊ฐ ๊ฑฐ ๊ฐ๋ค๐
์๋กญ๊ฒ ๋ฐฐ์ด ์ฃผ์ ๋ค๋ ๋ง์๋๋ฐ ์ฌ์ง์ด ์๊น์ง ๋ง์์ ๊ทธ๋ ๊ทธ๋ ์ต๋ํ ๋ฐฐ์ด ๋ด์ฉ๋ค์ 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)์์์ ์ญ์์ธ ์ง์์ด ๊ต์ฅํ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ผ๋ก ์์ฉํ ๊ฑฐ ๊ฐ์๋ค.
'์ญ์์ธ' ๊ฐ๋ ์ ์๋ ์ฌ์ง๊ณผ ํจ๊ป ์ดํดํด๋ณด์๐ค

๋ง์ฝ, 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ํญ์ผ๋ก ๋ฆฌ๋ ์ค์ ์ฐ๊ฒฐํ๋ ๋ฐ์ ํ์ํ ์ค์ ์ด์๋ค.


์ค์ ์ ์๋ฃํ๋ฉด ์ ์ฌ์ง์ฒ๋ผ ์ฑ๊ณต์ ์ผ๋ก ์ฐ๊ฒฐ์ด ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค!
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์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํ
'Activity > ์ฐ๋ฆฌFISA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฐ๋ฆฌFISA ํด๋ผ์ฐ๋ ์์ง๋์ด๋ง] 6์ฃผ์ฐจ ํ๊ณ (0) | 2024.08.25 |
---|---|
[์ฐ๋ฆฌFISA ํด๋ผ์ฐ๋ ์์ง๋์ด๋ง] 4์ฃผ์ฐจ ํ๊ณ (1) | 2024.08.04 |
[์ฐ๋ฆฌFISA ํด๋ผ์ฐ๋ ์์ง๋์ด๋ง] 1์ฃผ์ฐจ ํ๊ณ (3) | 2024.07.13 |