안녕하세요. 폴프입니다. 먼저 코딩에 대한 포스팅은 제가 공부하면서 같이 올리는 내용이기 때문에 중간 중간 잘못된 개념이 있을 수 있습니다. 하지만 제가 이해한 내용을 쉽게 풀어쓰고 있으며, 같이 공부하시는 분들을 위한 자료임을 먼저 알려드립니다.
이 포스팅을 통해 공부하고자 하는 것 :
- 개발자는 어떤 일을 하는 사람일까?
- 어떤 종류의 개발자가 있을까?
- 개발 직군에 따라 어떤 공부를 해야 할까?
개발자는 어떤 일을 하는 사람일까?
저는 개발자가 무슨 직업인지도 모르고, 개발자가 어떤 일을 하는 것도 모릅니다. 그래서 공부를 시작했고 알고 싶어했습니다. 코딩에 대해 아무것도 모르시는 분들을 위해 같이 공부할 수 있도록 자료를 만드는 것이니 전문가분들은 굳이 읽지 않으셔도 되고 약간의 참고될 만한 자료나 격려를 주심으로써 도와주시면 감사하겠습니다.
먼저 개발자는 우리가 아는 언어로 글을 작성하는 사람이라고 생각하면 될 것 같습니다. 흔히 말하는 작가의 개념입니다. 작가도 드라마 작가, 영화작가, 소설작가 등 다양한 작가의 형태가 존재합니다. 개발자도 마찬가지입니다. 웹, 모바일, 게임, 보안 등 다양한 형태의 개발자가 존재합니다.
웹 개발자 : 웹 사이트를 개발하는 사람
출퇴근 시간에 우리가 보는 웹 사이트들, 이런 사이트들을 개발하는 사람을 웹 개발자라고 합니다. 웹 개발자 내에도 다양한 범주의 개발자들이 존재합니다.
웹 퍼블리셔 / UI 개발자
웹사이트에서 우리 눈에 보이는 것들을 디자인 하는 사람들입니다. 보통 UI 개발자라고 부른다고 합니다. UI 개발자가 사용하는 언어는 HTML/CSS/Javascript 가 있습니다. 웹사이트의 기능을 개발하기 보다 외적인 요소들에 대해 코딩을 함으로서 구현해 내는 개발자를 얘기합니다.
우리가 블로그에서 컨텐츠의 질보다 화려함과 눈에 보이는 요소를 잘 활용했을 때 느끼는 감각들을 바로 이런 개발자들이 이끌어 낸다고 생각하시면 됩니다.
프론트엔드 개발자
프론트엔드 개발자는 유저들이 웹사이트를 직접 보고 활용활 수 있도록 다양한 기능을 구현하는 프로그래밍을 합니다. 프론트엔드 개발자 역시 HTML/CSS를 공부하는 것이 중요하긴 하지만, 중점적으로 공부를 해야 하는 것은 Javascript라고 합니다.
프론트엔드 프로그래밍의 기본이 자바스크립트에서 이루어지기 때문이라고 합니다.
백엔드 개발자 / 서버개발자
백엔드 개발자는 웹사이트에서는 보이지 않는 기능에 대해 프로그래밍을 합니다. 데이터베이스에 저장되는 여러가지 정보의 입력과 출력, 데이터 분석 및 가공, 보안 요소 등이 바로 백엔드 개발자의 역할이라고 합니다.
백엔드 개발자가 사용하는 언어는 정말 다양합니다. Javascript, Python, PHP, JAVA 등을 주로 사용합니다. 각 언어마다 백엔드 프로그램을 만들 수 있도록 도와주는 Framework가 있다고 합니다. (저도 아직 Python만 기초적으로 해본 상태라 정확하게는 알지 못합니다.)
좋은 백엔드 개발자가 되기 위해서는 서버, 네트워크, 데이터베이스 등 다양한 지식을 가지고 있는 것이 좋다고 합니다.
풀스택 개발자
프론트엔드와 백엔드 관련 지식을 모두 갖추어 양쪽 모두 개발할 줄 아는 개발자, 즉 축구에서는 멀티 플레이어가 되겠습니다.
모바일 개발자
스마트폰이 대중화되면서 많은 개발자들이 모바일용 앱을 개발하고 있습니다. 그래서 앱 개발자라고도 이야기합니다. 운영체계에 따라 안드로이드와 iOS 개발자로 나뉘고 있지만, 요즘에는 보통 두 가지 OS에 적합한 앱을 동시에 개발해서 출시하고 있습니다.
iOS는 오브젝티브-C라는 언어를 사용하다가 스위프트라는 현대적인 언어가 출시되고 나서는 주로 스위프트를 사용한다고 합니다. 그래서 오브젝티브-C 는 거의 사용하지 않는다고 합니다. 하지만 제가 알아본 바로는 오브젝티브-C를 알고 스위프트를 사용하는 것이 좋다고 합니다.
안드로이드의 경우에는 자바를 많이 사용하긴 했으나, 2017년 이후부터는 코틀린이라는 간결한 언어로 트렌드가 변화했다고 합니다.
게임 개발자
게임 개발자는 복잡한 알고리즘부터 물리엔진 구현, 3D그래픽, 서버 관리 등 게임의 모든 구성 요소를 다룰 수 있어야 합니다. 생각만 해도 복잡합니다.
상대적으로 무거운 고수준 언어 대신 기계와 밀접하고 가벼운 C++을 많이 사용한다고 합니다. 게임 프로그래밍은 고난도 작업인 만큼 컴퓨터 공학, 수학, 물리, 그래픽, 컴퓨터 시스템 등에 대한 깊이 있는 공부도 필요하다고 합니다.
응용 소프트웨어 개발자
응용 소프트웨어 개발자는 통상 PC용 프로그램을 개발하는 사람을 의미합니다. 워드, 파워포인트, 일러스트레이터, 동영상 편집 프로그램 등이 응용 소프트웨어이며, 개발자에 의해 만들어진다고 합니다.
응용 소프트웨어 개발에 사용할 수 있는 언어는 C/JAVA/Python으로 개발하기도 하고 C++/C#/Swift 와 같은 언어도 회사와 운영체제에 따라 사용된다고 합니다.
주로 공부해야 할 내용은 프로그램이 작동할 운영체제, 컴퓨터 구조와 소프트웨어 공학에 관한 역량을 갖추는 것이 중요하다고 합니다.
인공지능 개발자 (feat. 내가 하고 싶은 것)
화학공학을 전공했던 저에게는 정말 신기하고 배워보고 싶었던 것 중에 하나가 바로 인공지능이였습니다. 인공지능으로 실험데이터를 뽑아내고, 가상실험을 통해 오류를 줄일 수 있었던 내용은 정말 앉아서 실험하고 논문보던 저에게는 획기적인 것이였습니다.
인공지능은 크게 머신러닝 개발과 딥러닝 개발로 구분이 된다고 합니다. 이것은 기계에 인간이 어디까지 알려주는가에 따라 구분을 달리 합니다.
인공지능이 전체 과정에 대해 일반적으로 알려주는 작업이라면, 머신러닝은 직접 과정을 겪어가면서 익히는 것이고, 딥러닝은 최적의 과정에 대해 스스로 학습하는 과정이라고 할 수 있습니다.
오늘은 개발자에 대한 용어에 대해 자세하게 알아봤습니다. 공부하고 이해되는 대로 자료를 올려드리고 같이 공부할 수 있도록 준비하겠습니다. 감사합니다.
By. POLF
'[POLF] : 코딩' 카테고리의 다른 글
스마트폰 애플리케이션 프로세서(AP)란? (1) | 2023.01.14 |
---|---|
통합개발환경, IDE(Integrated Development Environment) 개념 및 중요 요소 (2) | 2023.01.10 |
[용어부터 정리하자] 기계어, 자연어, 어셈블리어? (2) | 2023.01.09 |
주요 프로그래밍 언어별(Python, C, Java, C++) 특징과 장·단점 (1) | 2022.12.20 |
[용어부터 공부하자] 코딩, 프로그래밍, 알고리즘의 정의 (2) | 2022.12.15 |
댓글