현재 빅데이터 처리 관련 업무를 하고 있습니다. 거창한건 아니고… 큰 데이터를 원하는 데이터양식으로 전처리하고… 분석하고 AI 학습하고 이런 업무 입니다. 파이썬을 통해 진행하고 있습니다
Python을 C# 앱에 embed 하려고 하는데요. 간단히 설명하자면 C# 에서 매개변수 값을 파이썬 코드에보내고 데이터 처리 후 리턴값인 데이터프레임을 C# 데이터 테이블에 저장하고… GUI를 통해 보여주고… 이런 방법입니다. 파이썬은 데이터 처리용, C# 은 GUI 용 이라고 보시면 되겠습니다
파이썬으로 GUI 를 짜려고 했으나…구성이나 사용이 편리하지 않은거같고… 라이센스도 걸리는게 많아 사용이 어렵고 C# 은 데이터 처리를 하기가 너무 어려워서ㅠㅠ 위 방식대로 하려고 합니다…
가능한 방법인지… 추천하시는지 문의드립니다
Python py 를 직접 c# 코드로 실행시켜 리턴값을 받는방법…
Pythonnet 패키지를 이용해서 파이썬 코드를 짜서 실행하는방법…
이렇게 문의드리는 이유는… 현재 AI 학습용으로 PC 를 모두 쓰고 있어서ㅠㅠ 테스트를 못해보고 있습니다 ㅜㅜ 양해부탁드립니다
안녕하세요! 질문해주신 내용 충분히 구체적이고 이해하기 쉬웠습니다. 현재 하시려는 구조인 C#을 프론트엔드(GUI), Python을 백엔드(데이터 처리) 로 활용하는 방식은 실제로도 많이 사용되고 있고, 괜찮은 접근이라고 생각합니다.
두 가지 방법에 대해 간단히 의견 드리자면:
Python .py 파일을 C#에서 직접 실행하는 방법
→ Process 클래스를 이용해 외부 Python 프로세스를 실행하고, 그 결과를 stdout으로 받아오는 방식인데, 간단한 연동에는 좋지만 유지보수 측면에서 불편할 수 있습니다. 특히 데이터프레임처럼 구조화된 데이터를 주고받기 위해서는 파일(CSV, JSON 등)을 중간에 저장하거나 파싱하는 추가 작업이 필요합니다.
pythonnet을 이용한 방법
→ Python을 .NET 내부에서 직접 호출할 수 있어서 구조적으로 훨씬 깔끔합니다. pandas.DataFrame을 C#의 DataTable로 변환하는 것도 어느 정도 수작업이 필요하지만, 중간 파일 저장 없이 직접 메모리 상에서 데이터를 주고받을 수 있어 효율적입니다. 다만, 초기 세팅이나 에러 처리에 약간 복잡함이 있습니다.