클론코딩에 대해서

Romuru·2022년 8월 14일
1
post-thumbnail

클론코딩에 대해서

클론코딩으로 학습을 하지 않고 단어만 들었을때는 부정적인 생각이 들기 쉽다.

새로운 프로젝트를 하는것도 아니고 그냥 따라서(클론)을 만든다니.

하지만 결과물로서가 아니라, 성장과정으로서 봐주면 어떨까 라는 생각으로

글을 적어본다.

클론코딩이란?

특정한 도메인, 서비스를 목표로 그것과 동일하거나 유사한 기술(스택)들로 구현해보는 학습방법이다.

장단점

일단 나도 클론코딩으로 개발 공부를 시작했다. 그래서 아무래도 옹호하는 쪽으로 글이 작성될꺼같아.

이부분을 미리 밝힌다.

장점

개발에 대한 성취감을 바로 느낄 수 있음.

무엇인가를 학습 할 때 가장 중요한 점은 그 기술로 어떤것을 할 수 있는지 이해하면서

결과물을 도출해 내는 것이 가장 성공적인 배움이 아닐까 라는 생각을 가지고있다.

가령 영어를 예를 들면

'영어를 배워야지'

라기 보다는

'영어를 배워서 내가 좋아하는 장르를 번역없이, 중간에 누락되는 뜻없이 그 자체로 봐야지'

'한국어로 번역되어야만 배울 수 있는게 너무 실증나. 그냥 영어를 배워서 빨리 배울래'

처럼 여러 학습방법론에서 강조되는 "구체적인 목표"와 함께 흥미를 느낄 수 있다는점이다.

하루종일 공식문서나 코딩테스트 문제만 보고있는 것보다는 일단 따라서 만든다는거에 흥미를 느껴야

개발자로서 성공적인 학습이 이뤄질 수 있다고 생각한다.

(물론 이론적인 학습부터, 공식문서를 읽어가면서 차례대로 배워가는것이
'최고'의 선택일 수 는 있겠지만, 항상 최고의 선택이 '최선'의 선택은 아니라고 생각한다.)

여러 기술을 접할 수 있음.

본인이 프로젝트를 설계할 때, 알고있는 기술이 딱 html, css, 바닐라 js 세가지라면 어떨까?

다양한 css 프레임워크에 존재들과 바닐라js 에서 사용할 수 있는 무궁무진한 라이브러리들.

하다못해 reset css 시트의 존재에 대해서는 알 수 있을까?

내가 애용하고 자주 배우고있는 노마드코더 사이트에서는

다양한 라이브러리와 프레임워크들을 사용해서 클론코딩을 진행하고있다.

여기서 처음 들어보는(특히 css 관련된) 기술들이 많았는데 개발을 하다보면

언젠가는 들어보고 사용해 볼 수 있는 기술들이었다지만, 나는 이 기술들에 빠르게 존재를 알았다는게

클론코딩에서 좋았던 점이라고 꼽을 수 있겠다.

학습의 연결점.

나의 경우에는 동영상 편집프로그램을 배울때, 무엇이든 지식이 있어야 (효과, 연출, 배경, 카메라각도)등

뭔가 머릿속에 있어야 그것이 "이렇게 해보면 어떨까?" 라는 기획으로 이어진다.

한줄로 요약하자면 "아는만큼 보인다" 인데, 일단 뭐든 보여야 기획을 하고

다른 효과는 없나? 다른 각도로 보이면 어떻게 되지? 라는 식으로 연결되는 학습이 수월 하다는 것이다.

어떤식으로 코드를 작성해 나가는지 배울 수 있음.

경험이 적은 개발자 취준생들이나, 프로젝트가 적은 주니어의 경우 코드를 어떤식으로 작성해 나가야 할지

의문이 들 때가 있다. 그때 적지않은 시니어 개발자들이 해주는 말이있는데,

'라이브 코딩을 많이보면 도움이 된다'

라이브 코딩을 보면 프로젝트 파일을 어떤 구조로 생성하는지, 코드 작성 순서와 분할,

기능이 구현되면 좀 더 코드를 간결하게 만들 수 있는지 고민을 하는 방법을 배울 수 있다.

경험이 있는 사람들도 다른 개발자/회사 들은 어떤식으로 작성하는지 배울 수 있다.

여기서 라이브 코딩과 클론코딩에 차이점은 눈으로만 보거나 직접 따라서 작성하거나인데 여기서 드는 생각은

라이브 코딩은 눈으로 보는 클론코딩이 아닐까?

시간과 자원이 투자되는점도 차이점이 있지만, 어느 방식으로든 학습을 할꺼라면 시간과 자원이 투자된다는것도

동일하다.

단점

처음 기획된 그 이상의 경험을 배우기 힘듬.

이 부분의 단점은 사실 커리큘럼을 가지고 배우는 모든 학습방법이 가지고있는

고질적인 문제가 아닐까 라는 생각이 든다.

책에서, 강의에서 배우고자 하는 학습 목표가 있고 커리큘럼이 있을텐데 본인이 다른 프로젝트를 진행 하거나

추가적인 학습이 없다면 그 이상으로 배울 수 없다는 점이 잇다.

기피되는 (인식이 안좋은) 이유

왜이리 사람들은 클론코딩에 대해서 부정적으로 생각하는것 일까?

나도 클론코딩에 대해서 완벽하고 꼭 거쳐가야 하는 관문이라고는 생각은 안한다. 하지만

이렇게까지 거부 반응을 보일필요가 있을까? 왜 그런지 정리해보았다.

단순한 따라치기, 받아쓰기 일까? (이론의 부재?)

그냥 예제 복사/붙혀넣기와 예제를 보고 진짜 따라서 "만" 치는것과 동일하다는 인식이 있어서 그런것 일까?

이렇게 하면 이렇게 됩니다. 이렇게 치면 이렇게 나와요~

이런식으로만 20~30시간 주구장창 한다면

그것은 잘못된 학습 방법이며 그렇게 생각한다면 부정적으로 받아 들이는것도 충분히 이해가 가능하다.

하지만 내가 학습 하고있는 노마드 코더의 경우

왜 이 기술이 선택 되었는지 > 기존에는 어떤 문제가 있었는지 > 이 기술이 문제에 어떤점을 해결하는지

이론(기술)학습 > 연습 > 구현 > 결과물 도출 의 방식이기 때문에

클론코딩 하나의 강의를 수강하고도 그것으로 끝이 아닌,

바로 다음 프로젝트에도 사용이 가능할 정도로 학습이 된다.

기획의 부재

어떤 주제를 가지고 진행하는 것이 클론코딩이다 보니, 본인이 강의를 수강하려는 입장에서는

기획을 할 틈이 없다. 주도적으로 진행을 하는 학습방식이 아니다 보니, 기획을 경험하기에는

어려움이 따른다.

문제 해결능력 경험이 부족 할 수 있음.

클론코딩을 진행시에 마주치는 문제의 대부분은 사용하는 라이브러리, 프레임워크의 버전 차이에 따른 문제,

기술환경 셋팅에 따른 문제가 대부분이다.

이미 성공적으로 완성된 코드들을 가지고 이론과 함께 학습하면서 같이 만들어 나가는 학습방법이다보니,

매우 통제되고 안정된 상황에서 겪을 수 있는 문제는 많지 않다.

개발자들의 주요 덕목중 하나로 꼽히는것이 문제 해결능력인데,

기존에 해결되어 답변이 올라온 문제들도 모두 나에게 도움이 안될 수도 있고.

지금 오류가 내가 최초로 겪는 오류일 가능성도 있다.

어떻게 하면 효과적으로 문제에 접근을 해야 하는지도 많은 경험이 필요로 하는데,

클론코딩에서는 경험하기 힘든 부분이다.

어떻게 해야할까

학습 후에 무엇이든 직접 프로젝트를 진행하는것이 위에 서술된 단점을 모두 잡을 수 있는 방법이다.

클론코딩 자체는 나쁜것이 아니라고 생각한다. 하지만 클론코딩"만" 한다면 마치 print("hello world!")만 찍고 파이썬을 할 줄 안다고 말하고 다니는것과 같다고 생각한다.

추가적인 프로젝트를 진행할 여건이 안된다면.

클론코딩을 진행을 하면서 이런식의 기능을 추가하면 어떨까 강의에서는 이렇게 코드를 짜라고는 했지만

이렇게 나누면 다음에 확장하기 더 편하지 않을까? 등 기능을 추가하면서 고민을 하는 흔적을 남기는것도

좋은 인상을 남길수 있지 않을까 라는 생각도 든다.

클론코딩 이후에는?

클론코딩을 진행한 후에는 아무래도 힘들게 배운 코드들이 아니다보니 바로 망각하기 십상인데,

강의없이도 구조를 이해하고 완벽하게는 아니더라도 기능적으로 비슷하게나마 만들 수 있다면

성공적으로 클론코딩을 수강한것 이라고 생각한다.

이후에 그 기술들을 사용해서 프로젝트를 진행해봄으로써 보다 완성도있게 기술들을 다룰 수 있게 연습하고

클론코딩시에 느꼈던 흥미와 성취를 가슴에 새기면서, 학습을 이어나가면 멋쟁이 개발자가 될 수 있을꺼라

감히 생각한다.

주저리

클론코딩은 많은 학습방법중 하나이지만 "따라하기만 한다"라는 부분에 있어서 부정적인 인식이 있는거같다.

그에 대한 마음은 충분히 이해하지만 그래도 아무의미도 없는짓 이라고 하기에는 내가 배웠던 지식과

가치관, 철학들이 조금 많아서 말이다. 모든 학습방법에 정답은 없지만 효율은 존재한다.

그 효율을 최대한 이끌어 내기 위해서는 본인 스스로 개발과 학습을 사랑해야하고, 즐겨야만한다.

그리고 그 이후에는 어떤 식으로 공부를 하더라도 도움이 될것이며, 성취감을 느껴봤다는 것만으로도

클론코딩의 가치가 충분히 있다고도 생각한다. 이 글을 읽으면서 어떤 생각이 들었는지,

혹은 역시나 내 생각이 맞다 라는 굳은 믿음을 가지고 돌아가더라도 이 글을 읽어주셔서 감사하다.

돈받음?

의도치않게 노마드코더를 많이 언급하며 칭찬해왔다.

니꼬 선생님은 기술을 잘 알려주는부분도 있지만,

선생님으로써 발전하고 노력하는 모습이 내가 접했던 모든 강의보다 감명이 깊었기에

긍정적인 부분으로 계속 언급을 해왔다. 하지만 이에 대한 어떠한 대가도 받지 않았지만...서도...(머쓱

돈폴 겟 잇 김취 사랑해요 감사합니다 땡큐.

profile
늘 새로운 호기심을 찾고, 기술적 한계에 도전하고, 하늘색이 잘 어울리는 사람입니다.

0개의 댓글