2015. 6. 18. 16:50

Test 업계에는 유난히 평생을 코딩이랑 담 쌓고 사신 분들이 많이 계신거 같습니다. 창피할 일은 아닙니다. 코딩 교육 자체가 그리 효율적인 방법으로 이루어지지 않고 있기 때문이기도 하고, 테스트 업무 담당자는 코딩을 몰라도 된다는 이상한 인식이 널리 퍼져 있기 때문입니다. 

하지만 분명히 가까운 미래의 어느 시점에는 테스트 전문가들은 코딩을 하지 못하면 업계에서 퇴출되는 시점이 오게 될 것입니다. 이미 '사용자 관점'의 테스트에 대한 여러가지 문제점들이 이미 오래 전부터지적되고 있었고, 이를 해결할 방법들이 등장한 지가 10년이 넘었으며, 이런 방법들이 서서히 고도화되어 가고 있는 것이 그 첫 번 째 증거입니다. 또한 클라이언트-서버 관점은 2 Tier 시스템에서부터 고도화 되어 N Tier 즉, 클라우드화 되어 가고 있고 이에 대한 형상관리와 변경관리가 재정의되고 있습니다. 그렇다는 의미는 곧 테스트의 형태도 변화한다고 봐야 함이 두 번 째 증거입니다. (예, 테스트는 형상관리를 기준으로 진행되어야 정상입니다.) 

그러므로 저 역시 비루한 실력의 코더입니다만... 코딩 이야기를 잠깐 해 보려 합니다. 

우리의 프로그래밍은 올해 이루어야 할 것들 중에 이것이다 하는 것을 정신을 차리고 프로그래밍하여 나아가면 우리도 버그가 발생하는 것을 해낼 수 있다는 마음을 가지고 코딩해야 한다고 생각합니다.

저도 취미로나 개발하는 주제에 이런 말씀을 드리는 것이 어떻게 받아들여질지 모르겠습니다만, 먼저 중요한 것은 어떤 프로그램을 사용하고 싶은 지 자신을 이해하는 것에서 시작되는 것이 좋습니다. 평소에 프로그램이라곤 게임과 인터넷만 이용하셨다구요? 네, 좋습니다. 그것도 충분히 좋은 일입니다. 

비트나미
https://bitnami.com/stacks

일단은 비트나미에서 시작하시죠. 비트나미는 2015년 현재 클라우드 사업을 하고 있습니다. 이 곳에는 수 많은 서비스들을 독립적으로 사용할 수 있는 환경을 제공하고 있습니다. 아파치나 톰캣 등 서버 설정이 필요한 부분까지 전부 하나의 바이너리로 압축해서 간단히 설치만 하면 사용자의 컴퓨터에서 바로 사용할 수 있게 제공하고 있습니다. 

이런 프로그램들을 사용해 보시면서 우리 회사에는 어떤 프로그램이 맞는지, 나라면 어떤 기능을 개발할 지를 살펴보세요. 모방은 창조의 어머니입니다. 본인이 뭔가 삐까뻔쩍한 무엇을 만든다고 생각하시기 보다, 기존에 이미 많은 고민을 통해 제작된 프로그램들을 이용해 보면서 자신만의 서비스를 꿈꿔 보는 것이 훨씬 좋은 방향이라 제안 드립니다. 



다음은 프로그래밍에 대한 기본 이해를 이야기 해보아야 할 것 같습니다. 프로그래밍(Programming)은 크게 알고리즘(Algorithm)에 대한 이해와 코딩(Coding)으로 나뉘어 있다고 보시면 됩니다. 


 - 프로그래밍을 시작할 때 가장 중요한 것은 알고리즘에 대한 이해입니다.

 - 알고리즘을 이해하면 그 다음은 코딩(Coding) 영역만 남습니다. 

 - 반대로 알고리즘을 이해하지 못하면 코딩이 지루하고 어렵게 느껴지게 됩니다. 


그럼 알고리즘은 어떻게 접근하면 좋을까요? 복잡하고 어려운 책들을 보시거나 인터넷을 검색하시기 보다, 일단 게임으로 접근해 보시면 어떨까 합니다.


코드컴뱃
http://codecombat.com/
한 달에 1만원 정도로 게임을 통해 알고리즘을 배울 수 있습니다

코드
http://code.org/learn
무료이며 특히 엘사 게임을 해 보면 아주 흥미롭게 알고리즘을 이해할 수 있습니다. http://studio.code.org/s/frozen/stage/1/puzzle/1


코드컴뱃이나 코드.org사이트로 가시면 게임을 통해 알고리즘에 대한 기본적인 이해를 갖추실 수 있습니다. 이미 진행해 보신 분은 아시겠지만 제가 계속 말하는 알고리즘은 결국 "문제 해결 능력" 이라고 단정 지을 수도 있겠네요.이 세상의 몇 몇 분들이 게임을 위험하고 잘 못된 것이라 하지만 (게다가 심지어 마약이라고까지 폄하하지만), 이 세상의 모든 복잡한 알고리즘도 결국은 게임과 같은 문제해결 방식에서 탄생합니다. 





자, 알고리즘까지 이해하셨다면 이제 코딩입니다. 


코딩을 시작하실 때는 해당 코딩을 할 수 있는 환경을 이해해야 합니다. 시작이 반이라는 말이 있듯이, 코딩을 할 수 있는 환경 설치만 이해하면 일단 코딩은 50% 배웠다고 볼 수 있습니다. 몇 년 전만해도 코딩 환경을 설정하는 정보들은 대부분 외국어로 되어 있었지만, 어느 순간부터 한글로 좋은 정보를 제공하는 분들이 많아 지셨으니, 본인이 시작하고자 하는 언어가 있으시다면 검색해서 환경을 설치해 보세요. 여러 번 지웠다가 재 설치 해 보는 경험이 쌓일 수록 해당 언어에 대한 공포심(?)은 사라지게 됩니다. 


생활코딩 
자, 이제 우리에게 우리 글, 한글로 코드를 접하게 해 줄 사이트에서 환경을 설치하고 신나는 코딩 시작하세요! 
https://opentutorials.org/

아직 언어를 정하지 못하셨다면 제가 추천드리는 사이트는 생활코딩입니다. 생활코딩에서 제공하는 강의를 통해 코딩의 정수를 하나씩 배워 나가보세요. 

자, 이제 다 왔습니다. 

환경설치가 되고, 해당 언어에 대한 기본적인 사용법을 알았다면... 그 이후 이제 코딩 부분에서 남은건 무조건 따라해 보는 것입니다. 처음부터 구문이나 문법을 이해하려고 들지 마세요. 코딩 초보인 여러분들이 특정 언어에 관심을 가졌다면, 그 언어는 적어도 몇 년 이상 개발되어 안정화되었을 겁니다. 그리고 그 긴 기간 동안 여러가지 사유로 문법과 구문이 안정화되었겠지요. 그렇기 때문에 한 번에 모든 것을 이해하려고 들지 마세요. 

아마 어떤 프로그래머에게도 "그 프로그램 언어를 잘 하는 비법이 뭐에요?" 하고 물으시면 "그냥 열심히 하는 거죠" 라는 답을 들으실 겁니다. 익숙해질때까지 외우고, 삽질하면서 배우는 단계를 모든 사람이 거치기 때문입니다.

일단은 어떤 명령어를 넣고, 어떻게 실행시키면 어떻게 표현되는 지, 예제를 따라하면서 외워보세요. 자신에게 필요한 것들을 하나씩 외우다보면 자연스레 구문이나 문법에 대한 궁금증이 생기고, 이에 대한 이해가 높아지게 됩니다. 영어든 중국어든 프로그래밍이든... 이 세상 모든 언어(Language)는 일단 외우는 것에서 출발합니다. 

추가로... 영어를 읽을 줄 아신다면 아래의 사이트에서 거의 모든 상황에 대한 해결책과 샘플 예제를 얻을 수 있습니다. 코딩을 하시다보면 자연스럽게 사용하게 되실거에요. ^^
http://stackoverflow.com
http://google.com

그럼 즐거운 코딩, 아니 프로그래밍하세요!


Posted by 『 Lv8+の 꽃怪獸 』 천년나무