Computer >> 컴퓨터 >  >> 프로그래밍 >> Ruby

야심찬 Rails 프로젝트를 시작하는 3가지 스마트한 방법

지난주에는 미루는 습관을 극복하고 새 Rails 프로젝트를 시작하는 데 도움이 되는 세 가지 원칙을 소개했습니다. 지금쯤이면 눈앞의 작업량에 압도되는 느낌은 한결 줄었을 것입니다. 하지만 여전히 어려운 선택이 남아 있습니다. 어떤 코드부터 작성해야 할까요? 인증 기능일까요? Twilio와 통신하는 부분일까요? 아니면 포럼 게시글 추천 엔진은 대체 어디서부터 손을 대야 할까요?

그렇습니다. 결국 언젠가는 실제로 코드를 작성해야 하고, 그러려면 명확한 시작점이 필요합니다.

좋은 시작점이란 무엇일까요?

먼저 몇 분 정도 시간을 내어 앞으로 만들 시스템을 생각해 보세요. 처음부터 끝까지 이어지는 사용자 흐름(end-to-end path)과, 각 흐름이 필요로 하는 리소스의 종류에 집중하면 됩니다. 너무 깊이 빠지지는 마세요! 시스템의 윤곽이 조금씩 드러나면, 다음 세 가지 범주에 맞는 경로를 찾아볼 수 있습니다.

1. 프로젝트의 핵심인가요?

여기서 '프로젝트의 핵심'이란 누군가 "당신 앱을 30초 안에 설명해 보세요"라고 물었을 때 이야기하게 될 바로 그 경로를 의미합니다. 포럼 소프트웨어를 개발 중이라면 토픽에 글을 올리고 답변하는 기능이 핵심입니다. 푸시 알림 서비스를 개발 중이라면 디바이스를 등록하고 알림을 전송하는 상호작용이 핵심이겠죠.

핵심 상호작용은 초반에 구현하기에 가장 좋습니다. 최소한의 선행 노력으로 앱을 직접 만져보며 실험할 수 있고, 새 기능을 쌓아올릴 탄탄한 기반도 마련됩니다. 그 결과 다음에 진행할 작업 역시 훨씬 수월하게 시작할 수 있습니다.

2. 독립적으로 처리할 수 있나요?

새 라이브러리나 새 API를 익히지 않고도 작성할 수 있는 기능을 먼저 찾아보세요. 여기서 시작하면 문서 창을 열었다 닫았다 하며 코드와 학습 사이를 오갈 필요 없이 코드에 온전히 몰입할 수 있습니다. 즉, '작성 모드'와 '학습 모드' 사이의 잦은 전환에서 오는 피로를 피할 수 있습니다. 방해 요소를 제거하면 미루고 싶어질 기회 자체를 차단하게 됩니다.

아침 첫 업무로 쉬운 버그 하나를 고치며 이메일-트위터-레딧-이메일의 무한 루프에 빠지는 것을 막아본 경험이 있다면, 올바른 마음가짐으로 하루를 시작하는 것이 얼마나 중요한지 이미 잘 알고 있을 겁니다. 이 방법은 그런 집중 상태에 일찍 진입하고 끝까지 유지하는 훌륭한 방법입니다.

3. 정말 위험하거나 어렵거나 복잡해 보이나요?

이런 기능부터 시작하는 것은 위험해 보일 수 있습니다. 복잡한 기능일수록 더 많은 설계가 필요하고, 그만큼 막힐 가능성도 커지기 때문입니다. 그런데 어떻게 이것이 좋은 시작점이 될 수 있을까요?

개발자는 흥미로운 문제 해결에 목말라 있습니다. 어려운 문제에 정면으로 도전하는 것은 새 프로젝트를 시작하는 가장 강력한 내재적 동기가 되어 줍니다. 게다가 도전 난이도가 높을수록 몰입(플로우) 상태에 도달할 확률도 높아지는데, 진짜 좋은 성과는 바로 그 몰입의 순간에 나오기 마련입니다.

그럼 무엇을 선택해야 할까요?

사실 세 가지 접근법 중 무엇을 고르느냐는 그리 중요하지 않습니다! 세 가지 모두 각자의 부수적 이점을 지닌 훌륭한 시작점이며, 올바른 방향을 가리켜 줄 것입니다. 그러니 아무거나 하나 골라(결정이 어렵다면 무작위로!) 직접 경험해 보세요.

어떤 방식을 선택하든 진짜 비결은 TDD 플라이휠을 최대한 빨리 회전시키는 것입니다. 일단 회전이 시작되면 그 추진력이 프로젝트를 출시하는 날까지 당신을 밀어주어 줄 것입니다.

새 프로젝트를 시작할 때 이런 방법을 활용해 보신 적이 있으신가요? 혹은 자신만의 특별한 앱 시작점이 있으신가요? 댓글로 여러분의 경험을 공유해 주세요!