brunch

You can make anything
by writing

C.S.Lewis

by 생계형 개발자 Apr 20. 2019

언제까지 안드로이드 앱 개발자로 일할 수 있을까?

플랫폼 변화에 대처하는 개발자의 자세

개발자 커뮤니티 사이트에는 앱 개발자로 언제까지 먹고살 수 있을지 걱정을 토로하는 글이 있다. 스마트폰의 출시와 함께 자연스레 이쪽 업계에서 일을 하게 돼서 현재 만족할만한 수준의 수입을 얻고 있는데 어느 순간 획기적인 기술의 발달로 사람들이 더 이상 안드로이드 또는 iOS를 사용하지 않는다면 직장을 잃게 되지 않을까 하는 것이 앱 개발자들의 고민이다. 신기술이 기존 기술을 빠르게 대체하는 IT 산업의 특성상 이런 걱정은 합리적이며 개발자로 먹고살아가는 데 있어서 반드시 필요한 마인드라고 생각한다. 변화에 유동적이지 못한다면 굶어 죽는 것은 순식간의 일이니까. 하지만 그렇다고 걱정만 하고 아무것도 안 할 수는 없는 노릇이다.


IT 회사에서 앱 개발자의 역할

개발자는 서비스를 사용자에게 전달하는 역할을 한다

무작정 걱정만 하기보다는 먼저 현재 IT 회사에서 왜 앱 개발자를 필요로 하는지를 생각해보자. 일부 회사를 제외하면 현재 IT 회사들은 대부분 위의 그림과 같은 형태로 운영되고 있다. 개발에 앞서 CEO와 기획자들은 현재 시장에서 돈을 벌 수 있을 만한 아이템을 궁리한다. 우아한 형제는 배달, 토스는 금융, 팀 블라인드의 익명 게시판 서비스 같은 것들이 회사에서 저마다 돈을 벌기 위해 내놓은 아이템이다. 수많은 수정과 회의를 거친 비즈니스 아이템은 피피티 문서에서 사용자에게 전달될 때 수익을 내게 되는데 여기서 서비스와 사용자를 연결시켜주는 작업이 개발자가 하는 일이다. 이 업무는 크게 서비스를 지속적으로 업데이트할 수 있는 환경을 구축하는 것과 데스크톱, TV, 스마트폰과 같은 사용자의 디바이스에서 서비스에 접근할 수 있는 통로를 만드는 일로 나뉜다. 전자의 경우에는 서버, 인공지능, 데이터베이스 개발자가 담당하고 후자의 경우에는 앱 개발자가 담당한다. 우리가 주로 말하는 안드로이드 앱 개발자는 사람들이 가장 많이 사용하는 안드로이드 스마트폰과 서비스 사이의 접점을 만드는 개발자다.


이런 구조 상에서 앱 개발자가 필요 없어지는 경우는 회사에서 더 이상 돈을 벌 수 있는 아이템을 내놓지 않거나, 스마트폰을 대체하는 디바이스가 나타나거나, 안드로이드를 뛰어넘은 플랫폼이 나타나는 경우 정도로 상상해볼 수 있다. 첫 번째의 경우는 심각한 경제위기가 온 상황이며 IT 산업의 근간이 흔들리는 경우니 논외로 하고 두 번째 경우는 상상하기가 쉽지 않으니 가장 그럴듯해 보이는 새로운 플랫폼이 나타나는 경우에 대해서만 생각해보자. 그리고 이번에는 입장을 바꿔 앱 개발자가 아니라 내 일자리를 위협할 수도 있는 새로운 플랫폼을 만드는 사람이 되었다고 해보자. 나는 어떤 플랫폼을 만들어야 할까?


어떤 플랫폼이 대체하게 될까


Tizen과 Tensorflow의 사례는 살아남는 플랫폼의 조건을 보여주는 것 같다.

소위 성공한 플랫폼이라고 불리는 스마트폰의 안드로이드, 데스크톱의 윈도우, 게임 콘솔의 닌텐도 모두 콘텐츠가 풍부하다는 공통점이 있다. 이런 콘텐츠 생태계가 만들어지기 위해선 플랫폼 자체에서 여러 가지 기능을 원활하게 지원하는 것도 중요하지만 무엇보다 새로운 플랫폼에 기존 콘텐츠를 옮길 수 있는 개발자가 있어야 한다. 가능한 많은 개발자를 유입하기 위해서는 기존의 개발자와의 진입장벽이 낮아야 하는데 이를 위해 플랫폼 개발자들은 기존 개발자가 친숙함을 느낄 수 있도록 개발 언어 선택에 신중을 다하고 개발 중 참고하게 될 API 가이드 문서도 꼼꼼히 작성하며 경우에 따라선 스택 오버플로우에 올라온 질문에 직접 답변을 달기도 한다. 성능상의 이점만 보고 일반 개발자들에게 생소하고 사용하기 어려운 EFL을 도입해 실패를 맛본 Tizen과 한 발 늦었지만 꼼꼼한 가이드 문서 작성으로 성공한 Tensorflow를 보면 어떤 플랫폼이 살아남을지 짐작할 수 있다. 이와 같은 성공과 실패 사례를 비추어 보면 확실하진 않지만 스마트폰 플랫폼에 큰 변화가 있더라도 기존 앱 개발자가 어느 정도 쉽게 적응할 수 있는 플랫폼이 될 것 같다. 그렇지 않으면 플랫폼이 살아남을 수 없으니까. 


플랫폼이 바뀌어도 살아남는 방법


그리고 같은 앱 개발자라도 모두 하는 일이 다르다. 동영상 스트리밍 서비스의 클라이언트 앱을 개발하는 사람도 있고 헬스케어 앱을 만드는 사람들도 있다. 앱 개발자마다 가지고 있는 코어 기술이 달라서 생기는 차이인데 여기서 말하는 코어 기술은 경제적인 수익을 낼 수 있는 비즈니스 아이템을 구현하는 기술이며 코드상에서는 안드로이드 라이브러리를 걷어내고 나면 남는 알고리즘 또는 소프트웨어의 동작 원리 정도로 보면 될 것 같다. 동영상 앱이라면 디코딩하는 알고리즘과 FFmpeg과 같은 오픈소스 라이브러리를 활용하는 기술이 될 것이고 헬스케어 앱은 디바이스의 센서 값을 이용해 걷는 횟수를 카운팅 할 수 있는 알고리즘으로 볼 수 있다. 간단한 가계부 애플리케이션의 장부관리 알고리즘도 코어 기술에 해당한다.


이런 코어 기술은 플랫폼에 완전하진 않지만 대체로 독립적이다. 앞서 예로든 FFmpeg은 안드로이드뿐만 아니라 이미 곰플레이어 같은 PC용 소프트웨어에서도 사용되고 있었고 걷는 횟수를 카운팅 하는 알고리즘은 웨어러블 기기에서도 거의 비슷한 원리로 사용되고 있다. 산업계의 수요가 사라지지 않는 이상 플랫폼이 바뀌더라도 여전히 필요로 하지 않을까 싶다. 오히려 플랫폼 변화를 두려워하기보단 이렇게 물어봐야 하지 않을까? '내가 갖고 있는 코어 기술이 누구나 쉽게 따라 할 수 있는 것인가?', '내가 갖고 있는 코어 기술이 가까운 미래에도 계속 쓰일까?'


본문의 '코어 기술'은 공식적인 용어는 아니고 제가 임의로 만든 단어입니다.

나무위키 FFmpeg 문서를 참고해서 작성했습니다


매거진의 이전글 인문학이 개발하는데 도움이 될까?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari