대충 파일로 뭔가 삽질을 했다. 근데 맘에 안 들었다. 왜냐하면 매번 세이브 해야 했다. 그래서 생각해보니, 운영체제 레벨에서 뭔가를 만들어야 했다. 근데 자바에서는 못한다. 그래서 “네이티브 인터페이스를 활용하면 되지 않을까?”라는 미친 생각을 했다.
그러지 말았어야 했는데.
했는데?
할려고 했다……….
솔직한 것을 모두 적어야 한다고 생각해서 실패 경험을 적는다.
대충 JNI로 만들면 되지 않을까 라는 단순한 생각은 큰 오산이었다.
왜?
1.
현실적 기술 한계 → 난 C나 C++를 잘 만지지 못한다.
2.
현타 → 이걸 내가 왜 하고 있지? 너무 간 건가?
3.
조언
어느 한 멋진 개발자 분 A→ 그런 영역을 하려면 “한국말보다 포인터를 더 잘 사용해요. 그리고 굳이 할 필요가 있나요? 공부 목적이면 해봐서 나쁜 건 없지만, 만약 다른 기술 스택을 요하는 업을 한다면 얻는 것도 없을 수 있어요”
어느 한 멋진 개발자 분 B→ “학문으로서의 접근은 참 좋은 생각이예요. 근데 그런 부분은 정말 특수한 케이스에 쓰여요. 목적이 분명한 것이 아니면 하지 않을 걸 추천 드려요. 왜냐하면 배울 곳이 없다는 것은 그 만큼 잘못 만들고, 잘못 이해하고, 차후 업무에서 큰 사고를 초래할 수 있어요.”
어느 한 멋진 개발자 분 C→ “미친 생각이예요. 만약 현업이라면, 다른 메모리 영역을 건드리는 건 예제 몇 가지로 이해했다라고 할 수 없어요”
종합하자면 아래와 같다.
제대로 알고 만드는 것이 아니면, 잘못된 것을 옳다고 생각할 수 있다. 그것은 정말 위험한 것이다. 아이디어와 실제 적용 기술은 다르다. 아이디어를 옮기려면 현실적 기술을 알고 많은 것들이 준비 된 상태로 해야한다.
그냥 대충 해보자
dll파일을 프로젝트 경로에 가져다 놓았다. 그러니 되었다.
결론
내가 해본 삽질 중에서 가장 많은 삽질을 했던 것 같다. 그리고 이걸 통해서 알게 된 건 추상화라는게 정말 아이디어임은 분명하다. 근데 진짜 사용하려면 엄청나게 많은 것을 알고 있어야 한다.
c++을 처음 다루면서 느낀 건 자바는 정말 편하다는 것이다. c++이 왜 어렵다는지 알겠다. 비슷한데 뭔가 달라 힘들었다.
참고로 간단하게 저 코드 두 가지로만 되는 건 아니다.
1.
class의 header를 뽑아내야 한다.
2.
뽑아낸 header file을 기반으로 C/C++로 코드 작성 →여기가 골통 아프다. 원하는 데이터를 주고 받으려면 서로 완전 두 가지 언어를 이해해야 할 것이다.