나는 약 10년 간 Legacy PHP 개발자였다.
개인 홈페이지(제로보드)와 블로그(Tattertools)를 운영하며 해당 솔루션의 코드를 보고 프로그래밍을 독학하였기 때문에 프로그래밍의 기초를 모른 상태에서 프로그래밍을 했다.
당연히 소프트웨어 공학, 디자인 패턴 등 고급 기술에 대한 지식이 전무하였고, 이는 점차 개발 경력이 쌓일 수록 나를 붙잡는 족쇄가 되었다.
Legacy PHP로도 충분히 개발은 가능하다. 전 회사에서도 Legacy PHP로 개발을 잘 했다. 그리고 잘 동작하게 만들 수 있다. 보안 취약성도 Parameter를 필터링하고 특수문자를 필터링해서 잘 해결 했다.
하지만, 가장 큰 문제는 직장인 개발자에게 요구되는 핵심 역량인 "협업"이 불가능하다는 것이다.
객체지향 프로그래밍을 하고 프레임워크를 도입하는 이유가 여기에 있다. 회사는 나 혼자 일하는 곳이 아니기 때문에 반드시 협업을 해야 한다. 하지만 "나만의 세상에 갇힌" 코드로 개발을 하게 되면 동료나 후임자가 그 코드를 이해하는데 "비용"이 크게 발생한다. 남이 작성한 코드를 봐야하는 일 자체가 달갑지 않은 일인데 듣도 보도 못한 스타일의 코드를 해석하자면 고문이 따로 없을 것이다.
이것을 해결하는 것이 "프레임워크"이다. 프레임워크는 개발자에게 코드 스타일, 설계의 표준을 어느 정도 강제하고 이를 따르도록 만든다. 해당 프레임워크를 학습하는데 초기 비용이 발생하지만, 그 프레임워크가 어느 정도 인지도가 있고 생태계에서 영향력이 있다면, 그 프레임워크를 사용하는 개발자를 쉽게 채용할 수 있을 것이고 해당 프레임워크 개발자만 채용한다면 쉽게 업무 인수인계를 할 수 있다는 장점이 있다.
물론 프레임워크에서 강제하는 코드 스타일과 표준은 개발자 개인에게도 역량 개발의 기회가 될 수 있으며, 프레임워크가 제공해주는 편의 기능과 Helper 등은 개발 생산성을 향상시켜준다.
어떤 프로그래밍 언어를 배우고자 한다면 해당 언어에서 가장 널리 쓰이는 프레임워크를 공부하는 것이 좋은 학습법이라고 할 수 있겠다.
Recent Comments