카테고리 없음

오픈채팅방 오픈소스 AGString 후기!

iOS_Assin 2019. 11. 11. 22:38

안녕하세요.

 

아신입니다. 오랜만에 경험 글을 작성하니까 손이 떨리네요. 

 

오픈소스 AGString 은 여기를 확인해주세요.

취업을 준비하면서 코딩테스트 (알고리즘)에 대한 압박이 있었으며 뛰어넘어보자라는 취지에서 오픈채팅방 SwiftAlgorithmClub 방을 개설하였습니다. 

 

그리곤 매일 LeetCode 에서 한 문제를 선정하고 Swift 언어로 알고리즘 문제를 풀기 시작했습니다.

 

 오픈채팅방 사람들과 풀이과정에 대한 토론을 하면서 Swift 에서는 String 을 다루기가 상당히 까다롭다는 것을 깨달았습니다. 

 

알고리즘은 개발 실력과 비례하지 않다는 것을 알고 있습니다.

 

더욱이 채용 조건들이 까다로워지면서 개발 실력을 향상시키기 위한 노력도 기울여야 한다고 생각합니다. 

 

그렇기 때문에 "실제 개발 실력을 향상" 시키기 위해 오픈소스를 개발해보자! 라는 주제로 오픈소스 컨텐츠를 제공하고 싶었습니다. 

 

마침 Swift String 을 사용하면서 상당히 불편함을 깨달았기 때문에 Python String 과 비슷하게 오픈소스를 만들어보자! 가 시작이었습니다.

 

그리고 일주일안에 오픈소스를 개발완료를 목표를 달성하였습니다.

 

비록 작은 프로젝트였지만 결과는 상당히 만족스러웠고 재미있었습니다. 

 

누군가와 협업을 한다는 것은?

오픈 채팅방에 주제를 던지고 관심있어하시는 분들이 많아서 다행이었습니다. 🙀

 

 

 

 

 

기획은 빠르게!

 

커뮤니케이션을 하기 위해 Slack, Notion 을 활용하였습니다. 

 

기획문서는 여기에서 확인할 수 있습니다.

 

여기서 중요했던 포인트는 Swift 에서 이미 지원을 하고 있든 아니든 우리는 사용자 관점에서의 요구사항을 정리해 나갔습니다.

 

2시간도 안되서 AGString 의 기획을 완성하였습니다.

 

크게 String Extension, String Regex 두 가지 Feature 를 진행하기로 결정하였습니다. 

 

페어프로그래밍!

우리는 기획에서 정한  요구사항 (Spec)을 바탕으로 테스트코드를 먼저 작성해 나갔습니다. 

 

Client 에서 사용하는 코드를 미리 작성해봄으로써 라이브러리를 사용하는 사용자의 학습효과를 최소화하도록 주의를 기울였습니다. 

 

덕분에 개발 범위의 기준을 잡아가면서 안전하게 진행할 수 있었습니다. 😻

 

 

코드리뷰는 철저히!

 

PR 을 받으면서 코드리뷰를 꼼꼼히 해줄 것을 약속하고 코드 퀄리티를 높이기 위하여 많은 노력을 기울였습니다. 

 

 

 

코드리뷰 한 사례로 NSRegularExpressiontry 강제하고 있었습니다.

 

설계의 관점에서 제어의 흐름을 사용자에게 맡길 것인지 내부에서 처리할지이 대한 고민로 나누며 방향을 잡아갔습니다.

 

 

CI

견고한 앱을 만들기 위해선 빌드 자동화 도입을 절실하였습니다. 

 

Travis CI 를 사용하여 누군가 PR 를 요청하면 Slack 채널에 알림을 주도록 설정을 완료하였습니다. 

 

Github와 Travis CI를 연동하면 빌드 성공, 실패 결과를 알려줍니다.  👋

 

 

 

 

배포!

 

마지막 배포하는 작업을 나누고 각자 맡은 업무를 수행하도록 진행하였습니다. 

 

 

 

결국 예상한 일주일만에 배포하게 되었습니다! 👏

 

 

AGString 의 오픈소스를 개발할 수 있도록 도움을 주신 SwiftAlgorithmClub에 참여하고 계신 분들에게 정말 감사드립니다. 

 

특히 프로젝트를 직접 참여해주신 라이노님, 밀쿄님, Presto님, 코몽이님께 감사 인사를 드립니다. 🙏

 

이상으로 오픈채팅방 AGString 개발 후기를 마치겠습니다. 

 

앞으로도 계속발전하는 오픈채팅방 SwiftAlgorithmClub을 많이 응원해주세요. 👏