최근 열심히 리엑트를 실무에 적용하며, 어느정도 코어 코드가 나와서 이를 바로 리엑트 네이티브로 변경하려고 해봤다. 사실 리엑트를 사용하는 이유 자체도 스스로가 앱 개발에는 자신이 없었으며 웹으로 반응형 웹 적용해 두면 작은 화면에서도 열심히 나오지 않겠는가 해서 예전에 앵귤러 쓰다 ionic으로 바로 변경하려 했는데 JS들 때문에 결국 실패, 모듈화와 top-down구조도 마음에 들었기 때문에 리엑트로 시간이 좀 걸리더라도 익숙해질 겸 마이그레이션을 진행했다.
그런데 최근에 리엑트 네이티브를 사용하면서, 결국 완벽한 소스코드 공유라는 자체는 존재할 수 없다는 것을 깨닳았다. 물론 가장 큰 문제는 리엑트 네이티브가 리엑트 16버전 (현재 베타)을 사용하고 있기 때문에 또 이를 적응하려면 결국엔 또 다시 버전을 올리고 사용해야 하는데, 현재 사용중인 webpack의 설정도 바꿔줘야 하고, 리엑트 네이티브랑 리엑트랑 같은 workplace에 있으면 또 라이브러리들이 그렇게 꼬이지 않을 수가 없다.
결국 내가 답을 내린것은, 일단 밑바닥부터 react-native의 기본 틀을 만들어 두되 일정 부분을 기존 코드를 가져와서 다시금 마이그레이션 하는 것으로. 그런데 아직도 생각건데 분명 답은 있을 것 같은데 쉽게 나오지는 않는 것 같다.. reducer나 action creator같은 것이야 가져올 수 있다 쳐도 view부분은 새롭게 제작해야 하는 부분도 좀 마음에 들지 않고..
그런데 생각해보면 내 프로그램이 그렇게 많은 컨테이너가 있는 것도 아니고, 기껏해야 메이저가 7개 정도인데 7개 정도 만들면 되지 않을까 싶다. 일단 현재 2개까지 마이그레이션 완성했는데, 웹 부분의 마이그레이션을 끝내고 그런 와중에 시간날 때 천천히 모바일 베이스를 만들어 주면 되지 않을까 라는 생각.
write once, run everywhere라는 자체가 주는 매력적인 모습. 하지만 결국 완벽한 코드쉐어란 것은 글쎄, 아직까지는 부족한 모습이다. 그래도 최대한 방법을 잡아가며 노력할 수 밖에 없겠다.. 조금 아쉽지만, 지금은 시간이 없으므로 일단 이렇게 제작해 보기로.