✎ STUDY/#4 세상의 모든 지식

[BOOK]혼자 공부하는 얄팍한 코딩지식_Chapter 01-1

조반짝 2023. 5. 27. 16:43
728x90
반응형
혼자 공부하는 얄팍한 코딩지식_고현민 지음

CHAPTER 01 개발자 이해하기: 개발과 개발자 용어 알기

01-1 개발자는 대체 뭐하는 사람인가요?

개발자가 하는 일은 작가가 하는 일과 비슷하다. 무에서 유를 창조하고 누군가를 이해할 수 있도록 작성하는 것도 비슷하다.
차이점이 있다면 작가는 사람이 이해할 수 있는 언어로 작성하지만, 개발은 컴퓨터가 이해할 수 있는 언어로 작성한다.
 
작가는 종류에 따라 여러종류의 작가가 있는 것처럼, 개발자도 무엇을 개발하느냐에 따라 여러분야의 직군으로 나뉜다.
개발자는 종류마다 사용하는 프로그래밍 언어도 다르고 쌓아야하는 지식도 다르다.
 


웹 개발자

웹사이트를 만드는 개발자
 

웹 개발자는 윌가 PC나 스마트폰에서 웹서핑을 하며 방문하는 각종 웹사이트는 웹 개발자가 만든다.
일반 프로그램이나 모바일 앱으로 알고 사용하는 소프트웨어 중에서도 내부적으로 웹사이트를 바탕으로 만들어진 프로그램이 많다. 
 
웹사이트는 눈에 보이는 부분과 보이지 않는 부분으로 구성되어 있고, 각각을 담당하는 개발자들이 협업해서 만들어진다.
웹 개발자들의 범주에 속하는 개발자는 웹퍼블리셔 / 프론트엔드 개발자 / 백엔드 개발자가 있다.
 

출처: 혼자 공부하는 얄팍한 코딩 지식

 

  웹 퍼블리셔 / UI 개발자  

웹 퍼블리셔는 웹사이트에서 보이는 부분을 담당하는 개발자이다.
해외에서는 UI개발자라고 부른다. 웹 퍼블리셔가 주로 사용하는 언어는 HTML과 CSS이며, 자바스크립트를 사용하기도 한다.
웹사이트의 외적 요소를 코드로 구현하는 역할을 한다.
타 직군에 비해 진입 장벽이 낮고 디자인과 밀접하기 때문에 웹디자이너를 비롯한 비전공자들이 코딩을 시작하는 첫단계로 도전하는
분야이기도 하다.
 

  프론트 엔드 개발자  

프론트엔드 개발자는 웹퍼블리셔 역할은 물론 자바스크립트로 프로그래밍 요소를 개발한다.
사용자에게 보여줄 웹사이트 화면을 만들고 사용자의 클릭이나 드래그와 같은 동작에 따라 웹사이트의 다양한 기능이 실행되도록 프로그래밍한다. 이미지 슬라이드나 웹 채팅 창, 온라인 디자인 도구와 같은 다양한 기능이 프론트 엔드 개발자의 손에서 만들어진다.
다른 말로 클라이언트 개발이라고도 한다.
프론트 엔드 개발자가 집중적으로 공부해야할 것은 자바스크립트이다.
자바스크립트를 보완한 언어인 타입스크립트도 많이 사용하며, 이들에 대한 지식을 기본적으로 갖춘 뒤 리액트 같은 라이브러리를 공부하면 더 좋다.
 

라이브러리란? 하나 이상의 프로그램에서 공통으로 사용할 수 있느느 함수들을 모듈로 만들어 놓은 집합
라이브러리를 사용하면 프로그램을 만들 때 기존에 만들어진 기능을 활용하여 프로그램 제작 시간과 노력을 줄일 수 있다.

 

  백엔드 개발자  

백엔드 개발자는 웹사이트에서 눈에 보이지 않는 요소를 개발한다.
프론트엔드 개발자가 만든 화면에 들어갈 데이터를 주고받는 서버의 기능을 백엔드 개발자가 구현한다.
그렇기 때문에 이들은 서버개발자라고도 부른다. 데이터베이스에 저장되는 각종 정보의 입출력, 데이터 분석과 가공, 로그인을 비롯한 보안 요소등이 백엔드 개발자를 통해 이뤄진다. 
 
백엔드가 사용하는 프로그래밍 언어는 대표적으로 자바스크립트, 파이썬, PHP, 자바 등을 주로 사용한다.
각 언어마다 백엔드 프로그램을 만들 수 있도록 도와주는 제작 키트인 프레임 워크가 있다. 
한국에서는 주로 자바언어스프링 프레임 워크 조합을 많이 사용한다. 
 

  풀스택 개발자  

프론트엔드와 백엔드 관련 지식을 고루 갖추어 양쪽 모두 개발할 줄 아는 개발자를 풀스택 개발자라고 한다.
소수인원이 제품 전반을 만드는 소기업이나 스타트업에서 필요로하는 개발자이다.
풀스택 개발자는 혼자서 웹 서비스 전체를 개발할 수 있는 사람을 뜻하며 웹 개발에 대한 폭넓은 역량과 경험을 쌓고 깊이 있는 지식을 갖추기 위해 꾸준히 공부가 필요하다.
 

모바일 개발자

손 안의 앱을 만드는 개발자
 

모바일 개발자는 스마트폰에서 작동하는 애플리케이션을 개발하며, 앱 개발자라고도 한다.
크게 안드로이드 개발자와 iOS 개발자로 나뉘고 회사나 서비스에 따라 혼자 이둘을 모두 담당하기도 한다.
 

  안드로이드 개발자  

안드로이드 개발자는 갤럭시를 비롯한 안드로이드 기반의 모바일 앱을 개발한다. 예전에는 자바를 많이 사용했으나, 간결한 언어인 코틀린도를 많이 사용한다. 폭 넓은 개발을 위해서는 양 쪽 모두 익혀두는 것이 유리하다.
 

  iOS 개발자  

iOS개발자는 아이폰과 아이패드용 모바일 앱을 개발한다.
예전에 iOS개발은 오브젝티브-C라는 언어를 사용했지만, 현대적인 언어인 스위프트가 출시되고 나서부터는 스위프트를 주로 사용한다.
 
안드로이드와 iOS 양 쪽 모두 하나의 소스 코드로 작동하는 앱을 만들 수 있는 크로스 플랫폼을 사용하기도 한다.
크로스 플랫폼과 각각에 사용되는 언어의 조합으로 플러터X다트, 리액트 네이티브X자바스크립트, 자마린XC# 등이 있다.
 

게임 개발자

게임을 만드는 개발자

 
게임개발자는 게임의 전체적인 구조를 설계해서 게임이라는 하나의 결과물을 만드는 직군이다.
게임 진행을 위한 복잡한 알고리즘부터 물리 엔진 구현, 3D 그래픽 렌더링, 수많은 접속자가 몰리는 서버관리 등 게임의 구성요소를 다룰수 있어야한다. 그렇기 때문에 게임을 개발하기 위해서는 프로그래밍과 컴퓨터, 수학 등 여러분야에 걸친 깊은 지식과 높은 숙련도를 요구한다.
 
고사양 게임 프로그래밍은 기기의 성능을 최대한으로 끌어내는 것이 중요하기 때문에 상대적으로 무거운 고수준 언어 대신 기계와 밀접하고 가벼운 C++을 많이 사용한다. 유니티를 사용하는 게임에서는 C#을 사용하고, 웹 게임에서는 자바스크립트를 활용하기도 한다.
서버도 게임의 구성 요소이므로, 백엔드 개발자들이 사용하는 언어와 프레임워크도 게임에 활용된다. 
 

응용 소프트웨어 개발자

컴퓨터 프로그램을 만드는 개발자
 

웹과 모바일이 부상하기 전에 일반적으로 개발자는 응용소프트웨어 개발자를 가르켰다. 
우리가 흔히 사용하는 워드, 포토샵, 압축 프로그램, 동영상 재생 프로그램이 응용 소프트웨어이다.
 
윈도우용 프로그램 개발에는 C++ , C#을 주로 사용하고 맥용 프로그램 개발에는 스위프트를 사용한다.
프로그램이 작동할 운영체제, 컴퓨터 구조와 소프트웨어 공학에 대한 지식도 응용 소프트웨어 개발자가 갖춰야 할 중요한 역략이다.
 
 

임베디드 개발자

하드웨어를 제어하는 개발자
 

임베디드 개발자는 정해진 목적에 맞게 설계된 하드웨어의 작동을 프로그래밍하는 직군이다.
임베디드 개발자가 다루는 임베디드 시스템은 기계 또는 기타 제어가 필요한 시스템을 제어하는 컴퓨터 시스템이다.
개인용 컴퓨터처럼 범용적인 목적을 수행하는 일반 소프트웨어와느 달리 전자 제품 같은 기기 내부에 내장되어 정해진 목적에 맞는 기능을 수행한다. 
 
그래서 임베디드 시스템 개발자가 하는 일도 크게 두가지로 나뉜다.
하나는 하드웨어 자체를 개발하는 일이며 또 하나는 이를 작동시킬 소프트웨어를 개발하는 일이다.
대체로 두가지 일을 모두 하는 사람을 임베디드 개발자, 소프트웨어만 개발하는 사람을 임베디드 소프트웨어 개발자라고 부른다.
 
실행속도가 빠르고 가벼운 C언어를 주로 사용하고, 기계를 세부적으로 다룰 경우에는 C++이나 어셈블리어를 사용한다.
컴퓨터 하드웨어와 운영체제 , 네트워크와 같은 컴퓨터 공학 지식이 필요하며, 분야에 따라 보드와 회로를 다루는 능력도 요구된다.
IoT기기의 운영체제로 리눅스를 많이 사용하므로 리눅스 커널을 깊이 있게 공부해 두는 것이 좋다.
 

정보 보안 전문가

빈틈없는 정보 파수꾼
 

사이버 보안, 정보 기술 보안이라고도 하며, 데이터 도난이나 손상을 차단하고 컴퓨터 시스템을 보호한다.
정보 보안 전문가가 되려면 프로그래밍, 네트워크, 컴퓨터 구조, 운영체제 등 컴퓨터 공학 전반에 걸친 지식이 필요하다.

AI 개발자

기계를 가르치는 개발자
 

인간의 사고와 학습같은 지적능력을 컴퓨터를 통해 구현하는 기술자이다.
인공지능 개발은 크게 머신러닝 개발과 딥러닝 개발로 구분할 수 있다.
인공 지능을 포함해 머신러닝과 딥러닝은 기계에 사람이 어디까지 알려 주는가에 따라 구분을 달리한다.
 

 

728x90
반응형