기본 콘텐츠로 건너뛰기

개발자를 포기한 사람이 말하는 개발자의 현실.


비전공자가 개발자가 될 때 주의해야 할 점에 대해 이야기 해보려고 합니다. 


혹시 쉽게 개발자가 될 수 있다고 말하는 동영상이 있다면, 이 영상을 보고 다시 한 번 생각해 보시기 바랍니다. 


제가 1996년에 처음 제 사수였던 분이 스시집에서 일하던 사람이 개발자가 되고 싶어서 개발을 하게 된 사람이었는데요.. 

그 분을 보면 전공자보다 훨씬 개발을 깔끔하게 잘 하십니다. 이런걸 보면 전공을 했느냐 안했느냐가 중요한 것 같지 않아요.. 제 생각에는 개발자로서의 센스가 있느냐 없느냐가 가장 중요하지 않을까 합니다.

그 때와는 지금의 상황은 아주 달라졌지만 

지금도 명심해야 할 한 가지가 있습니다. 

개발자는 배움을 멈추면 죽는다. 

끝도 없는 자기 계발을 이어나가지 않으면 안되는게 개발자 입니다. 

언어 하나 좀 배우면 개발로 돈좀 벌거 같다고 가볍게 생각하시는 분들은 그냥 다른 적성에 맞는 길을 찾는것을 추천 드립니다. 

저도 개발을 하다가 포기한 이유를 말씀 드리자면.. 

보통 하나의 개발 언어를 배우는데 6개월에서 1년, 게다가 그걸 전문가 처럼 쓰려면 최소 4~5년은 걸리잖아요? 가볍게 명령어 조금 기억했다고 저는 개발자라고 부르지 않거든요.. 그건 코더라고 부르지요.. 개발자는 전문가 중의 하나입니다. 개발 언어를 이용하여 업무처리를 컴퓨터에게 넘기기 위한 작업을 해주는 것이지요. 어떠한 분야에서도 업무를 효율적으로 하는 사람과 그냥 무식하게 하는 사람들이 있잖아요? 개발은 그런게 너무 크게 보입니다. 코드 리뷰 한 번만 해보면 그 사람에게 소질이 있는지가 보이지요.. 전공과는 전혀 상관 없습니다. 

저는 처음에 Fortran 77을 배웠습니다. 아시는지요? 만약 들어봤다면 연령이 예상이 될 거 같네요.. ^^;;

그리고 Turbo C++을 했는데.. 갑자기 OOP라는 개념이 나오면서 이를 이용해야 해서 MFC를 써야 하는 환경이 오다가, 

어떠한 프로젝트는 VB를 썼습니다. 

그리고 다시 부산시청 구청의 전산화 작업은 Pascal언어를 확장시킨 Delphi 2.0에 Oracle 5.5를 썼습니다. 

그 뒤에 N사 및 그 시기에는 많은 웹 사이트를 Visual Basic 언어를 이용한 ASP를 사용 했습니다. 

그러다가 다시 C베이스의 PHP로 만들어진 웹 사이트를 많이 수정 했습니다. 

어느날 JSP로 국가 기관 서비스를 만들다 보니.. 거기서 Java로 게임도 만들게 되었습니다. 
AWS의 Route53이란 서비스가 나오기 5년 전 쯤에 이미 같은 개념의 하드웨어의 Pure Java코드를 수정하고 있었지요. 
왜 Pure Java라고 하냐구요? J2SE나 J2EE같은 아무 프레임웍도 쓰지 않은 java 프로그래밍으로 초당 1억회의 Request를 리얼 타임으로 부하분산 해줄 수 있는 코드를 짜 본적 있으신가요? 그게 가능하신 분은 Pure Java가 무엇인줄 아실 겁니다. 

언제부터인가 Python이 뜬다고 해서 Python으로 머신러닝 코드를 짜고 Django를 이용해서 웹 서비스를 올리고 있는데

NodeJS를 써보면서  버전별 관리가 가능한 서비스가 관리가 너무 편한거에요.. 그래서 써봤더니 Nuxt니 Nest니 다양한 프레임웍으로 짜야 하고, 블록체인은 Truffle이나 Openzeppelin을 NodeJS위에 모듈 처럼 올려 만들게 되었습니다. 

자.. 조금이라도 멈추었다면 아마 거기서 끝나는 사람이었을 겁니다. 

이렇게까지 들이파지 않으면 안되는게 개발자이구요.. 
게다가 거의 극한까지 연구하지 않으면 안됩니다. 
하나의 언어를 하더라도 투자한 노력에 따라 실력차이는 아주 분명하게 드러납니다. 

하나만 해도 되 라고 하시던 분들은 점점 좁아지는 입지에 그냥 작은 시장에서 벗어나지 못하고 유지하고 계시기도 하지요.. 뭐, 처음 배운 거 하나만으로 그냥 그냥 먹고 사는 방법도 있긴 합니다. 

그 외에도 곁가지가 엄청나게 많죠.. NodeJS를 베이스로 nvm을 알아야 다양한 버전으로 개발도 하고, Vue나 Angular를 얹음으로서 완전히 다른 언어처럼 개발이 되거나, NodeJS를 서버로 쓰기도 하고 PHP의 FasAPI 프레임웍을 얹어 서버로 가볍게 만들고 프론트만 NodeJS를 쓸 수도 있지요.. 

요즘은 또 Flutter를 Google이 밀어주고 있어서 언어는 어떻게 바뀔지 모릅니다. 
Flutter의 dart언어를 조금 써봤는데.. 그냥 새로운 언어더군요.. low code로 개발을 할 수 있다는 것을 보여주려고 하는 것 같습니다. 

다른 분야를 볼까요? 

Oracle은 5.5 를 썼던 때가 1997년 경이었네요.. 작년에 Oracle 12g랑 19c를 사용했지요.. 버전이 바뀐다고 배울 것이 크게 바뀌지 않습니다. SQL Server 6.5가 안정화 되면서 계속 썼지만 SQL Server 2005부터 JSON Query를 지원하는거 빼고는 그다지 신경 안써도 됩니다.  

Cisco CCIE 자격을 2005년에 따신 분은 아직도 그 자격증 하나로 먹고 살고 있습니다. 

서버 쪽은 cloud화 되면서 엄청나게 변화를 겪었지만 LPIC은 그대로 사용되고 그 위에 다른 기술들이 올라가고 있지요.. 환경이 달라졌을 뿐 기본 개념이 명확하면 크게 공부할 게 없습니다. Docker 조차 Linux에서 사용했던 Linux Container Service 를 개량한 것이었고, 가상 머신의 VM이란 것 역시 IBM의 LPAR, PPAR라는 OS파티셔닝에서 가져온 개념이었으니까요.. 

이것 들이랑 개발과 비교하면 공부해야할 내용이 어마어마하게 많고, 

자기가 공부한게 언제 사장될 지 모른채 계속 공부를 하다가 사장되면 바꿔야 합니다. 물론 누누히 얘기하자만 아직도 COBOL로 먹고 살고 계시는 분들도 있긴 합니다만, 자기가 노릴 수 있는 시장이 줄어드는 속도가 빠르다는 얘기 입니다. 

이게 개발자의 현실입니다. 

개발자가 돈 좀 된다던데 가볍게 한 번 개발 공부 해볼까?

라는 생각이 드시는지요?


그래도 개발자는 돈이 되는 직업이니 열심히 파고들고 싶으신 분들에게는 추천 하는 직업입니다!

아, 언제나 말씀 드리지만, 전 개발자가 아니고 인프라 전문 컨설턴트구요.. DB를 제일 잘합니다!

믿어주세요...


giip :: Control all Robots and Devices! Free inter-RPA orchestration tool! https://giipasp.azurewebsites.net/

댓글

이 블로그의 인기 게시물

Alter table 에서 modify 와 change 의 차이 :: SQL Server

두 개의 차이를 모르는 경우가 많아서 정리합니다.  modify는 필드의 속성값을 바꿀때 사용하구요.. change는 필드명을 바꿀떄 사용합니다.  alter table tbbs modify bNote varchar(2000) NULL; alter table tbbs change bNoteOrg bNoteNew varchar(2000) NULL; change에는 원래 필드와 바꾸고 싶은 필드명을 넣어서 필드명을 바꾸는 것이죠~ 더 많은 SQL Server 팁을 보려면  https://github.com/LowyShin/KnowledgeBase/tree/master/wiki/SQL-Server giip :: Control all Robots and Devices! Free inter-RPA orchestration tool! https://giipasp.azurewebsites.net/

[Classic ASP] Cookie가 삭제 안되는 문제

만든 쿠키가 삭제가 계속 안되서 여기저기 삽질을 했다. 모든 쿠키를 삭제하는 함수도 만들었다. Function CookieClear(cldomain) For Each cookie in Request.Cookies Response.Cookies(cookie).Domain = "." & cldomain Response.Cookies(cookie).Path = "/" Response.Cookies(cookie).Expires = DateAdd("d",-1,now()) Next End Function 그런데.. 안되서 계속 삽질하다가 하나 알았다.  littleworld.net littleworld.co.kr www.littleworld.net  의 모든 값을 지우려고 했으나.. 처음 만든 쿠키가 www.littleworld.net 인 관계로.. 처음에 www.littleworld.net 의 쿠키를 삭제 해야만 나머지가 지워졌다.. -ㅅ-;; 간단하지만 몰랐던 초보적인 사실.. ---- 누구나 쉽게 광고를! http://www.cashtalk.co.kr Free Infrastructure automation & management tool Global Infrastructure Integration Platform http://giip.littleworld.net Subscribe and publish your links as a book with friends  My Favorite Link Share http://link.littleworld.net

BI의 궁극판! Apache Drill을 써보자!

사실 Apache Drill 은 BI(Business Intelligence)라고 부르는 것 보다는 단순 데이터 연결 엔진이다. https://drill.apache.org/ 하지만 내가 왜 극찬을 하느냐면.. DBA로서 항상 문제가 되어왔던게, 이기종 데이터의 변환이나 처리였다. 포맷을 맞추는데 엄청난 시간이 걸리고, 데이터 임포트 실패가 무수하게 나고.. 한 번 잘못 데이터를 추출하면 다시 조정, 변환, 추출하는데 시간이 많이 걸린다. 그런데! Apache Drill은 그냥 RDB를 CSV랑 연결해서 조인해서 통계를 낼 수 있다. 그것도 표준 SQL을 사용하여! 예를 들어, CSV의 세 번째 컬럼이 price 이고, 물건의 판매이력을 PG사에서 CSV로 출력 받았다. 우리 DB와의 검증을 위해서는 수동으로 Import를 한 뒤에 포맷이 안맞아 잘리는 데이터가 있다면 다시 맞춰주고, 재 임포트를 수십 번, 그리고 나서 겨우 들어간 데이터를 조인하여 빠진 데이터를 분간한다. 숫자가 적다면 개발자가 개발로 처리할 수도 있지만, 건수가 하루에 300만건 짜리라면.. 한 달 온 파일은 9천만 건이다. 프로그램으로 고작 처리하는 것이 초당 500건. 거의 20만초, 에러 없이 약 56시간.. 에러가 생기면 다시 56시간.. ㅠㅡㅠ 이런게 현실이기 때문에 쿼리 말고는 방법이 없다. apache drill 의 진면목을 보자! 이번에는 좀 범용 적인 MySQL DB와 붙여 보자. . 난 이번에는 Mac에서 작업을 했기 때문에 그냥 다운 받아서 풀었음.. https://drill.apache.org/download/ 여기서 자기 OS에 맞는 버전을 받아서 설치하시길.. 압축을 풀고 나면 MySQL 커넥터를 붙여야 한다. https://dev.mysql.com/downloads/connector/j/5.1.html 여기서 다운로드 이런 커넥터 들을 붙일 때마다 콘피그를 수정해 줘야 하지만, 몇 번만