이 문서 내용은 좀 낡았습니다.
60일이나 편집 안된 오래된 망한 문서니 개발 문서인 경우 참고할 때 조심하세요. 최신 정보를 알고 싶으면 게시판에 글 써주세요
결론 : 멸망새롭게 정해진 차기 개발 언어인 Go를 파이썬과 연동해보는 뻘짓
2. CGO를 이용하자 ✎ ⊖
결론 : 대실패
리눅스 버전에 따라서 C가 호환성을 탄다. 우분투 22.04에서 빌드했더니 윈도우에선 실행조차 안되고 우분투 20.04에서는 오류 뜬다.
3. 빌드해서 exec로 돌리자 ✎ ⊖
연구중
완료했다 linux amd64 arm64, windows amd64 arm64를 지원한다
여기에서 경험해볼 수 있다.
앞으로 이 방식을 주로 쓸 것 같다.
리턴은 string (리턴이 한 개) 혹은 json으로 받아서 처리할 것 같다
이는 1단계 방식이고 추후 2단계에서는 아예 golang용 포트를 따로 받아서 내부 API로 통신하는 구조로 변경 계획도 있다.
또한 2~3단계에서 jinja 파트도 아예 golang에서 처리하게 할 계획도 있다.
3.1. 심각한 문제가 생겼다 ✎ ⊖
크로스 컴파일에서 오류가 난다
정확히는 그냥 쓰는 건 문제가 없는데 라이브러리 불러오는 순간 오류가 난다...
Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub
라고 떠서
(1) CGO_ENABLED=1로 두고 실행했더니 위의 문제가 재발했다...
아... 아무래도 다시 생각해야할 시점이 온 것 같다
걍 numba나 도입해야 하나... 이래서 JVM 언어 쓰는거구나
사실 파이썬 실행할 때 유저 컴터에서 컴파일하게 하면 해결되는 문제이긴 한데...
그럼 설치 과정이 더 늘어나는 거니 영 좋지 못할 것 같다 (호환성 문제도 있고 파이썬애니웨어에서 돌아갈지도 모르겠고)
아 아니다 좋은 생각이 났다 그냥 순수 Go로 짜인 라이브러리를 쓰면 될 것 같다
순수 Go로 짜인 라이브러리 올리고 CGO_ENABLED=0으로 설정하니 말끔하게 해결되었다
휴... 대기획 프로젝트 초장부터 박살날 뻔 했다