본문 바로가기

기타 개발관련

클론 코딩을 효율적으로 하는 방법

개념

실제 존재하는 서비스의 코드를 분석하여 한 줄 한 줄 따라 만들며 관련 코드에 대한 이해를 높이는 코딩방법이다.

무엇보다 실제 서비스나 도메인을 레퍼런스 페이지로 삼기때문에 구체적인 목표설정 및 해석이 용이하다

노마드 코더 클론 코딩 관련 설명

 


 

장점

  • 흥미 : 내가 실제로 사용할 수 있는 서비스에 대한 코드를 해석하므로 해당 기능이 어떻게 작동되는것인지에 대한 직접이해가 가능해지므로 이론부터 살펴보는것보다 흥미있는 학습이 가능해진다.
  • 목표설정 용이 : 가령 A라는 기능을 만들고자 할 때 실제로 이것을 구현하고자하는 방법은 여러가지가 될것이다. 하지만 실제 가능한 서비스를 참고하여 만든다면 실제 숙련자가 구현해 놓은 방법을 토대로한 스택을 사용하므로 수준급의 기술스택을 직접 흡수 할 수 있게 된다.
  • 다양한 기술 스택 : 프로젝트는 다양한 개발언어와 다양한 프레임워크들이 유기적으로 작동해 만들어진다. 이러한 기술간의 연동을 직접 작성하며 이해를 높일 수 있다.
  • 하고자 하는 서비스에 대한 직관적인 이해 : 필요로 하는 서비스 명확할 때 유사한 참고사이트를 통해 빠르고 직관적으로 관련 기술구현을 이해할 수 있다.

단점

  • 난이도 설정의 어려움 : 실제 서비스중인 코드는 효율을 위한 상당한 기술수준에서 작성되어있다. 서비스만 경험해보고는 이것이 내 지식수준에 비해 얼마나 어려운 로직으로 이루어져있는지 알기 어렵기때문에 적정수준의 코드를 선별하기에 어려운 점이 있다 
  • 기본개념의 이해부족 : 기본적인 이론의 이해없이 작동만 되는 코드를 이해하다보면 응용이나 다른 케이스에서의 적용이 어려워진다
  • 레퍼런스 페이지 그 이상의 것을 배우기 어려워짐 : 참고하는 서비스자체가 훌륭하다면 좋겠지만, 해당 서비스가 한쪽으로 편향되거나 다소 부족한 수준이라면 어떻게 될까? 참고하는 페이지를 그대로 해석해서 공부하는 학습법인만큼 그 이상을 찾아보기가 어려워진다.

방법

이처럼 많은 장점을 가진 클론코딩의 방법으로는

  1. 훌륭한 레퍼런스 페이지를 선정한다 
  2. 해당 코드에 대한 전반적 코드 플로우를 이해한다.
  3. 코드를 한 줄 한 줄 따라 치며 필요하다면 관련 내용에 대한 주석을 달아본다

발전

클론코딩에서는 다양한 단점도 존재했다. 장점을 극대화하고 단점을 보완할 수 있는 방법에 대해 생각 해 보았다.

 

  1. 가능하다면 하나의 레퍼런스 페이지가 아닌 여러 서비스를 참고하여 클론코딩을 해본다.
  2. 기록한다 - Github를 이용한 코드내용에 대한 기록이나 관련 기술을 문서화 하다보면 코드를 작성하는 것 이상으로 기술이해가 될것이다.
  3. 항상 생각하며 코딩한다 - 동일한 기능을 구현하더라도 그 방법은 다양하다. 레퍼런스페이지는 참고일 뿐 정답이 될 수 없으므로 더 나은 방법에 대해 고민하고 적용해본다.
  4. 클론코딩을 반복하고 나만의 방법으로 응용해본다 - 클론코딩을 하며 이해하고 반복 숙달하여 이해하였다면, 다음 번 반복할 때는 나만의 스타일로 변형해본다.
    변형하는 과정에서 에러가 발생하기도 하고, 그 에러를 해결하는 과정에서 더 나은 방법에 대해 찾아내는 나 자신을 발견하게 될 것이다. 
  5. 처음부터 다시 만들어보기 - 코드에 대한 이해가 끝났다고 판단이 된다면, 이제 레퍼런스페이지를 참조하지 않고 코드를 작성해본다. 전체 코드를 모두 머릿속에 넣을 순 없겠지만 학습의 능률은 자기 머릿속에서 꺼내 쓸 때 가장 확실하다는 것을 기억한다

'기타 개발관련' 카테고리의 다른 글

인텔리제이(intellij IDEA) 단축키  (0) 2022.11.14