본문 바로가기
  • 바다와 낚시를 사랑하는 꾼
  • 개발하면서 낚시를 하고 싶은 개발자
개발/개발자 이야기

초급 개발자 이거나 중급 개발자라면....(1편)

by 구뤠에~ 2022. 4. 7.

이제 내 나이도 어느덧 44살....경력 16년차......일명 고인물.....훗~

하지만 개발자라면 끝없는 공부~

스스로 고인물이라 하지 않는다. 난 스스로 당당한 풀스텍 개발자이다.

 

초등학교 때 부터 개발에 흥미를 느꼇다. 포트란 이란 언어로 시작해서 고등학교 때부터 C언어를 공부했다.

나름 대학교 때 C언어를 잘하게 되었고, 사회에 나와보니 C++, 한해 두해가 지나니 C#, JAVA가 강세였다.

 

디지털 세계는 발전이 더욱 빠르다. 뭐 하나 공부하면 그 다음 세계가 새롭게 펼쳐진다.

IT 버블이 터지는걸 경험했고 밀레니엄을 지나다 보니 안볼꼴 별꼴 다보다니 이제는 정규직을 떠나 대출 잘 안되는 프리랜서 생활로 전향을 하게 되었다.

 

정규직이든 비정규직이든 개발자는 개발자다.

 

#개발자의 성향적 분류

알것은 반드시 알아야 하고 모르면 공부하는 개발자....그것에 흥미를 못느낀다면 드랍하는것이 맞다고 생각한다.

다른 직업이 더 본인에게 맞다면 그 길로 가야 한다.

하지만, 개발자의 소향에 따라 개발도 여러가지로 선택할 수 있다.

 

아래 내 경험으로 본 것이니 지극히 내 시각이다. 어느 정도는 공감할 것이라 생각된다.

 

* 손으로 조물락 거리는 것을 좋아한다 (활동성이 있는 개발자 타입)

하드웨어와 같이 개발하는 것을 추천하다. 납땜질도 배우고 RS232, RS422 시리얼 통신 및 LAN 통신 등 다양한 하드웨어를 컨트롤 하면서 여러가지 소프트웨어를 분석하여 결과물을 만들어 낸다.

나 또한 이 부류이지만 일감이 줄어 1년에 몇번 간간히 하는 편이다.

주로 UI를 빨리 잡을 수 있는 라이브러리/패키지를 쓰거나 단순하다면 그냥 C#으로 해결한다.

 

수협어업정보통신망 프로젝트 때의 이야기를 해보겠다.

구축범위는 FM/AM 주파수 라디오 같은 송신기를 이용해 TTS(Text to voice) 엔진을 활용하여 자동 스케줄 방송하는 윈도우 응용프로그램을 만드는 것이다.

전원차단기 연동, 네트워크 연동, 시리얼 통신, TTS 엔진 연동으로 하나의 방송 스케줄러 및 재생 플레이어를 만드는 프로젝트 였는데, 수협이 주로 바다에 있지 않은가??

출장이 많은 개발자 타입이라 보면 된다. 

 

죽어도 외지에는 못가는 타입이라면 추천하고 싶지 않다.

 

* 앉아 있는게 편하다 (활동성이 없는 개발자 타입)

이 부류 개발자들이 너무 많다..ㅎㅎ..나쁘다는게 아니라 그냥 많다...

난 별로 싫어한다. 움직여야 사는 느낌이랄까.....흠....하지만 이런 일감이 많다 보니 어쩔 수 없다...그냥 해야지

대표적으로 Web/APP 개발자, Backend 개발자, 게임개발자 ....

내 전문으로 보자면 Backend에 가깝다. 하지만 어느덧 하다보니 Frontend도 잘하게 되었다.

IT 버블세대들의 특징이랄까...위에서 까라면 까는거다....좋은건지 나쁜건지 다양한 경험을 하게 되었고, 결국 풀스텍 개발자가 되었다.

 

출장은 거의 없고, 외주 또는 도급 일이 많다.

단가 얘기는 다음에 더 자세하게 글을 쓰겠지만, 간단하게 요약하면 서울권 보다 셔틀버스가 다니는 경기권이 단가가 높은 편이다.

 

#개발자라면 이 정도는 알아야...

아래 항목들 다른 글과 연계 하도록 하겠다. 

자신이 개발하는 개발툴(이클립스, 스프링부트, 비주얼 코드) 사용법이야 제일 잘 알아야 겠지만, 팀단위 개발에 있어서 민망하지 않을려면 아래 나열한 것들은 어느정도 숙련도를 가지고 있어야 한다.

우선 최우선적으로 개발자가 쌓아야할 아니면 다루어야 할 것들 요즘 추세로 나열해 보겠다.

아..참고로 하드웨어 개발자건 web/app 개발자건 상관없이 공통이다.

 

* 형상관리 (GIT 또는 SVN)

혼자하는 프로젝트도 자신의 소스를 수정할 때마다 기록을 해두고 이전으로 돌아가거나 할때나 많다.

단체로 하는 개발은 더더욱이 필요하며, 관리자가 소스를 확인 후 맞다면 병합(Merge) 하고 배포(Relesase) 한다.

 

* 클라우드 개념(AWS / Azure / GCP)

순서대로 아마존, 마이크로소프트, 구글에서 운영하는 클라우드 시스템이고, 이 순서대로 점유율을 차지하고 있다.

대게 경우 클라우드는 개발자가 직접 컨트롤 하는 일은 없다. 

하지만 개념은 잡고 있어야 한다. 

이전 처럼 특정 서버에 배포하고 파일이 잘 못 옮겼느디 그 파일이 깨졌다느니...핑계를 댈 수 있는 시기가 있었지만 이젠 통하지 않는다. 개념을 이해하고 배포하고 테스트 하고 무엇보다 환경설정(web.config, settings.ini....)을 해두어야 하기 때문에 개념을 이해하지 않고서는 불편함이 많을 것이다.

 

* 프로젝트 관리 툴(JIRA)

이슈를 추적할 수 있으며, PM 또는 PL이 업무지시를 내릴때, 업무가 완료된 이슈에 대해 리뷰도 하고 프로젝트 A부터 Z까지 관리하는 툴(web)이다.

다른 회사 제품들도 있지만 대부분 JIRA의 모방품들이다. JIRA 에 대한 개념만 있다면 다른 것들도 거의 같기에 JIRA에 익숙해지길 바란다.

 

이 정도 간략하게 정리하도록 하고 각 중요한 항목별로 링크하여 공유하도록 하겠다.