통합 개발 환경과 개별적인 개발 환경

요즘은 개발 환경의 통합은 중요한 문제이다. ㅇㅅㅇ 이전부터 개발하던 환경에서는 그냥 기존에 프로그램 짜던 환경에 하나 둘 더해가는 방식이었다면 지금은 통합된 개발 툴을 주고 이 안에서 개발하라는 방식을 선호하기 때문이다. 근데 이게 문제가 되는 이야기인가?

사실 그전까지 개발하던 개발자 들이야 별 문제될 거 없는 이야기이다. 어차피 자기 쓰던대로 개발하면 됨. 문제는 새로 배우는 사람들이 혼란을 가지고 있는 거 같다. 사실 그 사람들에게도 그냥 쭉 따라해보고 하면 된다. 근데 왜 혼란을 야기하고 있을까?

간단하다. 뭘 쓰면 될지 모르는 것이다. 만들고 싶은 건 있는데, 뭔가 머릿속에서는 장황하게 떠오르는데, 이걸 이렇게 쓰면 되는 건지 아닌지조차 모르기 때문에 발생하는 문제이다. 흔히 말하는 초짜의 문제들이다.

특히 이런 말들을 계속 입아프게 떠드는 분야가 있는 거 같다. 바로 게임이다. 실제로 게임 플레이 하면서 게임 게발도 해보고 싶은데, 내가 했던 수준의 게임을 만들어 보고 싶은데…. 그냥 맘만 급한 상황인 것이다. ㅇㅅㅇ 이 맘만 급한 상황일 때, 극단적인 선택을 하게 된다. “이거 하나면 된대.”, “저거 쓰면 되” 등의 소리들….. 그러면서 선택하는 것들을 보면 통합 개발툴을 제공해 주는 것들이다.

사실 통합 개발툴은 중요한 것이다. 개발 환경에 대해 신경을 덜 써도 되는 환경을 제공해 주기 때문이다. 윈도우 프로그래밍을 위해 비주얼 스튜디오를 써야 한다고 생각하는 거랑 코코아 프레임워크를 이용하는 프로그램 개발을 위해 Xcode를 이용하려는 것과 마찬가지인 것이다. 그 환경 안에서는 최소한의 동작은 반드시 보장을 해주기 때문에 중요한 것이다. ㅇㅅㅇ

하지만, 개발 방법에 따라 특수한 환경에서의 동작을 보장해 줘야 한다면? 단순히 특정 기능을 하는 프레임워크를 사용하려 하는데 기존 환경하고 연동하기 어려운 구조라면? 아니면 애당초 따로따로 돌아가는 녀석이라면? 가장 좋은 예가 그래픽 엔진인 cocos2d 엔진이다. 이건 box2d와 같이 다른 녀석들과 합쳐져야 제대로 된 2d 엔진 역할을 한다. 그래서 그런 추가적인 것들을 같이 제공해 주면서 환경 구성을 할 수 있게 하나의 압축 파일로 제공해 주는 것이지 이것만 가지고는 통합 환경이라고 보기도 애매하다. ㅇㅅㅇ

….어려운 문제 같아 보일텐데… 어려운 건 없다. 일단 따라해봐라. 무.작.정. ㅡㅅㅡ

개발 환경에 대한 문제는 어찌보면 영원히 풀리지 않는 문제인데… 이게 은근 처음 하는 사람들에게는 골아픈 문제이다. ㅇㅅㅇ 근데 시간이 약이라고… 필요로 인해서 삽질 좀 하고 쓸데없는 짓 좀 하다보면 하나 둘 감이 온다고 장담한다.

그러다 보면 멀티 모니터에 대한 욕망도 생기겠지….

10299157_702876073113059_4164438857319020609_n