C 소스를 Java로 컨버팅하는 방법을 알고싶습니다.
글쓴이: dwkim70 / 작성시간: 금, 2004/06/11 - 3:21오후
안녕하세요.
제가 어제부터 시작한일이 기존의 C 소스 프로젝트를 Java로 컨버팅하는 일인데요.
기존 프로젝트를 완전히 이해하고 있는것도 아니고 Java를 잘하는것도 아니어서
시작하기전에 확실한 방법론을 찾아 시작하려구 합니다.
회사일이기 때문에 작업할 시간이 그리 넉넉하지도 않구요.
c2java(http://www.soften.ktu.lt/~stonis/c2java/) 라는 프로그램이 있지만
기계적인 변환이라 적당하지 않은거 같구요.
C소스를 Java로 컨버팅 하는 하우투 문서나 방법을 알면 알려주세요.
그럼 더운데 수고하세요.
Forums:
참고
저같으면 이렇게 하겠습니다.
1. eclipse로 자바 개발환경구축
2. 디자인패턴(자바관련 구현 예제 다수 포함한 책구매)
- 디자인패턴중 어떤 패턴을 사용하면, 기존 C 프로그램을 효율적으로 재구성할 수 있는지 검토하는것이 중요하다.
3. 1,2의 내용을 1주정도 연습
4. 3과 동시에 기존 C프로그램 분석(모듈단위로 체계화 해서 잘 분석해본다)
- C프로그램에서 코드 세세한 내용보다는 전체적인 흐름을 파악하는것이 중요하다.
- 즉, 분석은 숲에서 나무로의 접근을 명심한다. 구현은 프레임웤이 구축되었다면, 대체로 나무에서 숲으로 가게 되겠지만.
- 디자인패턴에서 제시된 가장 적합한 패턴을 적용할 것을 검토해본다.
* C에서 자바로 전환하게 되는 경우에는 대체로 성능보다는 유지보수나 포터빌리티를 강조하는 경우가 많으므로 작은 성능에 집착하지 않도록 한다.
5. 자바 콤포넌트로 구성할 수 있는 것과, 도저히 자바로 포팅하기 어려운 모듈을 분리한다.
- 분리가 잘 안되는 것은 체크해놓고 지체하지 말고 다음 모듈로 나간다.
- 분리가 안된것은 재차 2-3회 살펴 보고, 그래도 안되면 C로 라이브러리를 구축하여 JNI로 연동할 생각을 한다.
6. 자바 콤포넌트로 포팅가능한 모듈을 콤포넌트로 구현해간다.
- 모듈은 구현과 동시에 테스팅 프로그램을 만들어 단위 테스트해나간다.
- 자바 콤포넌트가 점점 늘어나게되며, 일의 범위가 축소되는것을 느껴간다.
- 전체적으로 자신의 콤포넌트가 늘어가게되며, 자신의 라이브러리 시스템이 만들어지는 것을 실감하도록한다.
- 또한, 모듈들중 일반적인것(?)들은 대체로 기본 콤포넌트에 있을 수 있으며,
또한 공개 콤포넌트 라이브러리등으로 다수 존재하므로 전부 구현할 필요는
없을것이다.(풍부하다고 생각해도 좋다)
- 공개 콤포넌트들중 소스가 없는것도 있으나, 대체로 디컴파일러를 돌려 소스를 볼 수 있는 경우가 많다.물론 디컴파일 안되는것도 있고, 이런것은 보통 상용이다. (라이센스문제는 논외로 하겠습니다.)
7. 자바 콤포넌트로 포팅이 어려운 모듈을 JNI를 사용해서 인터페이싱 한다.
8. 시스템을 연동해 나가기 시작한다.
- 자신이 현재까지 구축한 콤포넌트 조각들을 모아 조립한다는 기분으로 연동한다.
9. 연동 테스트를 해나간다.
10. 디버깅 및 유지보수를 계획한다.
11. C로 구현되어 JNI로 연동한 일부 라이브러리을 자바로 포팅할 수 있는지 재차 검토해보고 6-10을 재시도한다.
* 제가 예전에 시도했던 방법입니다. C로 구현되었던 모시스템을 자바로
포팅(?)할때 시도한 방법입니다. 사실 포팅이라기 보다는 새로만들었지만......
* 개인적으로 아직도 자바는 별로 안좋아 하지만, 고객이 요구하면 어쩔 수 없는
경우가 있겠지요. 하여간 건승하시길~
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
mach님 답글 감사드립니다.과분하게 자세한 답글에 마음이 아주 뿌듯
mach님 답글 감사드립니다.
과분하게 자세한 답글에 마음이 아주 뿌듯합니다. :lol:
즐거운 주말 보내세요.
댓글 달기