
https://data.seoul.go.kr/dataList/316/S/2/datasetView.do
์ด๋ฆฐ๋ฐ์ดํฐ๊ด์ฅ ๋ฉ์ธ
๋ฐ์ดํฐ๋ถ๋ฅ,๋ฐ์ดํฐ๊ฒ์,๋ฐ์ดํฐํ์ฉ
data.seoul.go.kr






pop=population




@ai.seoeunjin.com/mlservice/app/seoul_crime/seoul_data.py ์ฌ๊ธฐ์์ @seoul_data.py (31-42) ์ด๊ฒ์ @seoul_data.py (10-12) ์ด ํผ์ณ์ ๋ง๊ฒ ์์ ํด์ค
@data ์ดํด๋์ ์ ๋๊ฒฝ๋ก๋ฅผ _dname: str = '' # data path--> ์ฌ๊ธฐ์ ์์๋ก ์ ์ฅํด์ค

str(Path(__file__).parent / "data")์ด๋ฐ์์ผ๋ก ๋ณ๊ฒฝํด์ค
sname๋ ๋ฐ๊ฟ์ค
์ด๋ถ๋ถ ์ถ๊ฐ, import๋ method ์์ ๊ฐ์ ธ์ด
์ด๋ ๊ฒ ๋ณ๊ฒฝ
xlsx ๋ถ๋ถ๋ง ๋์ด๋ค ๋๊ณ
@seoul_method.py (17-19) ์ด๊ฒ์ xlsxํ์ผ์ ๋ฐ์ดํฐํ๋ ์์ผ๋ก ๋ณํํ๋ ๋ฉ์๋๋ก ๋ณ๊ฒฝํด์ค.

์๋น์ค ํ์ผ
@api.seoeunjin.com/src/main/resources/application.yaml ์ฌ๊ธฐ์ @mlservice ์ฌ๊ธฐ๋ก ์ด๋ํ๋ ํฌํธ๋ฅผ 9010์ผ๋ก ์ค์ ํ๊ณ , @application.yaml (39-44) ์ด ์ฝ๋๋ฅผ ์ฐธ์กฐํด์ mlservice๋ก ๊ฐ๋ path๋ฅผ ์ค์ ํด์ค

ใ ใ
์ฐ์ ํ์ดํ๋ ๋ผ์ฐํฐ ๋ด์ฉ-> ์์ธ ๋ผ์ฐํฐ์ ๋ณต์ฌํด์ ์ฐพ๊ธฐ ๋๋ฌ์ ์ฉ์ด ๋ฐ๊พธ๊ธฐ
ํฌ์คํธ๋งจ์ send
http://localhost:8080/api/ml/seoul/preprocess

์ด ๊ฒฝ๋ก๋ฅผ ๋ชป์ฐพ๋๋ฐ, ๋๊ฐ ์์ ํด์ค

x์ ์ฌ๋ ค์ฃผ์ ๋ด์ฉ ์ถ๊ฐ
๋ฉ์๋ ํ์ผ์ ๋ด์ฉ ์ธ๊ฐ
์๋น์ค ํ์ผ์ ๋ด์ฉ ์ถ๊ฐ

์ด๊ฑฐ ๊น๊ธฐ

- ํ์ผ ๋ชฉ๋ก
- CCTV ๋ฐ์ดํฐ
- Crime ๋ฐ์ดํฐ
- Population ๋ฐ์ดํฐ
- ์ ์ฒด ๋ฐ์ดํฐ
- ๋จธ์ง๋ ๋ฐ์ดํฐ
docker logs mlservice
ํฐ๋ฏธ๋์ ์๋์ฌ๋!
์ด๋ถ๋ถ ์๋น์ค ํ์ผ์ ์ถ๊ฐ
@ai.seoeunjin.com/mlservice/app/seoul_crime/seoul_service.py @seoul_service.py (48-51) ์ด ์ฃผ์๋๋ก ์คํํด์ค
์นด์นด์ค ๋งต api key ๋ฐ๋ ๋ฐฉ๋ฒ ์๋ ค์ค
๊ตฌ๊ธ์ ์ ๋ฃ๋ผ์ ์นด์นด์ค๋ก ๊ฐ๊ธฐ๋ก ํจ!
๐ ์นด์นด์ค ์ง๋ API Key ๋ฐ๊ธ ๋ฐฉ๋ฒ
โ 1. ์นด์นด์ค ๋๋ฒจ๋กํผ์ค(Kakao Developers) ์ ์
๐ https://developers.kakao.com
๋ก๊ทธ์ธ → ์นด์นด์ค ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ
โ 2. ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ง๋ค๊ธฐ
- ์ค๋ฅธ์ชฝ ์๋จ ๋ด ์ ํ๋ฆฌ์ผ์ด์
- ์ ํ๋ฆฌ์ผ์ด์ ์ถ๊ฐํ๊ธฐ
- ์ด๋ฆ ์ ๋ ฅ (์: "my map project")
- ์ ์ฅ
โ 3. ์ฑ Key ํ์ธ
์ฑ์ ๋ง๋ค๋ฉด ์๋์ผ๋ก ์๋ 4๊ฐ์ง ํค๊ฐ ์์ฑ๋ผ
- JavaScript ํค (์น์์ ์ง๋ ๋์ธ ๋ ์ฌ์ฉ)
- REST API ํค
- Admin ํค
- Native ํค (๋ชจ๋ฐ์ผ ์ฑ์ฉ)
๐ ์ง๋ ๋์ธ ๋๋ “JavaScript ํค”๋ง ํ์ํจ
โ 4. ํ๋ซํผ ๋ฑ๋ก (์ค์!!)
์น์์ ์ธ ๊ฑฐ๋ฉด ์ฌ์ดํธ ๋๋ฉ์ธ ๋ฑ๋ก์ ํ์์ผ.
- ์ข์ธก ๋ฉ๋ด → ์ฑ ์ค์ → ํ๋ซํผ
- ์น(Web) ์ ํ
- ์ฌ์ดํธ ๋๋ฉ์ธ ์ ๋ ฅ
์์:
๐ ๋๋ฉ์ธ์ ๋ฐ๋์ http/https ํฌํจํด์ ๋ฑ๋กํด์ผ ํจ
โ 5. ์นด์นด์ค ๋งต API ํ์ฑํ (ํ์ํ ๊ฒฝ์ฐ)
๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง ์ฃผ์ ๊ฒ์ ๋ฑ์ ์ด๋ค๋ฉด:
- ๋ด ์ ํ๋ฆฌ์ผ์ด์ → API ์๋น์ค → ๋ก์ปฌ(Local)
- ํ์ฑํ ๋ฒํผ ํด๋ฆญ
๐ ์ด์ ์ฌ์ฉ ๊ฐ๋ฅ!
์น์์ ์ง๋ ๋์ฐ๋ ๊ธฐ๋ณธ ์์


ํ์ฑํ
@ai.seoeunjin.com/mlservice/app/seoul_crime/kakao_map_singletone.py ์ฌ๊ธฐ์ @ai.seoeunjin.com/mlservice/app/seoul_crime/google_map_singleton.py ์ด๊ฒ์ ์ฐธ์กฐํด์, ์นด์นด์ค๋งต api์ ๋ง๊ฒ ์์ ํด์ค
@ai.seoeunjin.com/mlservice/app/seoul_crime/seoul_service.py ์์ KakaoMapSingleton์ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝํด์ค
์นด์นด์ค ์ฑ์์ ํค ๋ค์ด๋ฐ๊ณ envํ์ผ์ ๋ฃ๊ธฐ
@ai.seoeunjin.com/mlservice/app/seoul_crime/kakao_map_singletone.py ์ฌ๊ธฐ์์ ์ฌ์ฉํ๋ ์นด์นด์ค REST APIํค๊ฐ์ ๋ฃจํธ์ ์๋ .envํ์ผ์์ ์ฝ์ด์ค๋๋ก ์ฝ๋ฉํด์ค
์ฌ๋น๋
docker compose build mlservice
docker compose up -d mlservice

์๋ฌ๋์ ํด๊ฒฐํด๋ฌ๋ผ๊ณ ํจ
๋ฐฉ๋ฒ 1: ์ค์๊ฐ ๋ก๊ทธ ํ์ธ (๊ถ์ฅ)
ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ธ์:
์ด ๋ช ๋ น์ด๋ ์ค์๊ฐ์ผ๋ก ๋ก๊ทธ๋ฅผ ๋ณด์ฌ์ค๋๋ค. Postman์์ ์์ฒญ์ ๋ณด๋ด๋ฉด ํฐ๋ฏธ๋์ ๋ฐ์ดํฐ๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
๋ฐฉ๋ฒ 2: ์ต๊ทผ ๋ก๊ทธ ํ์ธ
๋ฐฉ๋ฒ 3: VS Code Docker ํ์ฅ ์ฌ์ฉ
VS Code์ Docker ํ์ฅ์ ์ฌ์ฉํ๋ฉด ์ปจํ ์ด๋ ๋ก๊ทธ๋ฅผ GUI์์ ํ์ธํ ์ ์์ต๋๋ค.

์ข ์๋์ ๊ฒฝ๋๊ฐ์ด ๋์ด
๊ฒฝ๋ก ๊ตฌ์กฐ ์ค๋ช
- /seoul/preprocess → ์ ์ฒ๋ฆฌ ์คํ ์๋ํฌ์ธํธ
- /seoul/files/{file_name} → ํ์ผ ๋ฐ์ดํฐ ์กฐํ ์๋ํฌ์ธํธ
- {file_name}์ cctv, crime, pop, cctv_pop ์ค ํ๋์ฌ์ผ ํฉ๋๋ค
- preprocess๋ ์ง์๋์ง ์๋ ๋ฐ์ดํฐ ํ์ ์ ๋๋ค
์ฌ์ฉ ๋ฐฉ๋ฒ
- ์ ์ฒ๋ฆฌ ์คํ:
- ์ ์ฒ๋ฆฌ๋ Crime ๋ฐ์ดํฐ ์กฐํ:
Postman์์ /api/ml/seoul/preprocess๋ก ์์ฒญํ์ธ์.
save์ csvํ์ผ ๋งใท๋ค์ด ์ ธ์ผํจ.
๋ด์ผ ์์ ํด๋ณด๊ธฐ!
'Project ESG+AI > [์ผ์ KPMG]ESG ๋ฐ์ดํฐ ํ์ฉ ํ์คํ ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 44์ผ์ฐจ. (0) | 2025.12.15 |
|---|---|
| 43์ผ์ฐจ. ์์ธ์ ๋ฒ์ฃ ๋ฐ์ํํฉ&์์ฐ์ด ์ฒ๋ฆฌ (0) | 2025.12.11 |
| 41์ผ์ฐจ. (1) | 2025.12.09 |
| 40์ผ์ฐจ. (0) | 2025.12.08 |
| 39์ผ์ฐจ. (0) | 2025.12.05 |