brunch

You can make anything
by writing

C.S.Lewis

by 이종우 Peter Lee Dec 14. 2018

[번역] 나를 개발자로 변화시킨 그림그리기

How this drawing changed me as a develop

 번역 URL : https://hackernoon.com/how-this-drawing-changed-me-as-a-developer-a0ff79457f20


Internet Junkie의 첫 번째 드로잉 및 버전


오늘 저는이 작은 그림이 어떻게 기능적인 크롬 확장이되었는지, 그것이 어떻게 개발자로서 나를 변화 시켰는지를 여러분과 나누고 싶습니다. 어느 날 인터넷을 탐색하면서 나는 시간의 흐름을 완전히 잃어버린 것으로 나타났습니다. 웹 서핑을 낭비하는 시간을 추적 할 수 있다면 좋은 생각이라고 생각했습니다. 이 문제를 해결하기 위해 결국 인터넷 중독자 크롬 확장 프로그램 을 만들게되었습니다 .


시작 방법

JQuery로 시작했습니다. 나는 React 나 다른 유명한 프레임 워크를 사용할 수 있었으면 좋겠지 만, 나는 그 때 그것을 알기 위해 일해야했다. 다른 라이브러리와 프레임 워크를 배우려는 동기가 있었지만이를 적용 할 프로젝트가 없었습니다. 나는 항상 내가하는 일에서 가치를 얻으려고 시도하는 학습자 유형입니다. 내가 뭔가를 배우기 시작하면, 나는 그것을 현실 세계의 문제에 적용하고 싶다. 저는 "모든 사람"이 알기에 좋다고 생각하기 때문에 단순히 일을 배우는 것을 좋아하지 않습니다. 저는 문제를 해결하는 데 도움이 될 수있는 최선의 방법을 생각해 내고 배우고 싶습니다.

어떤 시점에서 jQuery는 엉망이되어 AngualrJS 로의 전환을 생각하기 시작했습니다. 전환은 힘들었지 만 더 중요한 것은 스케일링 문제로 넘어갔습니다. 이제는 너무 많은 코드로 작업 할 수있게되었습니다. 각도 컨트롤러에 불필요한 논리가 있었고 코드가 반복적이었으며 조직화되지 않았다고 느꼈습니다.

그래서 나는 그것을 조금 닦기로 결정했다.


작은 단계

필자는 Internet Junkie를 다른 기능으로 구분하고 해당 기능과 관련된 모든 것을 같은 폴더에 저장했습니다.    

기능 Staructure


응용 프로그램 논리를 위해 background.js (백그라운드 폴더에 있음)의 모든 것을 앞으로 작은 모듈에서 분리 할 계획 인 모듈로 변환했습니다. Browserfy는 모든 것을 묶을 수 있도록 도와 주었고 테스트를 위해 Jest 를 추가했습니다 .


테스트하는 것을 배우십시오 - 나의 "아하!"순간

이 프로젝트를 해결하기 전에 나는 항상 테스트를 두려워했으며 그 가치를 알 수 없었습니다. "코드를 두 번 쓰는 이유는 무엇입니까"라고 나는 생각했다. 이제는 왜 그것이 나에게 이해가 가지 않는지를 안다. 많은 초기 프로젝트가 작고 수명이 짧았 기 때문에 값을 볼 수 없었습니다.

인터넷 Junkie에서 일하는 동안 나는 그들이 이미 일하고 있었기 때문에 매일 프로젝트의 일부를 변경하는 것을 두려워하게되었다고 알았다. 왜냐하면 내가 더 이상 내 코드를 신뢰하지 않았기 때문이다. 이것은 왜 테스트가 "필수"인지 분명해진 것입니다! 필자의 코드 중 70 %를 테스트로 작성하고 코드 리팩토링에 대한 두려움이 사라졌습니다. 나는 더 자신감을 가지게되었고 새로운 기능에 집중할 수있었습니다.


이 프로젝트가 나를 어떻게 변화 시켰는가?

나는 이전에 내가 가진 것과 똑같은 개발자가 아닙니다. 이제 프로젝트를 시작할 때 다음과 같은 중요한 학습 내용을 염두에 두려고 노력합니다.

1. 조기 결정은 길을 건너서 긍정적이고 부정적인 영향을 줄 수 있습니다. 사용하고자하는 언어와 프레임 워크를 신중히 생각하십시오. 해결하려는 문제는 무엇이며 적절한 도구를 사용하고 있습니까?

2. 재사용 가능한 코드를 작성하십시오. 가능한 경우 코드를 더 작은 기능으로 분해하고 공통 부분을 재사용하여 DRY (반복해서 사용하지 말 것) 및 읽기 쉬운 코드를 유지 하십시오.

3. 시험! 테스트를 작성하면 코드를 더 잘 이해하는 데 도움이 될뿐만 아니라 실수로 버그를 도입하지 않고도 변경 작업을 수행 할 수 있습니다.

4. 실수하는 것을 두려워하지 마십시오! 나는이 인용문을 " 빠른 이동과 끊는 것 "이라는 코딩 가이드로 사용합니다 . 그 생각은 당신이 결코 무엇인가를 망가 뜨리지 않는다면 당신은 아마도 충분히 빨리 움직이지 않을 것입니다.

5. 누군가를 찾아 피드백을주십시오. 당신이 5,10 명의 사용자를 가지고 있다면 당신은 그 사람들을 위해 최고의 앱을 만들 수 있습니다.


마약 중독자가 가르쳐 준 인터넷

나를위한 가장 큰 테이크 아웃은 계획의 중요성이었습니다. 새로운 코드를 작성할 때 종종 멈추게됩니다. 때로는 그렇게 많이 낙심하기 쉽습니다. 내 작업이 너무 커서 시작하기가 어려워서 붙잡 혔습니다. 나는 더 작은 부분으로 계획하고 깨뜨리는 것에 더 많은 시간을 할애하는 것을 배웠다. 이 접근법은 인터넷 중독자를 작업하면서 여러 번 나를 도왔고, 그것 없이는 끝내지 못했을 것입니다.

마지막으로, 나는 왜 내가 프로젝트를하고 있는지에 대한 이유를 찾는 것이 얼마나 중요한지 배웠다. 나를 위해, 목표없이, 나는 동기를 잃고, 동기 부여 없이는 더 이상 재미가 없습니다. 누가 싫어하는 일을하고 싶습니까? 때로는 선택의 여지가있을 때 더 잘해야합니다. 나는 사람들을 돕거나 시간을 절약하는 무언가를 만들어내는 동기가있다.

내가 이것을 알아 냈을 때 모든 것이 내 머리 속에서 정리되었고 나는 내가해야 할 일을 알고있었습니다.


오늘의 모습

나는 안정적인 작업 버전을 발표했지만 훨씬 더 많이 올 것이다.    

인터넷 마약 중독자 오늘!


나는 모든 사람들이 그들 자신의 학습 방법을 가지고 있다고 생각하며 이것이 나의 것이다. 이것은 막혀있는 사람이나 프로젝트를 시작할 사람에게 영감을주기를 바랍니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari