Monday(05.12)
์์ ์ผ์ง
๊ธฐ๋ฅ ๋ชฉํ | Kakao Map์ ๋งค๋ฌผ ๋ง์ปค ํ์ + ๊ฑฐ๋๋ฐฉ์, ๋ฐฉํฅ, ์ฃผ์ฐจ, ๊ตฌ/๋ ๊ธฐ์ค ํํฐ๋ง UI ๊ตฌํ |
์ฌ์ฉ ๊ธฐ์ | Kakao Maps JS SDK, JavaScript Fetch API, Spring API ์ฐ๋ |
์ฐ๋ ๋ฐฉ์ | ๊ฐ ํํฐ(depositType, direction, parking, gu, dong) ์ ํ ์ ์๋ฒ์ ์กฐ๊ฑด๋ณ ๋งค๋ฌผ ์์ฒญ → ์ง๋์ ๋ง์ปค ๋ ๋๋ง |
ํธ๋ฌ๋ธ์ํ
๋ฌธ์ | ์์ธ | ํด๊ฒฐ๋ฐฉ๋ฒ |
DOMContentLoaded ์ค๋ณต ์ด๋ฒคํธ ๋ฐ์ธ๋ฉ | ์ฌ๋ฌ ๋ฒ ์ ์ธ๋จ → filter-dong ์ด๋ฒคํธ๊ฐ ์ค๋ณต ํธ์ถ๋จ | ์ด๋ฒคํธ ๋ฑ๋ก ๋ถ๋ถ์ ํ ๋ฒ๋ง ์คํ๋๋๋ก ์ ๋ฆฌํจ |
gu ์ ํ ์ dong ์ต์ ์ด ์ ๋ฐ๋๋ ๋ฌธ์ | dongSelect.innerHTML ์ด๊ธฐํ ์์น๊ฐ ์๋ชป๋จ | gu ๋ณ๊ฒฝ ํธ๋ค๋ฌ ๋ด๋ถ์์ ๋จผ์ ์ด๊ธฐํํ๊ณ ์ดํ fetch๋ก append |
Tuesday(05.13)
http://www.gisdeveloper.co.kr/?p=2332
๋ํ๋ฏผ๊ตญ ์ต์ ํ์ ๊ตฌ์ญ(SHP) ๋ค์ด๋ก๋ – GIS Developer
www.gisdeveloper.co.kr
mapshaper
Drop, paste or select files to import. Shapefile, GeoJSON, TopoJSON, KML and CSV formats are supported. Files can be zipped or gzipped.
mapshaper.org
์์ ์ฌ์ดํธ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ json์ผ๋ก ๋ณํ ํ, ์์ธ์ ํ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ํํ๋ค.
ํ์ ๋งคํ์ ์ํ ํ์ผ๋ก ๋ณํํ์ฌ ํด๋ฆฌ๊ณค์ ๋์๋ค.
์์ ์ผ์ง
์์ ๊ฐ์ | Kakao Maps JS SDK๋ฅผ ์ด์ฉํด ๋ถ๋์ฐ ๋งค๋ฌผ ๋ง์ปค ํ์ + ๊ตฌ/๋ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฒ์ ๋ ๊ฒฝ๊ณ ํด๋ฆฌ๊ณค ์๊ฐํ |
์ฃผ์ ๊ธฐ์ | Kakao Maps JS SDK, GeoJSON, EPSG ์ขํ๊ณ ๋ณํ, pyproj |
GeoJSON ์๋ณธ | ์์ธ์ ๋ฒ์ ๋ ๊ฒฝ๊ณ, EPSG:5174 (์ค๋ถ์์ TM, Bessel ๊ธฐ์ค) |
์ขํ๊ณ ๋ณํ | pyproj๋ฅผ ์ฌ์ฉํ์ฌ EPSG:5174 → EPSG:4326 (WGS84) ์ ํํ ๋ณํ+towgs84 ๋ณด์ ํ๋ผ๋ฏธํฐ ํฌํจ |
๊ฒฐ๊ณผ ํ์ผ | geojson_seoul.json → geojson_wgs84.json ๋ณํ ๋ฐ ์ ์ฉ ์๋ฃ |
ํธ๋ฌ๋ธ ์ํ
๋ฌธ์ | ์์ธ | ํด๊ฒฐ๋ฐฉ๋ฒ |
ํด๋ฆฌ๊ณค์ด ์ค์ ์์น์ ์ด๊ธ๋จ | EPSG:5174 ๋ณํ ์ ๋ณด์ ๊ฐ ๋๋ฝ → ์ ๋ฐ๋ ๋ถ์กฑ | pyproj.CRS.from_proj4()๋ก +towgs84 ํฌํจ proj4 ๋ฌธ์์ด ์ง์ ๋ช ์ |
EPSG:5178 ์ฌ์ฉ ์ ์ค์ฐจ ๋ฐ์ | EPSG:5178์ ์ ๊ตญ ๋จ์ TM ์ขํ๊ณ → ์์ธ ๊ธฐ์ค๊ณผ ๋ถ์ผ์น | EPSG:5174 ์ขํ๊ณ๋ก ๋ณํ |
๋ณํ ํ polygon์ด ์ง๋์ ํ์๋์ง ์์ | transform(x, y) ์์ ๋๋ always_xy=True ๋๋ฝ | Transformer(..., always_xy=True) ์ค์ → ์์ ๊ณ ์ ๋ฐ ๋ณํ ์ ํ์ฑ ํ๋ณด |
Wednesday(05.14)
์์ ์ผ์ง
๋์ถ ์ถ์ฒ ์๋น์ค ์ฐ๋
- MalhaeBangRecommendServer๋ฅผ Spring ์น ์๋ฒ์์ POST ์์ฒญ์ผ๋ก ํธ์ถ | |
- Thymeleaf ๊ธฐ๋ฐ ์
๋ ฅ ํผ ๋ฐ ๊ฒฐ๊ณผ ๋ทฐ ๊ตฌ์ฑ |
|
-model.addAttribute("keywords", ~)๋ก ํค์๋ select ๋ ๋๋ง |
|
- ์กฐ๊ฑด ๋ฏธ์ถฉ์กฑ ์ "์กฐ๊ฑด์ ๋ง๋ ๋์ถ ์ํ์ด ์์ต๋๋ค" ๋ฉ์์ง๋ก graceful ์ฒ๋ฆฌ |
ํธ๋ฌ๋ธ ์ํ
๋ฌธ์ | ์์ธ | ํด๊ฒฐ๋ฐฉ๋ฒ |
ModuleNotFoundError: flask_cors | requirements ๋๋ฝ | flask_cors ์ถ๊ฐ ๋ฐ pip install |
Connection refused from Spring → FastAPI | ํฌํธ ์ถฉ๋ / ์๋น์ค ๋ฏธ๊ธฐ๋ | Docker์์ 5000 ํฌํธ ์ฌ์ฉ ์ค์ธ ์ฑ ํ์ธ macOS์ ๊ธฐ๋ณธ 5000 ํฌํธ ์ฌ์ฉ ์ด์๋ก ์ถฉ๋ → ํฌํธ ๋ณ๊ฒฝ ๋๋ ๊ธฐ์กด ํ๋ก์ธ์ค ์ข ๋ฃ ํ์ |
์ฟ ๋ฒ๋คํฐ์ค ํธ๋ฌ๋ธ ์ํ
๋ฌธ์ ์ํฉ | ์ฌ๋ถํ ํ ์์ปค ๋ ธ๋์ Flannel Pod๊ฐ CrashLoopBackOff |
์์ธ | br_netfilter ์ปค๋ ๋ชจ๋์ด ๋ก๋๋์ง ์์ |
์ฆ์ ์กฐ์น | sudo modprobe br_netfilter |
sysctl ์ค์ | /etc/sysctl.d/k8s.conf์ ์๋ ์ถ๊ฐ: net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 |
์๋ ๋ก๋ ์ค์ | `echo "br_netfilter" |
์ค์ ์ ์ฉ | sudo sysctl --system |
ํ์ธ ๋ช ๋ น์ด | `lsmod |
๊ธฐ๋ ๊ฒฐ๊ณผ | Flannel Pod๊ฐ ์ ์์ ์ผ๋ก Running ์ํ |
Thursday(05.15)
Pod๋ ์ธ์ ๋ ์ง ์ข ๋ฃ๋๊ฑฐ๋ ์ฌ์์๋ ์ ์๋๋ฐ, ์ด๋ Pod ๋ด๋ถ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ด ์ฌ๋ผ์ง๋ฉด ์ ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํด์ผ ํ๋ฏ๋ก ์ฌ๋ผ์ง์ง ์๋๋ก ํด์ผ ํ๋ค.
Persistent Volume Claim(PVC)๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
- PVC๋?
- Kubernetes์์ ์คํ ๋ฆฌ์ง๋ฅผ ๋์ ์ผ๋ก ํ ๋น๋ฐ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฆฌ์์ค
- PVC๋ฅผ ํตํด ์ธ๋ถ ์คํ ๋ฆฌ์ง(ํด๋ผ์ฐ๋ ๋ณผ๋ฅจ, NAS)๋ฅผ ์ฐ๊ฒฐํด Pod๊ฐ ์ข ๋ฃ๋๋๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์กดํ ์ ์๋ค.
MySQL๊ณผ PVC์ ๊ด๊ณ
- MySQL Pod๊ฐ ์์ฑ๋ ๋, PVC๋ฅผ ํตํด ์ธ๋ถ ๋ณผ๋ฅจ(์: AWS EBS, GCP Persistent Disk)์ ๋ง์ดํธ
- MySQL ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ(/var/lib/mysql ๋ฑ)๋ฅผ PVC์ ์ฐ๊ฒฐํด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
- Pod๊ฐ ์ข ๋ฃ๋๊ฑฐ๋ ์ฌ์์ฑ๋์ด๋, PVC์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ๊ทธ๋๋ก ์ ์ง
- ์๋ก ์์ฑ๋ Pod๊ฐ ๋์ผํ PVC๋ฅผ ๋ง์ดํธํด์ ์ด์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ๋ณด์กด ๋จ
๋ฌธ์ ์ | ํด๊ฒฐ |
Pod๊ฐ ์ข ๋ฃ๋๋ฉด ๋ฐ์ดํฐ ์์ค ๊ฐ๋ฅ์ฑ | PVC๋ก ์ธ๋ถ ์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ ์ ์ฅ |
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ ์๊ตฌ ๋ณด์กด ํ์ | PVC๋ฅผ MySQL ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ์ ๋ง์ดํธ |
ํด๋น ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฒฝ์ฐ์๋ง ๋งํน์ด ๋๋๋ก ๋ณ๊ฒฝํ์๋ค.
Friday(05.16)
ํธ๋ฌ๋ธ์ํ
- ์ ๊ท ๋ ธ๋ malhaebang-worker3๋ฅผ ๋ชจ๋ํฐ๋ง ์ ์ฉ์ผ๋ก ๊ตฌ์ฑ
- kube-prometheus-stack Helm ์ฐจํธ๋ก Prometheus + Grafana + Alertmanager + KSM ๋ฐฐํฌ
- NodePort ๋ฐฉ์์ผ๋ก ์ธ๋ถ ์ ์ ๊ฐ๋ฅํ๊ฒ ๊ตฌ์ฑ
- Grafana ๋์๋ณด๋ import ๋ฐ ์ด์ ๊ด์ ์ค๋น ์๋ฃ
Taint์ค์ ํตํ ๋ชจ๋ํฐ๋ง ์ ์ฉ๋ ธ๋ ๊ตฌ์ฑ
kubectl taint nodes malhaebang-worker3 dedicated=monitoring:NoSchedule
๋ฌธ์ 1: Grafana ์ ์ ๋ถ๊ฐ (`Connection Refused`)
- ์์ธ: Pod ์ํ `Unknown`, IP ๋ฏธํ ๋น
- ์ด์ : CNI ์ค์ ์คํจ → Flannel ๋ฌธ์
๋ฌธ์ 2: Flannel CrashLoopBackOff on worker3
๐ ํ์
- worker3 ๋
ธ๋์ Flannel DaemonSet Pod๊ฐ CrashLoopBackOff ์ํ๋ก ๋ฐ๋ณต ์ฌ์์
- `kubectl get pods -n kube-flannel` ๋ช
๋ น์ด๋ก ํ์ธ ๊ฐ๋ฅ
๐ ๏ธ ์์ธ
- CNI ํ๋ฌ๊ทธ์ธ(flannel)์ด ์ ์์ ์ผ๋ก ์๋ํ์ง ์์, worker3 ๋
ธ๋๊ฐ Pod ๋คํธ์ํฌ๋ฅผ ์ค์ ํ์ง ๋ชปํจ
- ํด๋น ๋
ธ๋์ ์์ฑ๋๋ Pod๋ค์ IP๊ฐ ํ ๋น๋์ง ์์ผ๋ฉฐ, Unknown ์ํ๋ก ๋ธ
๐ก ์กฐ์น
- ํด๋น ๋
ธ๋์ CNI ๋๋ ํ ๋ฆฌ(/etc/cni/net.d ๋ฑ) ์ด๊ธฐํ ํ ์ฌ์กฐ์ธ
- ๋๋ Flannel ์ค์ ์ฌ์ ์ฉ
์ผ์ชฝ ์ฌ์ด๋๋ฐ์ ํด๋น ํํฐ๋ง์ ํด๋นํ๋ ์ ๋ณด๋ง ๋จ๋๋ก ์ ๋ฐ์ดํธ + ์ ๋ณด ํด๋ฆญ์ ์์ธ์ ๋ณด
'๐ฐ Woori FISA > ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 21์ฃผ์ฐจ ๊ณผ์ (0) | 2025.05.26 |
---|---|
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 20์ฃผ์ฐจ ๊ณผ์ (0) | 2025.05.19 |
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 18์ฃผ์ฐจ ๊ณผ์ (0) | 2025.04.30 |
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 17์ฃผ์ฐจ ๊ณผ์ (1) | 2025.04.30 |
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 16์ฃผ์ฐจ ๊ณผ์ (0) | 2025.04.24 |