본문 바로가기
카테고리 없음

코딩 입문하기 (4편) : 데이터 및 다양한 분야의 개발 기술

by Rachel 2024. 8. 16.
반응형

요즘은 소셜미디어에 유저가 직접 사진, 영상을 올릴 수 있기 때문에 기술 기업의 데이터가 더 많이 쌓이게 되었습니다. 이 데이터를 분석해서 맞춤형으로 광고를 보여주는 등 새로운 비즈니스 모델도 생기기 시작했습니다. 여기서 한 단계 나아가, 인공지능 만들기에 데이터를 응용하기도 합니다.

인공지능이란 컴퓨터에게 모든 규칙을 알려주는 것이 아니라, 전체 데이터를 주면 컴퓨터가 스스로 규칙을 찾아내도록 하는 방식을 만드는 것입니다. 물론 인공지능은 인간처럼 사고하거나 행동하지는 못합니다. 하지만 목표를 좁게 설정해서 인공지능을 만드는 시도가 많아졌습니다. 예시로 음악을 잘 듣는 AI, 광고를 추천하는 AI, 사람 목소리를 인식하는 AI, 바둑을 잘 두는 AI 등 목표를 명확하고 좁게 잡아서 그 분야만큼은 인간보다 뛰어난 퍼포먼스를 내는 인공지능이 많아지고 있습니다. 이번 글에서는 데이터 분야와 그 외 다양한 분야의 개발 기술을 살펴보고 나에게 맞는 언어와 기술을 선택하는 방법을 말씀드리겠습니다. 

 

코딩-입문하기-4편-데이터-및-다양한-분야의-개발-기술
코딩 입문하기 (4편) : 데이터 및 다양한 분야의 개발 기술

 

 

1.  데이터 개발 알아보기 

데이터를 다루는 직업이 정말 많아졌습니다. 대표적으로 데이터 엔지니어,  데이터 애널리스트, 데이터 사이언티스트, 머신러닝 리서처, 머신러닝 엔지니어가 있습니다. 데이터를 적극적으로 활용하려는 기업은 어마어마한 양의 데이터를 효과적으로 처리하려고 합니다. 그때 필요한 것이 바로 데이터 엔지니어링입니다. 데이터 엔지니어는 데이터베이스에 대한 이해가 필요하며, 빅데이터 처리에 특화된 기술을 익혀야 합니다. 데이터 처리량이 적은 회사는 데이터 엔지니어 대신 백엔드 엔지니어가 이 역할을 대신 하기도 합니다. 데이터 엔지니어가 데이터를 잘 관리하고 활용하도록 구축했다면, 다른 직무의 사람들은 이 데이터를 활용하면 됩니다.

데이터 애널리스트는 가공된 데이터를 활용해서 필요한 분석을 하는 사람입니다. 데이터베이스에서 SQL과 같은 언어를 통해 필요한 데이터를 추출하고 추출된 데이터는 파이썬 등의 언어를 활용해서 여러 각도에서 분석합니다. 이때 발견한 인사이트를 직원들이나 사업에 대한 의사결정을 하는 경영진에게 전달합니다. 더 나아가 통계학과 수학을 공부해서 머신러닝을 활용해보고 싶다면 데이터 사이언티스트가 그 역할을 수행합니다. 데이터 애널리스트가 조금 더 직관적인 분석을 하면, 데이터 사이언티스트는 머신러닝을 이용해서 미래 예측을 하거나 주어진 데이터에 대한 미지의 세계를 탐험하는 역할을 합니다. 

데이터 애널리스트, 데이터 사이언티스트, 머신러닝 엔지니어, 머신러닝 리서처 모두 파이썬 언어를 가장 많이 사용합니다. 데이터 사이언티스트는 이런 분석 결과를 서비스에 도입시킬 방법도 고민합니다. 제품에서 머신러닝을 어떻게 활용할 수 있을지 고민하고 실험하는 것도 포함됩니다. 그렇다면 실제 프로덕트에 데이터 분석 결과를 적용하는 사람은 백엔드 엔지니어가 머신러닝을 배워서 할 수도 있고, 머신러닝 엔지니어를 별도로 채용할 수도 있습니다. AI를 제대로 활용하는 회사에서는 머신러닝 리서처가 있습니다. 이 사람들은 AI 연구원이며 새로운 머신러닝 알고리즘을 찾아내거나 기존 머신러닝 알고리즘을 개선할 수 있는 방법을 고민하는 사람들입니다. 

 

2. 다양한 분야 개발 알아보기

가장 대표적으로 게임이 있습니다. 게임도 웹사이트에 접속해서 할 수 있는 게임, 모바일 게임, 컴퓨터 설치 게임, 콘솔 게임 등 형태가 다양합니다. 어떤 형태의 게임을 만드냐에 따라 필요한 기술도 달라집니다. 웹 게임에서 가장 대표적인 기술은 Unity와 Unreal입니다. Unreal 엔진은 완성도가 좋지만 그만큼 높은 숙련도의 기술을 필요로 합니다. 현재 게임 시장에서는 Unity를 가장 많이 사용합니다. Unity를 사용하면 게임에 원하는 물체를 드래그해서 넣을 수 있고, 이 물체가 어떤 동작을 하는지 C# 언어를 통해 코딩으로 구현할 수 있습니다. 

블록체인 분야도 유망합니다. 비트코인을 시작으로 이더리움, 솔라나, 카르다노 같은 기술이 등장했습니다. 가상화폐, NFT, DeFi 같이 탈중앙화된 형태의 시스템이 미래라고 주장하는 사람들이 많아지고 있습니다. 완전히 새롭고 빠르게 성장하는 분야를 좋아하는 사람이라면 블록체인 분야에서 개발 지식을 사용하는 걸 추천합니다. 블록체인 엔지니어는 블록체인 위에 올라가는 앱을 만드는 사람들입니다. 이런 앱을 DApp(Decentralized App)이라고 합니다. 일반적인 백엔드 개발자와 다르게 블록체인에 대한 이해가 필요하고, 어떤 블록체인인지에 따라 개발에 사용되는 기술도 달라집니다. 현재 이더리움이 가장 유명하고, 이더리움 DApp을 만들기 위해서는 솔리디티라는 언어를 공부해야 합니다.

요즘은 세탁기, 냉장고, 스마트 스피커, 로봇 청소기, 자동차 등 다양한 제품 분야에 코딩이 사용되고 있습니다. 이런 하드웨어를 동작하게 만드는 구조를 임베디드 시스템이라고 말합니다. 이런 기기에는 조금 더 작고 성능이 좋지 않은 컴퓨터가 들어갑니다. 따라서 자원을 효율적으로 관리할 수 있는 C 같은 프로그래밍 언어를 사용합니다. 최근에는 성능이 좋은 컴퓨터도 넣을 수 있게 되면서 파이썬 언어를 사용하는 경우도 있습니다. 

또한 우리 주변의 기기들이 인터넷을 사용하면서 데이터를 공유하는 기술도 있는데요. 바로 사물인터넷(IoT)라고 부릅니다. 사물인터넷을 구현하기 위해서는 각 기계에 대한 코딩을 해야 하기 때문에 여기에 임베디드 시스템이 필요합니다. 그 밖에도 가상 현실, 증강 현실 분야, 시스템 프로그래밍 등 무궁무진한 분야가 있습니다. 

 

3. 나에게 맞는 언어와 기술 선택하기 

우선 관심이 있는 분야로 공부를 시작하는 것이 공부를 지속하는 데 도움이 된다고 생각합니다. 하지만 관심 분야가 명확하지 않다면, 웹 개발이나 데이터 사이언스 분야 중 공부하는 걸 추천합니다. 웹 개발은 수요가 가장 많은 프로그래밍 분야입니다. 반면 데이터 사이언스는 이제 시작하는 분야로 볼 수 있습니다. 갈수록 회사들이 AI에 투자하고 있어서 데이터 애널리스트, 데이터 사이언티스트 같은 포지션을 채용하고 있습니다. 위에 언급한 두 분야는 범용적으로 활용할 수 있다는 장점이 있습니다.

그렇다면 웹 개발과 데이터 사이언스 분야 중에서는 무엇을 고르면 좋을까요? 유저들이 사용하는 서비스를 만드는 일에 관심이 있다면 웹 개발을 추천합니다. 어떤 서비스를 만들기 보다는 다양한 각도에서 데이터를 살펴보고 수학적 기법을 활용해서 인사이트를 도출하는 걸 좋아하는 사람에겐 데이터 사이언스를 추천합니다. 웹 개발 안에서도 시각적인 것에 관심이 많고, 눈에 보이는 결과가 있어야 동기부여가 잘 되는 편이라면 프론트엔드를 선택하는 편을 추천합니다. 반면, 데이터를 다루거나 복잡한 시스템을 안정적으로 설계하는 것을 좋아한다면 백엔드가 잘 맞을 것입니다.

프론트엔드 분야라면 HTML, CSS, JS를 먼저 배운 후 React를 배우는 걸 추천합니다. 생태계가 가장 크면서도 안정적입니다. 백엔드 분야라면 선택지가 많은데요. 크게 언어, 프레임워크, 데이터베이스로 나눠서 선택할 수 있습니다. 먼저 안정적인 구조에서 빠르게 서비스를 만들고 싶다면 파이썬, 장고, Sql을 추천합니다. 만약 프론트엔드와 백엔드를 제대로 공부하고 싶은 사람이라면 Nodejs와 Express를 공부하는 걸 추천합니다. Nodejs는 JS 언어로 백엔드 코드를 작성할 수 있는 기술입니다. 이 기술을 활용한다면 프론트엔드와 백엔드를 JS로 통일할 수 있어서 생산성이 좋아집니다.

데이터베이스로는 SQL이나 noSQL인 mongoDB를 추천합니다. 백엔드 개발자에게 SQL은 필수이고 noSQL은 선택인 것으로 보입니다. 가볍게 프로그래밍을 시작한다면 noSQL이 좋지만, 결국 제대로 프로그래밍을 하고자 한다면 SQL은 필수입니다. 한국 시장에서는 백엔드 개발에 Java와 Spring을 쓰는 분들이 많습니다. 기술에 따라 장점과 단점이 명확하기 때문에 니즈에 맞게 선택하면 됩니다. 처음 프로그래밍을 배우는 입장에서는 Python, Django, JS, Node.js 중에 선택하는 걸 추천합니다. 빠르게, 재밌게, 미래에도 수요가 있는 기술을 선택하시면 됩니다.

데이터 분야라면 Python 언어를 배우는 걸 추천합니다, 그 다음에는 Numpy, Pandas, Seaborn, Pytorch, Tensorflow 같은 도구를 배우면 좋습니다. 그다음에 SQL에 대한 이해도 필요합니다. 

 

 

※ 해당 글은 코드잇(codeit)의 [프로그래밍 오버뷰] 강의 내용에서 참고하여 작성하였습니다. 

반응형