
6๊ฐ์ ๋ค์ ๋ฐ๋ก ์ฝ๋ฉ ๋ชป์งฌ
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ต์ 2๊ฐ ์ด์
์ฌ๋- ๊ฐ์ฒด-์ค๋ธ์ ํธ, ๊ธฐ๋ฅ์ ์์ง์ผ ์ ์์.
์์ผ๋ฉด-์๋ฆฌ๋จผํธ,
๋์คํฌ-์์ฐ์ด
*๋ฌ๋์คํํฌ ์ฑ
๋ฐ์ดํฐ๋ฒ ์ด์ค-๋์คํฌ
์คํค๋ง-๋์คํฌ
Html์ thymeleaf๋ก ๋ฐ๊ฟ
์คํ๋ง ๋ฐธ๋ฅ
jpa
๊ฐ์ฒด์งํฅ๊ธฐ์ -OOP
๋ง์ด๋ฐ๋์ค๋ OOP๊ฐ ์๋๋ผ ์์ฅ์์ ํด์ถ๋จ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ์ -OOP์๋
๋ฒ ์ด์ค๋ ๋์คํฌ์ด๊ณ
๋ ํผ์งํ ๋ฆฌ๋ ๋ฉ๋ชจ๋ฆฌ
** ๋ ํผ์งํ ๋ฆฌ- “์ ์ฅ์” ๋๋ “๋ณด๊ด์”๋ผ๋ ์๋ฏธ์์. ๊ฐ๋ฐ ํ๊ฒฝ์์๋ ํ๋ก์ ํธ์ ์ฝ๋, ๋ฌธ์, ํ์ผ ๋ฑ์ ๋ชจ์๋๊ณ ๋ฒ์ (๋ณ๊ฒฝ ์ด๋ ฅ)๊น์ง ๊ด๋ฆฌํ ์ ์๋ ์ฅ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์๋ฐ๋ก ์ฐ๊ฒฐํ๋ ๊ฐ์ฒด: ์ปดํ์ผ
*
์ปดํ์ผ(compile) ์ด๋,
์ฌ๋์ด ์ดํดํ ์ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(๊ณ ๊ธ์ธ์ด) ๋ฅผ
์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ์ธ์ด(๊ธฐ๊ณ์ด) ๋ก ๋ณํํ๋ ๊ณผ์ ์ด์์.
์ฆ,
“์ฌ๋์ด ์ด ์ฝ๋๋ฅผ ์ปดํจํฐ๊ฐ ์์๋ฃ๊ฒ ๋ฒ์ญํ๋ ์ผ”
์ด๋ผ๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.
# ๋ํ์ ์ธ ํ์ดํ๋ผ์ธ
ํ์๋ฆฌํ - ์ปจํธ๋กค๋ฌ - ์๋น์ค - ๋ ํฌ์งํ ๋ฆฌ - DB
-->์ฌ๊ธฐ์ ํ์ฅ๋๋ฉด AI
๋ฌด์ง์ฑ์ผ๋ก ํจํด ์ก๊ณ ๊ทธ๋๋ก ๋ง๋๋ ๊ฒ ์ค์!
ํจํด์ด ๊นจ์ง๋ฉด error ์๊ธฐ๋ ๊ฒ์ ์บ์นํด์ ๋ง๋๋ ๊ฒ





- ์์๋ ์คํ, but ์จ๊ธฐ๊ธฐ ์ํ์ฌ private์ฌ์ฉํจ
- public ์ผ๋ก ํ๋ ์ด์ ๋ ๋ถ๋ณ์ ๊ฐ์ผ๋ก ์ค์ ํ๋ ๊ฒ
entity ์ฌ์ฉํ๋ ๊ฒ-

์ด๋ ๊ฒ ํ๋ ์ด์ ? ์ปจํธ๋กค๋ฌ๋ก ์ธ์์ด ๋๋ ค๋ฉด @ Controller

@Repository ์ถ๊ฐ

Messenger ์ถ๋ ฅ๊ฐ์ ๋ธ๋ค๋ ๊ฒ
๋ณด์ฌ์ค๋ค๋ ๊ฒ
์ด๊ฒ์ด ๋งค์ฐ ์ค์!!!
service-DTO
repository-Entity
1. kaggle์์ ํ์ผ ๋ค์ด ๋ฐ๊ธฐ
**
2. csvํ์ผ์ ์๋ฐ๋ก ๋ฐ๊พธ๋ ์ผ ๋ง์ด ํ๊ฒ ๋ ๊ฒ์! ai๋ก ํด์ผํจ
์คํ๋ง๋ถํธ์์ ์ปจํธ๋กค๋ฌ, ์๋น์ค, ๋ ํฌ์งํ ๋ฆฌ๊ฐ ํ์ดํ๋ผ์ธ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๊ณ , DTO, Entity๋ ์์ฑ๋์ด ์์ด. ์ด๋ ์ปจํธ๋กค๋ฌ์ csvํ์ผ์ ์ ๋ก๋ํด์, ํ์ดํ๋ผ์ธ์ ํตํด DB๋ก ์ด๋์ํค๊ณ ์ถ์ด. ๊ณผ์ ์ ์ด๋ณด์์๊ฒ ์๋ ค์ฃผ๋ฏ์ด ์๋ ค์ค.
1๏ธโฃ ์ ์ฒด ํ๋ฆ ์์ฝ
- ์ฌ์ฉ์๊ฐ CSV ํ์ผ ์ ๋ก๋ → /api/csv/upload
- Controller๊ฐ MultipartFile ๋ฐ์ → Service ํธ์ถ
- Service๊ฐ CSV ์ฝ๊ณ → DTO ์์ฑ → Entity ๋ณํ → Repository ์ ์ฅ
- Repository๊ฐ DB์ Entity ์ ์ฅ
- DB์ CSV ๋ฐ์ดํฐ๊ฐ ์ต์ข ์ ์ผ๋ก ๋ค์ด๊ฐ
๋น๋๊ทธ๋๋ค-ํ ๋ฌธ๊ตฌ ์ถ๊ฐ
commons-csv ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ทธ๋๋ค์ ์๋ ค์ค
implementation 'org.apache.commons:commons-csv:1.10.0'

์ปค์์ @๋น๋๊ทธ๋๋ค - ๊ทธ๋๋ค์ ์ ๋ฐ์ดํธ ์์ผ์ค
์๊น ๋ค์ด๋ฐ์ ํ์ผ ์ค์ train ๋์ด์ staticsํด๋์ ๋ฃ์ด์ค
@๋ ์ง์คํฐ์ปจํธ๋กค๋ฌ.java ์ฌ๊ธฐ์ @train.csv ๋งจ์์์๋ถํฐ 5๋ช ๋ง ์ปจํธ๋กค๋ฌ์ ํ๋ฆฐํธํ๋๋ก run์ ์คํํ๋ฉด ์๋ํ๋ ์ฝ๋๋ฅผ ์์ฑํด์ค
@RegisterController.java ์ฌ๊ธฐ์ @train.csv ๋งจ์์์๋ถํฐ 5๋ช ๋ง ์ปจํธ๋กค๋ฌ์ ํ๋ฆฐํธํ๋๋ก run์ ์คํํ๋ฉด ์๋ํ๋ ์ฝ๋๋ฅผ ์์ฑํด์ค

@registerController -์๋ฌ๋ฅผ ์ฒ๋ฆฌํด์ค
-์๋ฌ๋์ฌ๋ cdm์น๋ ํ๋ฉด์ ์ด๊ฑฐ ์ณ์ ํ์ธํด์ฃผ๋ ๊ฒ sysdm.cpl ,3
*๋๋ ์๋ฌ ์๋ด์!!

Run ๋๋ฅด๊ณ register

@RegisterController.java ์ด ์ฝ๋๋ฅผ List์ Map์ผ๋ก ๋ค์ ์ฝ๋ ์ง์ค

๋ฆฌ์คํธ ์์ ์๋ ๋งต์ ๋ญ๋ผํ๋? ์๋ฆฌ๋จผํธ
๋ฐ์ ์์๋๋? ๋งต

ํค<๋ฐธ๋ฅ>

list<>
list<map>



charAt(int index)
index ์๋ฆฌ-7๋ฒ์งธ

jumin.charAt(index:7)
if(){}
else if(){}
else(){}
๐
๐ก 1๏ธโฃ ๋จ์ถํค๋ก ํ ์ค ๋ณต์ฌ
๐ Windows / Linux

int a = 0; (์)
if (a>2) {;} (์กฐ๊ฑด๋ฌธ)
๋ ๊ฐ๋ฅผ ํฉํ๋ฉด(์๊ณ ๋ฆฌ์ฆ)
switch ๋ฌธ์ด ๋ ๊ฐ๋จํด์ 1์์๋ก switch๋ฌธ์ ํ์ฉํ ๊ฒ!
for๋ฌธ๊ณผ while๋ฌธ-๋ด์ผ
๊ตฌ๊ธ๋ ์ค+์ฌ๋ ์กฐํฉ
'Project ESG+AI > [์ผ์ KPMG]ESG ๋ฐ์ดํฐ ํ์ฉ ํ์คํ ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 10์ผ์ฐจ. ํฐ๋ฏธ๋์ csv ํ์ผ ๋ด์ฉ์ด ๋ํ๋๊ฒ ํด์ค (0) | 2025.10.22 |
|---|---|
| 9์ผ์ฐจ. (0) | 2025.10.21 |
| 7์ผ์ฐจ. (0) | 2025.10.17 |
| 6์ผ์ฐจ. ๊ณ์ฐ๊ธฐ์ ํ์ ๊ณ์ฐ๊ธฐ, ์ฃผ๋ฏผ ๋ฒํธ ์ ๋ ฅ ํ ์ถ๋ ฅ ๊ฐ ์์ฑํด์ค (0) | 2025.10.16 |
| 5์ผ์ฐจ. ์ ๋ ฅ๊ฐ์ด ํฐ๋ฏธ๋์ ๋ณด์ด๊ฒ ํด์ค (0) | 2025.10.15 |