사이드 프로젝트로 사이트를 하나 만들어 보았습니다.
ruinnel

Lv.1 ruinnel (124.♡.117.8)

2024년 12월 3일 AM 01:31 · 수정됨(12. 10. 10:10)

조회 1,535 공감 0


https://law-making.work/


공공데이터 포털​에 있는 데이터로 뭔가 해 볼 만한게 없을까 항상 생각하다가..

"국회의원 발의 법률안"이란 데이터를 보고는..

국회의원 법안발의 건수를 그래프로 그리면 월급루팡(?)을 찾을 수 있지 않을까?

라는 생각이 들어서....

개발자 평가를 commit 개수로 하는 느낌이랑 비슷해서 살짝 저항감은 있었습니다만.. ㅎㅎ


도구를 물색하다가 Observable Framework 라는 걸 발견했습니다.

data visualization 라이브러리로 유명한 D3.js 만든 곳에서 만든 툴 인데요.

markdown으로 작성하면 static site를 생성 해주는 hugo, jekyll 같은 계열인데,

Observable Framework은 그래프를 포함한 dashboard 형태의 사이트를 생성해 줍니다.

hugo로 블로그도 만들어 봤었고 해서 별로 안 어렵겠지 하고 일단 이걸로 해보기로 하고 시작해 봤습니다.


목표는...

1. 열린국회 API로 데이터를 수집

2. 수집한 데이터를 조합 & 집계해서 json 혹은 csv 형태로 저장.

3. Observable Framework에서 2에서 생성한 json, csv 데이터를 읽어서 그래프로 표시

4. static site니까 따로 서버는 없이 github pages에 배포.


열린국회의 데이터가 정합성이 좀 안맞는 곳들이 있더군요.

(동명이인이 있으면 발의자 특정이 불가능, 공동 발의자가 많으면 API로는 데이터 획득 불가 등등...)


Observable Framework 쪽도 생각보다 러닝커브가 높더군요.

Observable Framework 자체는 그래프다보니 markdown 만으로는 페이지 구성이 어려워서 html 과 js를 섞어서 쓰는 형태인데 framwork 자체는 그리 어렵지는 않았습니다만....
Observable Plot​​이 라는 라이브러리로 그래프를 그리는데 이게 D3.js를 조금 쓰기 쉽게 wrapping 해둔 것 같은데 D3.js 로 직접 그리는거 보단 쉽게 만들어 둔거겠지만, 생각보다 원하는 모양으로 그리려면 시행착오가 많이 필요했습니다.


backend 없이 json / csv 같은 데이터 파일 기반으로 dashboard 만드는 시나리오가 별로 많지는 않겠습니다만 ㅎㅎ.

그럴 경우에 Observable Framework 꽤 좋은 툴인거 같습니다.

댓글 (13)

  • ggang9

    ggang9 Lv.1

    24.12.03 · 106.♡.33.16

    python 언어 조금만 다줄수 있으면 https://streamlit.io/ 도 좋은 대안이겠습니다.
  • ruinnel

    ruinnel Lv.1 → ggang9 작성자

    24.12.03 · 106.♡.2.101

    python을 별로 안좋아 해서 봤어도 이걸 선택 하진 않았을거 같긴하네요 ㅎㅎ.
    아무래도 차트에 힘을 좀 주고 싶었던터라...
    이쪽은 차트 쪽이 D3.js 베이스인 observable 보다 조금 약해(?) 보이네요

    제가 잘 못 써서 그렇지...
    차트쪽이 엄청 강력해 보여서 선택 한거거든요.ㅋㅋ 제 능력부족으로 계륵이 된 감도 있습니다만 ㅜㅡㅜ.
  • ggang9

    ggang9 Lv.1 → ruinnel

    24.12.03 · 106.♡.33.16

    저도 덕분에 좋은 프레임워크 알아 가게 되었네요.. ㅎㅎ
    근세 인터렉션이 많고 성능을 위해서라면 결국에는 d3.js로 가게 되긴 합니다. ㅎㅎ
  • ruinnel

    ruinnel Lv.1 → ggang9 작성자

    24.12.03 · 106.♡.10.105

    근데 배울게 너무 많네요.
    d3 직접 쓰기 엄두 안나서 plot 보고 이거다.. 해서 시작한거긴 한데 이것도 너무 어렵습니다 ㅜㅡㅜ.
    원하는 대로 그래프가 안 뽑히네요.
  • frostmoor

    frostmoor Lv.1

    24.12.03 · 118.♡.12.55

    데이터를 보니, 국힘당은 일을 안하긴하네요 ㅎㅎ
  • ruinnel

    ruinnel Lv.1 → frostmoor 작성자

    24.12.03 · 106.♡.10.105

    commit 수로 개발자 일 안한다 그럼 좀 그렇지만 ㅋㅋ
    정량적 평가 라는 것도 있으니까요 ㅋㅋㅋ
  • 규링

    규링 Lv.1

    24.12.03 · 153.♡.181.136

    프레임워크 하나 좋은 거 알아갑니다.
  • ruinnel

    ruinnel Lv.1 → 규링 작성자

    24.12.03 · 116.♡.186.66

    observable 좋은거 같습니다.
    근데 이걸 또 뭐에 쓸까하면 쓸곳이 ㅎㅎ 생각 나진 않네요.

    plot 만 따로 그래프 그리기에는 쓸거 같아요 ㅎㅎ
  • 규링

    규링 Lv.1 → ruinnel

    24.12.03 · 153.♡.181.136

    전 요즘에서야 시각화 관련해서 여러가지로 알아가고 있어서요. ㅎㅎ
    쓸려고 할 때 모르는 것보단 하나라도 알아둬서 나쁠 건 없죠.
  • diynbetterlife

    diynbetterlife Lv.1

    24.12.10 · 220.♡.37.28

    전에 비슷한 제안을 하신 분이 계셨는데 반응이 거의 없더라고요. 그땐 내란이 발생하기 전이기도 하고요.

    < 정치인의 성향을 판독하는 플랫폼이 있으면 어떨까>
    https://www.clien.net/service/board/park/18812790

    다모앙도 뚝딱 탄생한 걸 보면, 마음과 의지가 모이면 될 것 같기도 하고요.. :)

댓글을 작성하려면 이 필요합니다.