오픈소스 개발 스터디 모임 시작

 

20대 시절 해킹대회 운영 솔루션 개발을 진행하면서 늘 마음속에 품고 있었던 오픈소스 프로젝트를 드디어 시작하였습니다.

당시에도 오픈소스 사이트를 구성해서 배포 준비까지 마쳤지만, 군 입대 등으로 결국 진행하지 못했는데 늦었지만 이번에는 제대로 시작해 보고자 합니다.

오픈소스라는 것이 혼자만 해서는 의미가 없고 마음 맞는 분들과 함께하는 것이 의미가 있기 때문에 함께 개발할 분들도 모셨습니다.

 

주제는 '라라벨 기반 이커머스 솔루션' 입니다.

무료로 사용할 수 있는 이커머스 솔루션은 영카트, 고도몰 등 이미 시장에 많이 나와 있습니다. 하지만 대부분 낡은 레거시 코드에 기반하고 있습니다.

창업 초창기에는 이런 솔루션이 운영에 큰 도움이 되지만, 비즈니스가 성장하며 새로운 기능을 추가하고 인프라도 확장해야 할 때 기술부채가 발목을 잡는 경우가 많습니다.

PHP 오픈소스라는 장점을 살리면서도 기술부채가 적은 솔루션이 있으면 좋지 않을까라는 고민 끝에 시작한 프로젝트입니다.

 

라라벨은 아시다시피 PHP 생태계에서 가장 모던한 프레임워크입니다. 

의존성 주입, IoC 컨테이너, MVC 패러다임 등 최신 개발 기법과 기능이 두루 적용되어 있기 때문에 이런 기능과 설계원칙을 잘 활용하여 개발을 진행한다면 확장성있는 솔루션을 개발하는데 큰 도움이 될 것입니다.

 

사족이지만, 얼마전에 새로운 회사로 이직을 하게 되었습니다.

새로운 회사는 5시에 업무가 끝나고 연차 사용이 자유롭기 때문에 업무 외 자기계발을 하기 좋은 환경이 되었습니다.

남은 시간 활용을 잘 하여 프로젝트를 성공적으로 마무리할 수 있기를 기대합니다.

협업 오픈소스

프레임워크를 활용한 개발의 장점

나는 약 10년 간 Legacy PHP 개발자였다.

개인 홈페이지(제로보드)와 블로그(Tattertools)를 운영하며 해당 솔루션의 코드를 보고 프로그래밍을 독학하였기 때문에 프로그래밍의 기초를 모른 상태에서 프로그래밍을 했다.

당연히 소프트웨어 공학, 디자인 패턴 등 고급 기술에 대한 지식이 전무하였고, 이는 점차 개발 경력이 쌓일 수록 나를 붙잡는 족쇄가 되었다.

Legacy PHP로도 충분히 개발은 가능하다. 전 회사에서도 Legacy PHP로 개발을 잘 했다. 그리고 잘 동작하게 만들 수 있다. 보안 취약성도 Parameter를 필터링하고 특수문자를 필터링해서 잘 해결 했다.

하지만, 가장 큰 문제는 직장인 개발자에게 요구되는 핵심 역량인 "협업"이 불가능하다는 것이다.

객체지향 프로그래밍을 하고 프레임워크를 도입하는 이유가 여기에 있다. 회사는 나 혼자 일하는 곳이 아니기 때문에 반드시 협업을 해야 한다. 하지만 "나만의 세상에 갇힌" 코드로 개발을 하게 되면 동료나 후임자가 그 코드를 이해하는데 "비용"이 크게 발생한다. 남이 작성한 코드를 봐야하는 일 자체가 달갑지 않은 일인데 듣도 보도 못한 스타일의 코드를 해석하자면 고문이 따로 없을 것이다.

이것을 해결하는 것이 "프레임워크"이다. 프레임워크는 개발자에게 코드 스타일, 설계의 표준을 어느 정도 강제하고 이를 따르도록 만든다. 해당 프레임워크를 학습하는데 초기 비용이 발생하지만, 그 프레임워크가 어느 정도 인지도가 있고 생태계에서 영향력이 있다면, 그 프레임워크를 사용하는 개발자를 쉽게 채용할 수 있을 것이고 해당 프레임워크 개발자만 채용한다면 쉽게 업무 인수인계를 할 수 있다는 장점이 있다.

물론 프레임워크에서 강제하는 코드 스타일과 표준은 개발자 개인에게도 역량 개발의 기회가 될 수 있으며, 프레임워크가 제공해주는 편의 기능과 Helper 등은 개발 생산성을 향상시켜준다.

어떤 프로그래밍 언어를 배우고자 한다면 해당 언어에서 가장 널리 쓰이는 프레임워크를 공부하는 것이 좋은 학습법이라고 할 수 있겠다.

Develop Framework Legacy PHP 제로보드 Tattertools 협업