oss2024hnu / coursegraph-py

BSD 2-Clause "Simplified" License
5 stars 71 forks source link

graphviz 도입 관련 개발환경 설정을 위한 문서화 필요 #323

Open HeoSeungBeen opened 1 month ago

HeoSeungBeen commented 1 month ago

19 선택받지 않은 노드에 화살표가 겹치는 이슈의 해결방안으로

Graphviz 패키지를 선택했음을 해당 이슈를 통해 알 수 있습니다.

Graphviz 는 그래프를 시각화하는 오픈 소스 소프트웨어로써 동작합니다. https://www.graphviz.org/

스크린샷 2024-05-28 15 57 40

그러나 이 소프트웨어를 파이썬으로 동작시키기 위해서는 PyGraphviz 가 필요합니다. PyGraphviz 는 Graphviz 그래프와 시각화 패키지에 대한 파이썬 인터페이스로써 PyGraphviz 를 이용함으로써 Graphviz 를 통해 생성한 그래프에 대해 다양한 작업을 수행할 수 있습니다. https://pygraphviz.github.io/

스크린샷 2024-05-28 15 59 52

일단 첫번째로 PyGraphviz 를 설치하기 위해서는 Python, Graphviz, Graphviz-dev, C/C++ compiler 가 선행으로 설치되어 있어야합니다. https://pygraphviz.github.io/documentation/stable/install.html

스크린샷 2024-05-28 16 05 03

Graphviz 를 통해 #19 이슈를 해결하려면 결국 개발환경 세팅이 선행되어야하는데, codespace를 포함한 Linux 환경에서는 requirements.txt 의 수정을 통해서 개발 환경 설정이 가능하지만, 윈도우 로컬 개발자들에 한해서 Graphviz 의 설치가

스크린샷 2024-05-28 16 08 26

사진과 같이 CLI 환경이 아닌 직접 설치해야하는 차이가 존재합니다.

심지어 Graphviz 설치에 있어서 pip 명령어가 아닌 sudo apt 명령어를 사용해야함에 있어서 requirements.txt 파일작성에 유의해야합니다.

Graphviz Download : https://www.graphviz.org/download/ PyGraphviz Download : https://pygraphviz.github.io/documentation/stable/install.html

결국 윈도우 리눅스 환경에 따른 Graphviz 와 PyGraphviz 설치를 문서화해야하는 이슈가 있습니다.

kyahnu commented 1 month ago

그래서 이슈에서 제기하려고 하는 바가 무엇인지 명확히 제목에 드러나게 작성해 주세요

뭘 해결하는 게 목표인지 글에 분명히 하나의 주제가 드러나지 않습니다.

graphviz를 도입하기 위해서는 환경설정에 대한 문서화가 필요하다는 이야기로 제가 나름대로 해석해서 제목을 바꾸겠습니다

kyahnu commented 1 month ago

graphviz를 아직

19 선택받지 않은 노드에 화살표가 겹치는 이슈의 해결방안으로

Graphviz 패키지를 선택했음을 해당 이슈를 통해 알 수 있습니다.

Graphviz를 아직 선택한 건 아니고 활용 가능한 선택지 중 하나라는 거죠. 아직 저걸 선택해서 작업하고 있는 사람은 아직은 없는 걸로 압니다. 하고 있는데 아직 PR을 안넣은 걸수도 있겠지만요.

kyagrd commented 4 weeks ago

이 Graphviz 예제로 수업시간에 다루도록 하겠습니다. 이 방법으로 "학년-학기"가 가로-가로, 세로-세로 형태로 배치되는 건 어렵지 않게 적당히 좋은 퀄리티로 좌표 지정하는 데 숫자놀음 너무 하지 않고 만들어낼 수 있는 거 같습니다.

kyagrd commented 4 weeks ago

이슈를 실수로 닫아서 다시 열어놓습니다

kyagrd commented 4 weeks ago

그리고 graphviz에서 그래프의 표현 형식인 dot 텍스트 소스 파일만을 생성하고, 생성된 dot 소스로부터 graphviz 실행파일을 별도로 호출하는 과정을 거쳐 이미지를 만들어 내는 것도 방법입니다. 그렇게 하기 위한 라이브러리는 gvgen입니다.

이게 pygraphviz를 쓰는 거보다 파이썬 소스코드 베이스는 더 간단하게 가져갈 수 있는 방법입니다. 의존성도 적고요. pygraphviz는 graphviz를 파이썬에서 API로 불러와서 파이썬 코드로 그래프비즈 엔진을 직접 돌려서 이미지까지 뽑아내는 기능을 제공하는 거고요.

HeoSeungBeen commented 4 weeks ago

확인해보도록 하겠습니다.

kyagrd commented 2 weeks ago

gengv를 활용한 코드는 이미 저장소에 추가했고요.

관련 문서화 등이 필요한 상황입니다.