소프트웨어를 배우면 엄청난 무기가 되는 이유

Software 는 왜 배워야 하는가?

프로그래머로 일하지 얼마 안되었을 때 저는 수많은 난관에 직면에 있었습니다. 그 이유는 모든게 낯설고 어려웠기 때문입니다. 

위에 글에서도 언급했었지만 프로그래머 즉 개발자로 처음 시작하는 것은 생각보다 만만치 않았던거 같습니다. 대학을 다닐때 C와 C++을 공부하고 나름 사용해 봤었지만 실제 회사에서 실무를 하면서 회사에서 요구하는 수준은 당시 내가 생각했던 수준보다 훨씬 높았기 때문입니다. 특히 저같은 경우에는 전자 전공을 했기 때문에 S/W 지식보다는 전자회로쪽에 더 익숙했었습니다.

회사의 요청으로 프로그래머로 전향했지만 회사에서는 저의 사정을 절대 봐주지 않았습니다. 단지 “신입” 이기 때문에 좀더 시간이 걸린다는 것만 주변에서 알고 있었을 뿐입니다. 네트워크 장비를 개발하는 회사였는데 고객사에서 이슈가 터져서 지원 요청을 하면 저 혼자 대응을 해야 하는 상황이었습니다. 

당시 회사는 작은 중소기업이었기 때문에 기술지원 인력이 별도로 없었고 프로그래머가 대응을 해줘야 하는 상황이었습니다. 더 최악인 것은 장비를 개발했던 선배들이 죄다 퇴사를 해버리고 저 혼자 담당자로 지정이 되어 있던 상황이었습니다. 정말 눈앞이 깜깜하고 어떻게 할지 몰라 무작정 잘 이해가 안되는 코드를 들여다 보고 고객사의 전화를 붙들고 있으면서 말로 때웠던 기억이 나네요.

장비는 리눅스 기반이었고 이더넷 카드의 드라이버와 고객사의 GUI와 연동을 하던 API를 유지보수를 하고 있었습니다. 고객사에서 이런 저런 이슈에 대하여 설명을 하는데 이해가 도통 안되었던 상황이었습니다. C와 C++로 된 소스였는데 아무리 들여다봐도 전혀 이해가 되지 않았던 시절이었지요 ㅎ

숨이 막힐 정도로 답답했고 두려운 상황이었지만 “에라~ 모르겠다” 라는 생각으로 직접 현장에 가서 모르는 소스 하나하나 수정해 가면서 디버깅을 날새도록 했던 적이 있습니다. 당시만 해도 정말 눈앞이 캄캄했었는데요, 그 때 이후로 장비의 소스가 조금씩 조금씩 보이기 시작하더군요. 그러다가 지금까지 프로그래머로 살아오게 되었습니다.

저의 히스토리에 대하여 잠깐 이야기를 해봤습니다. 이런 이야기를 하는 이유는 소프트웨어를 개발하는게 정말 만만치 않다는 것을 말씀드리고 싶어서 입니다. 최근에 IT 서비스쪽 프로그래머들의 인력 공급이 부족해져서 연봉이 급상승하는 추세가 이어지고 처우가 개선되고 있습니다. 물론 “임베디드 소프트웨어” 쪽은 여전합니다만…

모니터 앞에서 앉아 가만히 키보드만 두드리는 직업인거 같지만 개발 실무는 일정에 치이고 알아야 할 지식이 산더미며 하루라도 공부하지 않으면 도태되는 직업이 프로그래머인 거 같기도 합니다. 그럼에도 최근 연봉 인상과 처우가 좋아지자 비전공자나 미래를 위해서 프로그래머를 도전하는 사람들이 늘어나고 있는거 같습니다. 그런데 그 도전자들 중에서 프로그래머로 안착한 사람들의 비율은 그리 높지 않습니다. 생각보다 다른 현실에 적응하지 못하고 금새 그만두기도 합니다.

그런데 제가 주제에서는 소프트웨어를 배워야 한다는 뉘앙스로 써놨습니다. 엥 왜 앞에 얘기랑은 다른 이야기를 할까요?

소프트웨어 프로그래머라는 직업은 어떨지 모르겠지만 “소프트웨어” 그 자체를 배우는 것은 현대 사회에서 꽤나 많은 도움이 되기 때문입니다. 이와 관련된 설명을 해보도록 하겠습니다. 

우리의 삶과 밀접한 소프트웨어

소프트웨어는 이미 우리의 삶에 깊숙히 들어와 있습니다. 1 과 0 으로 표시되는 미세한 전자 신호를 제어하는 디지털로 대표되는 소프트웨어는 일상 생활에서 없어서는 안되는 존재가 되었습니다. 

일례로 들면 우리가 자기 전까지도 끼고 사는 “스마트폰”은 소프트웨어의 집합체라고 볼 수 있습니다. 안드로이드나 iOS로 대표되는 스마트폰 OS에서 돌고 있는 수많은 앱들로 우리가 필요한 정보나 업무를 수행합니다. 당장 스마트폰이 없다면 현재 인류는 잠깐동안 바보가 되고 말겁니다.

2007년도 즈음에 애플의 아이폰이 세상이 등장하면서 “소프트웨어”는 인류에게 더 밀접하게 다가오기 시작했습니다. 그리고 소프트웨어는 사람들이 생활을 더욱 편리하게 해줬으며 관련 일자리도 엄청나게 늘어나게 되었습니다. 

이런 상황에서 소프트웨어를 조금이라고 알고 배우는 것은 매우 큰 의미를 갖습니다. 예를 들어 회사에서 액셀로 자료 정리를 하는데 일일이 수동으로 작업하기 너무 시간이 걸린다고 할때 “파이썬” 을 이용해서 자동으로 액셀에 자료 정리를 해주는 간단한 툴을 만든다고 가정해 보겠습니다. 이렇게 하면 일주일이 걸릴거를 하루도 안되어 작업을 완료하게 됩니다. 

그런 다음에 액셀로 업무를 마치게 되면 텔레그램으로 전송해주는 기능까지 넣는다고 하면 굳이 언제 작업이 끝나는지 모니터링 하지 않아도 됩니다. 사람은 퇴근 후에 파이썬으로 컴퓨터에게 해당 업무를 지시해 놓고 언제 끝나는지는 텔레그램 메시지를 받으면 알 수 있으니 말이지요.

소프트웨어는 일반 회사원의 업무량을 줄여줄 수 있는 도구가 될 수 있다 – pixabay

그래서 소프트웨어를 어느 정도 다룰 줄 알면 개발을 직업으로 삼은 프로그래머가 아니라고 해도 꽤 도움이 많이 된다고 볼 수 있습니다. 위의 예는 소프트웨어를 활용하는 한 예일 뿐입니다.  활용 분야는 무궁 무진하기 때문에 내가 하는 일에 활용하면 그만큼 많은 도움이 됩니다.

소프트웨어는 내게 날개를 달아줄 수 있는 꽤 괜찮은 도구이다

저는 최근까지 “임베디드 소프트웨어” 분야의 경력을 주로 이어왔습니다. 그러다가 임베디드 분야의 회사들에게 다소 회의감을 느껴서 제 2의 삶을 준비하고자 회사를 그만두고 여러 시도들을 하고 있는 중입니다. 

한동안은 임베디드 분야와는 다른 소프트웨어 분야로 눈을 돌리고 있는 중입니다. 코드도사 사이트를 운영한지는 4년이 넘었지만 정작 사이트가 어떻게 동작하고 기능이 구현되어 있는지에 대한 파악이 부족했었습니다. 그래서 사이트의 서버와 사이트가 운영될때 어느 정도 알아야 하는 HTML/JS 등을 살펴보기 시작했습니다. 

임베디드 소프트웨어를 주로 할때는 웹에 대한 시야에 굉장히 좁았던거 같습니다. 임베디드라고 할지라도 프로그래머로 일을 하다보면 웹을 아예 등한시 할 수는 없습니다. 예전에 다니던 회사에서는 임베디드 리눅스를 기반으로 한 네트워크 라우터를 제조했었는데 라우터의 설정 GUI 는 웹으로 구현되어 있었습니다. 따라서 저도 웹을 직접 구현하진 않았지만 이슈가 있을때는 중간 인터페이스 부분을 확인하기도 했습니다. 

하지만 당시에는 웹에 대한 관심이 부족했던거 같습니다. 그리고 다소 귀찮기도 했고요. 그래서 웹을 일절 관심을 두지 않고 있다가 최근에 와서야 기술 트랜드가 바뀐 것을 보고 격세지감을 느끼게 되었습니다. 현재 IT 분야에서 웹은 꽤나 중요하고 인력을 필요로 하고 있기 때문입니다.

또한 코드도사 사이트도 웹으로 되어 있기 때문에 시간이 있는 요즘에 코드도사 사이트를 살펴보니 생각보다 웹이라는 분야가 무궁무진 하다는 것을 깨달았습니다. 임베디드 분야에서 성능이나 작은 기능에 집착할때 웹은 사용자의 입장에서 매우 다양한 기능과 기술이 있다는 것을 말이지요.

html
한때 국내 IT 분야에서 3D로 취급되던 웹. 현재는 백조로 바뀌어 IT 분야의 핵심으로 거듭나있다 – pixabay

최근에 웹 프로그래머의 몸값도 만만치 않게 높아져 가는 추세입니다. 예전에 최저 시급보다 못받던 시절이 있었으나 현재는 웹 프로그래머 구하기가 어려울 정도로 대우가 많이 좋아졌습니다.

또한 웹은 프로그래머가 아니더라도 일반 사람들에게 알아두면 꽤나 좋은 도구가 될 수 있습니다. 그 이유는 무언가 새롭게 일을 시작하려고 할때 “웹사이트” 만큼 좋은 홍보 수단이나 도구가 없기 때문입니다. 물론 웹 사이트나 블로그를 운영하는데에는 웹 지식이 없어도 운영하는데 큰 문제가 생기지는 않습니다. 

하지만 HTML 이나 자바스크립트를 알아두면 웹 사이트나 블로그를 운영하는 일반 사람들에게도 막강한 도구가 될 수 있습니다. HTML 혹은 자바스크립트를 이용해 내 사이트나 블로그를 예쁘게 꾸미거나 방문하는 사람들에게 이목을 끌 수 있는 기능을 만드는게 가능하기 때문입니다.

위 링크는 제가 자바스크립트로 짜여져서 공개된 “팩맨” 게임을 코드도사 사이트에 올려놓은 것입니다. 이 팩맨 게임을 올리기 위해서는 서버에 팩맨 소스 파일을 올려서 HTML 로 링크를 시켜주는 작업만 했습니다. 간단하지만 내 사이트나 블로그를 꾸미는 파워풀한 도구인 HTML 혹은 자바스크립트를 배워두면 당신에게 강력한 도구 혹은 무기가 될 수 있습니다.

그래서 저도 최근에는 HTML 이나 자바스크립트를 직접 배워보기로 했습니다.  배워두면 활용할때가 매우 많기 때문입니다.

HTML 이나 자바스크립트는 온라인(강좌, 동영상) 이나 책을 통해서 익혀 볼 수 있습니다. 자바 스크립트의 경우에는 문법이 C와 비슷하지만 포인터 등의 개념이 없기 때문에 C에 비해서는 이해가 조금 더 쉬울 것으로 생각됩니다.(물론 자바스크립트로 개발은 어렵습니다)

온라인 강좌는 위 링크의 생활코딩이 괜찮은 거 같습니다. 이 외에도 인터넷 상에는 다양한 강좌와 동영상이 있으니 배우려고만 한다면 금새 강의를 찾을 수 있습니다. 또한 책을 통해서도 배울 수 있습니다. 

혼자 공부하는 자바스크립트, 한빛미디어[이지스퍼블리싱]Do it! HTML + CSS + 자바스크립트 웹 표준의 정석 : 한 권으로 끝내는 웹 기본 교과서, 이지스퍼블리싱Do it! 자바스크립트 + 제이쿼리 입문:155개 예제로 기본 잡고 반응형 웹부터 실무 활용 플러그인까지, 이지스퍼블리싱

위 책을 사서 보거나 도서관에서 대여를 해서 보고 익히셔도 됩니다.  HTML + 자바스크립트를 익히는 방법은 여러가지가 있으니 여러분의 자유입니다.

이처럼 소프트웨어를 배워두면 여러분들에게 강력한 무기를 선사하게 되는 것입니다. 전쟁에서 칼을 들고 싸우던 와중에 당신에게 총을 준다면 전쟁에서 승리할 가능성이 더 높아지겠죠?

소프트웨어의 시작은 “파이썬”으로

위 언급한 내용중에서 “파이썬”으로 액셀 업무 자동화에 대해 말한 적이 있습니다. 코드도사 사이트를 운영하면서 여러가지 이슈와 작업들을 할께 생겼는데 우연히 파이썬을 이용하게 되면서 꽤 매력을 느끼게 되었습니다. 

제가 예전 글에서 파이썬에 대한 내용을 언급했던 적이 있었습니다. 저는 파이썬을 알게 된지는 10년이 넘었지만 파이썬이 이렇다~~ 라고만 알았지 파이썬으로 어떤 것을 개발해보거나 만들어 보지는 않았습니다. 위 글을 썼을때 문법을 공부하고 간단하게 이것저것 만들어보다가 시간이 없어서 더이상 활용하고 있지 않았던 상태였지요.

그러다 최근들어서 코드도사 운영중에 해야 할일을 파이썬으로 했던 적이 있었는데요, 문법도 간단하면서 몇줄 안되는 구문으로 간편하게 작업을 처리하는 것을 보고 감탄을 하게 되었습니다. 

파이썬 너무 좋다 ㅎㅎㅎ

위에서 언급했던 “액셀 업무 자동화”도 제가 했던 작업의 일부였습니다. 그리고 저는 텔레그램도 사용하고 있는데 텔레그램에는 “봇” 이라는 기능이 있어서 파이썬을 통해 봇으로 메시지를 실시간으로 전송하는게 가능합니다. 이처럼 파이썬은 실생활이나 회사 업무에서 활용할 수 있는게 매우 다양하고 무궁무진 합니다.

파이썬은 실생활에 활용할 수 있는게 너무 많다

최근에 IT 산업에서 “빅 데이터” 가 이슈화 되었는데 이 빅데이터 처리를 파이썬으로 한다고 합니다. 개인적으로 파이썬을 사용해 보니 빅데이터 처리를 하는게 이해가 되더군요. 또한 웹 구현, 앱 개발, 크롤링, 업무 자동화 등등 생각보다 활용할 수 있는 분야가 많아서 파이썬을 숨겨진 보석이라고 표현하고 싶습니다. 

특히 제가 최근에 관심있어하는 부분은 “업무 자동화” 입니다. 파이썬을 이용하면 반복적이고 패턴이 일정한 작업은 굳이 사람이 직접 하지 않아도 됩니다. 그래서 파이썬을 익혀 놓으면 직장에서 반복적인 일들을 컴퓨터에게 맡겨 놓고 난 다른 일을 할 수 있어서 생활이 편리해 집니다.

그런데 위에서 제가 HTML + 자바스크립트를 배우는 것도 좋다고 했는데요, 그럼 뭘 먼저 배우라는 걸까요?

일단 파이썬 부터 시작해 보세요. 파이썬은 현재까지 나온 프로그래밍 언어 중에서도 문법이 쉬운 편에 속합니다. 따라서 요즘에는 어린 학생들도 파이썬으로 코딩 수업을 시작할 정도로 파이썬은 인기 언어로 분류가 되고 있습니다. 

프로그래밍에 익숙치 않은 일반인들이라도 파이썬을 먼저 배운 다음에 익숙채지면 HTML + 자바스크립트를 배워도 늦지 않습니다. 파이썬으로도 웹 개발이 가능하기 때문에 파이썬을 먼저 배워두면 도움이 됩니다. 

파이썬은 온라인 상에도 강좌가 무수히 많이 개설되어 있습니다. 또한 시중에도 많은 관련 서적들이 출시가 되어 있기 때문에 당신이 마음만 먹는다면 파이썬을 배우고 익히는게 가능합니다. 

온라인 파이썬 강좌를 검색해보면 많이 있지만 원조 강좌는 “점프 투 파이썬”을 추천드립니다.

저도 파이썬을 처음 익힐 때 “점프 투 파이썬”으로 익혔습니다. 10년 전에 이 강좌를 보고 익혔는데 10년이 지난 현재 파이썬을 익혀 놓은 것을 정말 잘한 일이라고 생각하고 있습니다. (물론 저 독학으로 공부를 했습니다.ㅎㅎ)

서적으로 공부를 하고 싶다면 아래 책을 참고해 보셔도 됩니다.

Do it! 점프 투 파이썬:이미 200만명이 이 책으로 프로그래밍을 시작했다!, 이지스퍼블리싱혼자 공부하는 파이썬:1:1 과외하듯 배우는 프로그래밍 자습서, 한빛미디어

점프 투 파이썬의 경우에는 온라인 강좌와 더불어 서적으로도 시중에 판매를 하고 있습니다. 둘 중에 본인 취향에 맞게 선택하면 되겠습니다. 

제가 개인적으로 추천하는 책에는 아래의 책이 괜찮은거 같기도 하네요.

위 사진에서 보이는 “모두의 파이썬” 이라는 책입니다. 페이지 수도 적고 여러 예제와 게임 만들기 등이 있어서 나름 구성이 잘 되어 있는거 같습니다. 20일 만에 기초를 쌓는 과정이라고 하는데 사람마다 다를듯 합니다.ㅋ

모두의 파이썬:20일 만에 배우는 프로그래밍 기초, 길벗

모두의 파이썬은 제가 아내에게 한번 파이썬을 배워보라고 책을 찾다가 사다준 책입니다. 쉬운 설명에다가 가격도 1만원 초반대로 저렴하니 구입해서 익히셔도 괜찮을 것 같습니다. 구입은 위 링크를 통해서 하셔도 됩니다. 

현재 코드도사 웹 사이트를 운영하고 혼자서 활동을 하면서 사용하고 있는 언어는 C, C++ 이 아니라 “파이썬” 혹은 “HTML” 위주로 사용하고 있습니다.  특히 파이썬은 직접 코딩을 하면서 필요한 도구들은 이것저것 만들어 보고 있습니다. 제 개발 인생에서 이런 전환점이 올줄은 몰랐는데요 파이썬을 다루다보니 소프트웨어라는 분야는 참으로 넓고 다양하며 배워야 할께 많다는 생각이 듭니다. 

그래서 앞으로는 코드도사 사이트에도 파이썬이나 웹 관련 내용들의 글도 지속적으로 작성할 생각입니다. 십 몇년동안 실무에서는 C, C++ 만 사용하다가 현재 파이썬만 사용해보니 소프트웨어의 또다른 맛을 느끼게 됩니다. 그만큼 파이썬은 제게 꽤나 매력적인 도구로 다가오게 되었습니다. 

이 글을 읽는 분들중에는 소프트웨어에 관심은 있지만 어떤 언어를 공부해야 할까? 라는 고민을 가지고 계신 분들이 있을 겁니다. 본인이 목표로 하는 분야에 따라 다르겠지만 일반적인 상황이라면 “파이썬”, “HTML”, “자바스크립트” 이 세가지만 익숙해져도 소프트웨어 분야로 진출하는데 큰 도움이 될 것입니다. 요즘은 C, C++ 같이 어려운 언어를 하지 않아도 프로그래머 혹은 개발자의 직업을 가지는게 가능합니다. 

굳이 프로그래머를  직업으로 하지 않아도 특히 “파이썬” 만 잘 배워 놓으면 현대 사회에서 당신은 엄청난 무기를 소유하게 되는 것이나 다름없습니다. 일반 직장인들에게 가장 와닿는 부분이 바로 “업무 자동화” 이며 이걸 통해서 활용 방법은 무궁무진 하다고 볼 수 있습니다. 

당신에게 강력한 무기를 선사해줄 “파이썬” 을 배워보는 것을 어떨까요?

'코드도사(codedosa.com)'에는 쿠팡파트너스 등의 제휴링크가 포함되어 있으며 수수료를 제공받을 수 있습니다.