안녕하세요-
프로젝트 진행과 개발 소스 공유에 대한 고민으로 안펍 선배님들의 조언을 듣고자 글을 남깁니다.
...저의 상황은 이러합니다.
저는 안드로이드 어플을 하나 만들어왔고, 한달전에 마켓에 올렸고, 이걸 아이폰으로 포팅하려고 하는 시점에, 한 대학 친구가 같이 하자고 연락이 왔습니다. 사실 작년부터 이러한 아이디어가 있는데 같이 해보자고 부단히 설득을 시도하였지만 끝끝내 이러 저러한 이유로 거절해 온 친구였습니다. 마켓에 올라온 중간 결과물을 보고나서야, 아직 그 반응은 신통치 않지만, 어쨋든 관심을 보였고 혼자보다는 팀체제로 진행하는게 백번 낳다는 생각으로 받아들였습니다.
...문제는
2주전 술한잔 하고 1주전 간단한 미팅. 그리고 오늘에 와서 안드로이드 어플리케이션 풀소스를 달라고 합니다...
처음에는 어이가 없어 말문이 막혀버렸습니다. 소스 공유에 대해서는 대학 시절에서부터 다들 민감하게 여겨왔었고, 소스를 보기 이전에 - 구현(Coding) 단계 이전에, 스토리 보드 구상, 명세서 작성등의 기획(Text)과 디자인(Drawing) 단계가 반드시 선행되어야 한다고 믿는 사람 중의 하나가 저이기 때문일까요. 최소한 어플 실행이라도 해보고 풀소스를 보아야 할텐데.
중견기업의 개발자인 그가 시작부터 그냥 풀소스를 달라고 하니 뭔가 이유가 있겠구나 싶기도 하고...할말을 잃었습니다. 제가 너무 예민해졌는지 화딱지가 나기도 하고, 한편으론 그대로 풀소스 주고 포팅하라고 하는게 낳은건가하고 이해하고자 노력하는데 도무지 혼자서는 답을 구하기가 어려워 글을 남깁니다.
--- 안펍에 계시는 현직에서 종사하시는 여러 개발자 선배 여러분이라면 위와 같은 상황에서 어떻게 방향을 찾아가시는지 조언을 듣고 싶습니다.
java는 decompile이 워낙에 잘되서 jar로 준다고 하더라도 j스 주는것과 별 차이도 없어요
그러지마시고요.. 아닌것 같으면 그냥 내치세요.. 남의 소스 갖고 장난치는 개발자들이 워낙에 많더군요..
그리고 친구인지 아닌지 그런건 중요하지 않아요.. 당하고 나면 친구가 원수로 바뀌는건 잠깐이면 되죠.
소스를 달라고 한다면.. 다시 생각해 보시는것이.. 물론 정~말 친한 친구라면 믿을수 있다면 모르겠지만..
대학때부터 만난 친구고.. 그전에는 안하겠다고 하다가.. 갑자기 한다고 하면서 굳이 자바 풀소스를 달라고 한다면..
저라면 의심부터 하겠습니다.. 왜 자바 소스가 필요하냐고요.. 구현에 필요한 로직은 하나하나 차근차근 알려드린다고
말씀하시고.. 굳이 풀소스를 주실 필요는 없을것 같습니다..
윗분들말에 동감합니다.
저역시 친구가 제 소스를 달라고해서 다툰적이 있습니다.
뭐 별로친한친구도 아니니 그냥 그대로 끝나버렸지만,
아무리 친구라 한들 소중한 제산의 전체를 달라고 하다니...
제 상식에서는 불가능한 일이네요.
처음부터 함께 기획하고 만든 사람이 아니라면..
차기 프로젝트부터 같이 하시는게 좋지 않을까 합니다.
그리고, 라이브러리로 만드신다면...중요엔진쪽을 NDK를 사용해서 so 파일로 주는게 더 좋지 않을까 하네요..
jar는 그대로 보여서...ㅡㅡ;;;
계약을 하시면 됩니다. 소스 권리 권한, 그리고 수익 배분에 대해서 확실하게 도장을 받으세요. 공증 사무소가서 몇만원주고 공증까지 받아두세요. 친한 사이일수록 까다롭게 해야 하는 겁니다. 18년지기 형님한테 믿고 일했다가 사기 당하고 2년 동안 일한 결과물 다 뺏기고 병신될뻔한 사람이 여기 있습니다.
그친구분 아이폰 으로 포팅하겠단거 아닙니까?
저도 아이폰 하는 친구한테 제 안드로이드 아이폰용으로 출시하자고 했는데
코드 달라고해서 줬습니다.
코드해석해보고 구조를 이해해야 아이폰 용으로 빨리 만들어내는게 사실이니까요
상황 판단은 그때에 맞게 해야죠뭐,,
네 만약 친구가 아이폰 개발 경험이 있었다면 생산 속도적인 측면에서 풀소스를 줄 의향이 있었을지도 모릅니다.
웹 관련 업체에서 종사해 온 친구라서 코드에 많이 익숙한 친구이기 때문에도 풀소스 공유가 고려되기는 합니다만,
문제는 아이폰에 관해서는 이제 막 첫걸음을 뗀, Hello World만 띄워본 실력이기 때문에 참 많이 고민이 됩니다.
만약 풀소스를 주었을 경우, 저를 갈등시키는 요인은 지금까지는 정확히 두 가지입니다.
1. 10% (코드 남용) - 위에서 이미 몇몇분이 언급하신 사태까지 발전하리라고는 크게 생각치 않습니다.
2. 90% (팀원간의 시너지 저하) - 이게 가장 큰 요인입니다. 서버단을 관리하는 친구와는 협업 체계로 좋은 커뮤니케이션 속에 작업을 진행해왔다만 서로 다른 영역이었기에 풀소스를 요구한 경험은 없었습니다. 만약 풀소스를 주게 될 경우, 여러 가지 정황상 저에게 오히려 해가 되지 않을까란 생각에 게시판을 들르게 된 것입니다. 포팅 작업이야 해본 적이 없어서 모르겠다만 풀소스가 있다면 단순히 코드 보고 이해해서 타겟 프레임에서 요구하는 패턴대로 전체적 프레임만 입히고 나머지는 copy & paste 하면 되는 작업 아닌가요. 그렇다면 팀 프로젝트로서 얻게 되는 것은 저의 경우, 껍데기 뿐인 아이폰 어플리케이션. 그 친구에게는 아이폰 코딩력. 별로 손해볼 것은 없지만 가능하면 서로가 (-) or (null)이 아닌 (+)를 위한 팀 체제를 갖추고 싶은 욕심이 있습니다.. 욕심을 버려야 할까요..
저도 이런이유로 중요부분을 라이브러리화 시키고 jar파일만 프로가드 적용하는 법을 찾고있습니다..
일단 프로가드 적용까진 해봤는데 코드를 볼 수 있을정도인지라.. 방법을 더 찾는 중이네요..
제대로된 개발자라면 포팅작업이라도 기획문서와 스토리보드 ui가이드등을 먼저 요구하지 풀소스를 요구할 이유가 없습니다(근데 안드로이드 개발은 할줄 아는분인가요?) 그렇게 풀소스 덜렁 들고가봐야 제대로된 결과물이 나올리 없어요
같이 갈만한 사람인지가 중요할 것 같습니다..
이미 birdea님께서 그런 고민을 하고 계신다면... 다른 믿을만한 사람을 생각해보는것도 고려해보세요...
같이 프로젝트 하기위해선 기존 코드를 공개하고 구현방식도 설명해줘서 포팅할때 도움이 되도록 해줘야 할텐데..
결국 사람이 중요한거같아요.
그리고 바야바님 말씀데로 확실히 계약절차를 갖으시는게 좋습니다. 대충했다가 피봅니다...
여튼, 제가 아이폰 소스를 직접 짜고 코드가 머리속에 있어서 그랬는지는 모르겠지만 포팅은 로직으로 하는거지 소스로 하는게 아닙니다.
예를 들어 "서버로의 전송은 POST 방식으로 하는거고 컨텐트 타입은 multipart로 가자" 그럼 각자 플랫폼에 맞춰 가는거지, "자바에서 URLConnection으로 했으니 아이폰에서도 그렇게 하자".... 아이폰에 그런 건 없습니다;




저 같으면 중요한 부분을 라이브러리화 합니다. 그리고 껍데기만 줍니다.
열정과 노력이 있는 사람은 소스를 보다가 라이브러리화 된 코드를 발견합니다.
이 때 코드를 조금씩 주면될거 같습니다.. 만약 이 사람이 코드에 전혀 관심이 없다면 물어보지도 않겠죠...