내가 생각하기에 개발자를 함에 있어 가장 큰 장점은 머리속에 있는 본인만의 아이디어를 직접 구현할 수 있다는 점입니다.
하지만 실제로 프로젝트를 진행하다보면 많은 장애물들을 만나곤합니다.
이는 내가 시작한 프로젝트에 좌절을 느끼게하고 마지막엔 포기를 생각하기도합니다.
어떤 프로젝트이건 시작하기에 앞서 구체적인 계획가 실행 가능성에 대해 깊이 고민하고 설계한다면 내가 생각하지 못한 장애물들을 만나도 극복할 수 있게 해줍니다.
나만의 아이디어를 웹사이트로 구현하고 싶다면 가장 먼저 고려해야할 몇가지 질문이 있습니다.
1. "나는 정확히 무엇을 개발/성취하고 싶은가?"
2. "내 목표를 달성하기 위해 해당 웹사이트가 어떻게 도움이 되는가?"
3. "목표를 달성하기 위해 무엇을, 어떤 순서로 해야 하는가?"
내 머리속의 아이디어를 실제로 구현할 수 있는 기술적인 측면도 분명 매우 중요합니다.
하지만 더욱 중요한 것은 무엇을 하고 싶은지에 대한 구체적인 결정 즉, 내 아이디어를 구조화해야합니다.
간단하지만 가장 중요한 질문입니다. "나는 정확히 무엇을 개발/성취하고 싶은가?"
내가 개발/성취하고자 하는 목표는 내가 프로젝트를 진행함에 있어 길을 만들어줍니다. 간단한것도 좋습니다. 내가 개발하고 싶은, 성취하고 싶은 모든 목표를 결정합니다.
"목표의 우선 순위"
프로젝트를 진행함에 있어 결정한 모든 목표에 대한 우선 순위를 정해야합니다.
이는 프로젝트를 진행함에 있어 중요한 결정/판단을 내릴 때 분명 도움이 될 것입니다.
Example - To Do List
우선 순위 | 목표 |
---|---|
1 | 시멘틱 태그를 이용한 옳바른 html 구조잡기 |
2 | 익스7 이상 ~ 모든 브라우저에 호환되는 CSS |
3 | vanilla js를 이용한 DOM 조작 |
4 | Local Storage를 이용한 crud 개발 |
5 | +@ node.js를 이용한 crud 개발 |
"내가 만들 웹사이트를 통해서 내가 결정한 목표를 성취할 수 있는가?"
간단해 보이지만 내가 만들 웹사이트가 내가 성취하고자 하는 목표에 도움이 되지 않는다면 웹사이트의 방향을 바꿔야할 수도, 혹은 목표를 없앨 수도 있습니다.
즉, 필요없는 혹은 의미없는 목표를 달성하기 위해 필요한 시간과 노력을 낭비하지 않도록 내가 개발할 웹사이트에 맞는 옳바른 목표를 세워야합니다.
달성하고자 하는 것이 무엇인지 정확하게 알았다면, 이러한 목표를 실행 가능한 단계로 옮겨야하며, 실제로 실행 가능한 목표인지 정확하게 파악해야합니다.
"안되면 될 때까지?"
어떤 분야이건 "안되면 될 때까지" 붙잡고 노력하는 경우는 옳다고 생각합니다.
하지만 "3의 기술력"을 가지고 있으면서 "10의 기술력"이 필요한 기능을 안되면 될 때 까지 붙잡고 노력하는 경우는 대부분 많은 시간과 노력을 잡아먹습니다.
"3의 기술력"을 가지고 "4, 5" 단계의 기능을 개발하기 위해 노력하고 삽질하다보면 나에게 꼭 필요한 양분이 됩니다.
높은 수준의 기술력과 기능을 개발하기보단 나의 현재 위치를 냉정하게 파악하고 단계별로 올라가는 것이 내가 더 빨리 성장할 수 있게 도와줍니다.
프로젝트를 진행하다보면 예상치 못한 상황에 맞닥뜨리게됩니다.
이런 문제는 내 기술력에 한계에서 올 수도 있고, 내가 해결할 수 없는 범위에서 올 수도 있습니다.
이러한 것들은 내 목표를 변경시킬 수 있고 전체적인 웹사이트의 반향을 바꿀 수도 있습니다. 혹은 추가적인 목표가 생길 수도, 없어질 수도 있습니다.
결론은 웹사이트 개발을 계획중이라면 "이런 웹사이트를 만들어야지!"보다는 구체적인 목표들을 생성하고, 충분히 고민해야 한다는겁니다.
생각보다 많은 해야할 일, 목표 혹은 많은 장애물에 당황할 수도 있지만 모든 문제들을 작게 나눠서 하나씩 목표를 성취하다보면 내가 생각한 웹사이트 개발에 도달할 수 있습니다.
모든 목표를 성취할 필요는 없습니다. 모든 장애물을 극복해야할 필요도 없습니다.
중요한건 내 아이디어를 바로 실행할 수 있는 행동력과 현재 내 위치를 냉정하게 생각할 수 있는 판단력이 있다면 작은 목표들을 하나씩 모아 하나의 큰 웹사이트를 만들 수 있게될겁니다.