독서 공부

[책 요약] IT 개발자의 거의 모든 것(2편), 개발자를 꿈꾸는/개발자로 일하는/개발자와 일하는 모든이를 위한 실용지침서

책길사 2023. 7. 4. 21:25
반응형

5.IT시장의 현황 및 자본흐름

공공과 금융 부분은 보안과 안정성을 매우 중시하 특성상, 새로운 기술을 쉽게 받아들이지 못하고 시장에서 가장 널리 사용되고 이미 검증된 기술만을 고집하는 경우가 많다. 관련 업계에서는 외국에 비해 편향되고 보수적으로 접근하는 국내 현실을 비판하기도 한다.


금융과 공공 부문은 시스템을 자사 직원이 개발하지 않고 SI 업체에 개발을 의뢰한다. 직접적인 개발을 수행하지 않고 요구 사항에 대한 관리∙감독만 수행하기 때문에 개발 직군의 직원이 많지 않으며, 실제로 코딩을 하지도 않는다. 개발완료 후 유지보수 또한 전문 운영업체에 이관하고 월마다 유지보수 비용을 지불한다. 소위 치명적인 결함으로 인한 금융손해가 발생하면 운영업체의 과실에 따라 손해배상을 청구하면 되기 때문에 유지보수 비용이 매우 높다. 그러고 보면 시장에 기술 종류는 매우 많지만, 가장 큰 시장인 금융, 공공 기관 부분만 떼어 놓고 보면 HTML, 자바스크립트, CSS의 디자인 부분과 WAS 시스템 위에서 돌아가는 자바 기반의 스프링 프레임워크 기술을 익히면 SI 업계에서는 대체로 취직이 어렵지 않다.


비중으로 보면 백엔드 개발자가 업무적인 부분을 많이 담당하기 때문에 수요가 많고, 모바일은 하이브리드 추세에 따라 상대적으로 수요가 적다.


우리가 알고 있는 대부분의 유명한 게임들은 모두 이 C++ 언어로 만들어진 소켓 서버를 기반으로 작동하고 있다.


클라이언트 부분의 개발은 상대적으로 선택 폭이 넓다. 클라이언트는 PC용 게임, 안드로이드와 아이폰용 게임을 개발해야 하는데 최근에는 유니티, 언리얼 같은 클라이언트 게임 개발 엔진이 워낙 막강하여 원 소스로 개발하여 동시에 여러 가지 게임 서비스가 가능해졌다. 유니티나 언리얼 같은 엔진은 일종의 개발 툴로 비주얼 스튜디오와 유사하다고 생각하면 편하다. 이 게임 엔진들은 내부적인 게임의 구현을 C++, 자바스크립트, C# 등을 이용할 수 있게 제공하기 때문에 언어 역시 사용하는 데 제약이 덜하다. 하지만 게임업계는 정부의 규제와 시장의 현황에 따라 매출과 영업이익이 영향을 많이 받기 때문에 이곳에 종사하는 중소기업 개발자들은 대우가 열악한 경우가 많다.

 


6. 다양한 IT기술직군

 

개발자는 창업하거나 기업의 일원으로 성장하는데, 우리나라에는 과감하게 신기술을 적용하고 상용화할 수 있는 기업이 많지 않다. 현대의 IT 시장은 새로운 아이템이나 신기술을 개발하고 상용화하기에 너무 고도화됐다. 새로운 아이템 자체도 찾기 힘들뿐더러 새로운 서비스를 신기술로 무장하고 뛰어들기에는 위험 요소가 너무 많다.


각 산업 분야별로 가장 많이 사용되는 C++이나 C#을 통한 보안이나 장비 임베디드, 게임 서비스 쪽으로 진출을 준비하거나(자바 임베디드도 존재한다) 공공, 금융, 포털이나 개인화 서비스 쪽의 개발을 위해 자바, 자바스크립트, HTML을 공부하거나 디자인을 위해 CSS 포토샵 등을 공부하는 쪽이 일반화된 국내 개발자의 진로다.

 

IT 산업계에는 기술 분야에 대한 대략적인 성향이 존재한다. 자바 계열은 수요가 많은 반면 보수가 낮고 안정적이라고 많이들 이야기한다. 바로 앞에서 이야기했던 쏠림 현상 때문이다. C 계열은 특정 분야(성능을 중요시하는 분야나 데스크톱 응용프로그램, 임베디드)에서 많이 쓰이다 보니 수요가 많지 않고 개발자도 많지 않다. 또 난이도가 어렵고 보수는 천차만별이다. 그 외 비주얼 베이직, PHP, 델파이, 코볼, 어셈블리 등의 고전적인 언어들은 거의 명맥을 유지하기도 힘들어서 개발자들이 잘 선택하지 않는 분야다. 안드로이드나 아이폰 개발은 요즘 모바일 동향에 따라 수요가 보장되지만, 하이브리드 추세 때문에 자바 서버 개발자와 항상 함께 투입되므로 개발자에 대한 객관적 수요는 소수인 것이다.


문제점을 개발자가 수정하면 다시 게임의 처음부터 끝부분까지 테스트를 수도 없이 반복한다. 이렇게 테스트를 많이 해도 실제 운영에 들어가면 수만 명의 게이머가 버그를 제보해 오거나 서버가 다운되는 일이 발생한다.


웹은 게임과 다르게 백엔드 개발과 프론트화면 개발을 자바 웹 개발자가 모두 처리하는 것이 일반적이다. 이때 개발자는 기획 문서에 도출된 기능 명세를 모두 화면에 구현하고 그 과정에서 서버 측의 예외 사항이나 데이터베이스 쿼리 혹은 대외계(결제 시 외부의 카드사 시스템 연동과 같은 타 시스템 연동) 통신 연동 등을 통해 기획된 데이터를 처리한다. 하지만 이런 다양한 이슈를 각각의 개발자가 혼자 맡다 보면 여러 명으로 이루어진 개발 팀원들의 실력이 모두 제각각이라서 재사용성이 매우 낮고 품질도 떨어지는 소프트웨어가 개발될 확률이 높다. 이를 보완하기 위해 화면 개발을 맡지 않고 전체적인 시스템을 설계하고 공통화 컴포넌트 등 재사용성 높은 모듈을 제작하고 배급하는 개발자가 따라붙는데 이 직군이 소프트웨어 아키텍처다. 이들은 높은 기술력 프로젝트 내의 모든 문제점을 해결하는 실력을 갖추고 있어서 보통 PL을 맡는 경우가 많다.


QA(Quality Assurance)는 불과 몇 년 전까지도 경시 받는 단계였다. 테스트를 허술하게 진행하는 경우가 비일비재했는데 그 이유는 당연히 일정에 쫓기기 때문이었다. 하지만 이런 부실한 테스트는 수많은 버그를 발생시켰고 그로 인한 피해 사례들이 많이 생겨나면서 최근에는 전문 QA팀을 고용해 테스트를 수행하는 경우도 많아졌다.

케이스별로 수량, 금액, 포인트 조건이 달라질 때마다 그 기댓값을 모두 검증한다고 생각하면 머리가 지끈거린다. 이런 복잡하고 어려운 테스트는 개발자 개개인이 절대로 혼자 수행할 수 없다. 이런 테스트는 모든 화면별로 분석해야 하고 전문적으로 수행하는 시간도 오래 걸리기 때문에 통상 1달 이상 수행한다.


7. 내손으로 구현하는 상상속의 기술

 

웹 2.0의 시발점이 된 기술은 AJAX로 웹 서비스 초기부터 지원되었던 자바스크립트 기술이다.

화면을 표현하는 데 필요한 HTML을 가져온 이후 화면에서 일어나는 부가적인 서비스들은 모두 JSON, XML 데이터 타입으로 표현된 중요 데이터만 서버로부터 받아와 처리하게 됐다. 이때 사용자의 작업을 방해하지 않는 비동기 처리를 위해 자바스크립트의 AJAX 기술을 이용했다


실시간 인터랙션을 위한 유일한 대안, TCP-IP 소켓 통신


양쪽의 장점을 적절히 섞었기 때문에 하이브리드 앱 혹은 웹 앱이라 부른다. 이런 전략을 쓸 때 가장 큰 장점은 유지 비용이 최소화된다는 점이다. 오늘날은 웹 서비스에 비용을 지출하지 않는 산업군이 없다. 하이브리드 방식 덕분에 기존에 이미 가지고 있는 웹 서비스 인프라에 약간의 추가 비용만 얹으면 앱 서비스도 가능하다는 장점으로 인해 취하게 된 전략이다.


RESTful URL이라고부르는 도메인 정의방식이다. URL 경로를 정의할 때 http://www.xxx.com?test=111과 같은 방식이 일반적이지만, http://www.xxx.com/111/사용자11과 같은 방식의 URL로 디자인하는 것을 의미한다.


인터넷에 라즈베리 파이(Raspberry Pi)라고 검색하면 나오는 교육용 리눅스 컴퓨터 정도면 충분하다. 손바닥만 한 이 컴퓨터는 USB, 랜카드, 마이크로 SD 카드를 장착 가능하고 센서를 부착할 수 있는 기판이 달려 있다.

 

개발자라면 인공지능과 친해질 것

 

유전자 알고리즘은 별도의 시스템(기계학습)에서 비용, 시간, 인력 등을 지속적으로 가중 판단하여 비효율적인 지점을 찾아내고 그 비효율 영역을 자동으로 기존 시스템에 부가적인 판단 정보로 주입한다. 그러면 그 시스템은 최소한의 자원으로 최대한의 효율적인 판단을 스스로 적용하고 진화하게 된다. 이때 프로그래밍의 화두는 진화 요소를 스스로 자신의 시스템에 패치할 수 있는가이다.

 

빅데이터는 IoT의 센서 데이터가 대량 생산되고 대량 소비되는 미래 사회에 진정한 힘을 발휘할 것이다. 지금 빅데이터라고 부르는 분야는 딱히 새로울 것이 없다. 대량으로 쌓여 있는 과거의 데이터를 의미 있는 총합으로 둔갑시키는 다분히 영업적인 기능을 하고 있다.

 

공공과 금융 부분은 보수적으로 이미 검증된 기술만을 고집하는 경우가 많다고 한다.
자바기반의 스프링 프레임워크 기술이 지금까지도 대세인듯 하다.
회사의 IT부서들은 힘들것 같기도 하다.
눈높이는 모두 네이버나 카카오에 맞추어져있는데 그에 따른 인력과 예산지원은 하지 않으면서 사내 시스템이 카카오나 네이버처럼 움직이기를 바라니까... 그 간격을 어찌 매우리오..!

2023.07.02 - [독서 공부] - [책 요약] IT 개발자의 거의 모든 것(1편)

 

[책 요약] 개발자를 꿈꾸는/개발자로 일하는/개발자와 일하는 모든이를 위한 실용지침서, IT 개발

1. 개발자로 살아남기 회사에서 무엇보다 중요한 것이 PM의 역할이지만, 본인이 원해서 PM을 수행하는 개발자는 별로 없다. 그런 경우 프로젝트 수행 관리로 인한 스트레스 때문에 정작 자신이 좋

roadtoh.com

 

반응형