- 개발직군, 개발용어 내용 정리 [chapter 01 기본 미션]
1-1. 개발자란 누구인가요?
개발자가 하는 일은, 무에서 유를 창조하고 누군가 이해할 수 있도록 작성한다는 부분에서 작가가 하는 일과 매우 비슷하다. 다만, 개발은 컴퓨터가 이해할 수 있는 언어로, 작가는 사람이 이해할 수 있는 언어로 작성한다는 점이 다르다.
1-2. 개발직군은 무엇이 있나요?
작가도 종류에 따라 소설가, 시나리오 작가, 시인이 있듯이 개발자 또한 여러 분야로 직군이 나눠진다.
1-3. 확인 문제 풀기
정답 : ③
→ 스위프트는 ios 개발 언어이므로, 모바일 앱 개발자가 다루는 언어이다.
로봇 청소기의 기기 제어 소프트웨어 개발 : 임베디드 개발자
커뮤니티 웹사이트의 회원 정보를 데이터베이스에 저장하는 과정을 개발 : 백엔드 개발자
윈도우용 화면 캡처 프로그램을 개발 : 응용 프로그램 개발자
디자이너가 작업한 이미지대로 웹 화면을 개발 : 프론트엔드 개발자(웹 퍼블리셔)
아이폰용 사진 꾸미기 앱을 개발 : 모바일 앱 개발자
운전자의 조작 없이 움직이는 자율주행 자동차 개발 : AI 개발자
프론트엔드 개발자 → (웹 화면 개발) → 클라이언트 개발
백엔드 개발자 → (데이터베이스 관련 개발) → 서버 개발
모바일 개발자 → (모바일은 앱 개발) → 앱 개발
크로스 플랫폼으로 사용되는 언어 조합
→ 플러터x다트, 리액트 네이티브x자바스크립트, 자마린xC# 등
정답 : ⑤
→ 임베디드 개발자는 하드웨어를 제어하는 소프트웨어를 개발한다.
2-1. 코딩 : 프로그래밍 언어로 코드 작성하기
코딩은 소스 코드를 작성하는 작업이다. (키보드로 타이핑해서 코드를 입력 단순 작업을 의미)
→ 코더는 컴퓨터가 처리할 수 있는 명령어로 코드(부호)를 작성하는 사람을 지칭
소스 코드는 작업을 어떻게 수행할 것인지를 알려주는 설계문, 컴퓨터에 각종 지시를 내리는 명령문, 각 코드가 어떤 내용인지 설명해주는 주석 등의 정보로 이루어져 있다.
2-2. 프로그래밍 : 컴퓨터가 할 일 설계하기
프로그래밍은 컴퓨터에서 작동하는 프로그램을 설계하고 개발하는 전 과정을 의미. (코딩보다 더 넓은 개념)
프로그래머는 단순히 코드만 작성하는 코더와는 다르게, 개발할 프로그램에 어떤 기능을 추가하고, 어떤 방식으로 구현할지 미리 계획할 수 있어야 한다.
- 알고리즘이란?
아래와 같은 순서도를 컴퓨터가 어떤 순서로, 발생할 수 있는 상황은 무엇이고 그에 따라 어떤 행동을 할지, 어떤 과정을 몇 번 반복할지 등을 설계하는 것이다.
→ 이것을 프로그래밍 언어로 작성하는 과정이 프로그래밍이고, 그 결과물이 소스 코드이다.
2-3. 개발 : 소프트웨어를 만들고 운영하는 과정
개발은 코딩이나 프로그래밍보다 더 포괄적인 개념으로, 소프트웨어의 기술적 계획부터 제작, 사후 관리까지 모두 포함하는 용어이다.
소프트웨어가 만들어지는 과정을 정리하면 아래와 같다.
① 요구 사항 분석 : 기획팀에서 '○○한 기능을 수행하는 스마트폰 앱을 만들어달라'
② 시스템 명세 : 개발자가 기획팀의 요구 사항을 구체화
③ 구조 설계 : 어떻게 구현할지 전반적인 구상
④ 구현 : 언어, DB, 서버 결정, 구조 설계 및 제작
⑤ 테스트 : 오류 점검, 기능 테스트, 코드 수정
⑥ 유지보수 : 버그 해결, 기능 업데이트, 안정적인 운영 관리
2-4. 소프트웨어 vs 프로그램 vs 애플리케이션
- 소프트웨어와 프로그램
소프트웨어는 하드웨어와 반대로 보이지 않는 부분! (프로그램, 라이브러리, 데이터 등으로 이뤄짐)
→ 하드웨어 : 컴퓨터 본체와 CPU, 메모리 등 눈에 보이고 만져지는 부분
소프트웨어와 프로그램이라는 단어는 일반적으로 혼용해서 사용한다. 하지만, 정확히 파고들면 프로그램은 소프트웨어에 포함되는 개념이다. 이메일을 보내는 소프트웨어를 만든다고 가정을 해보면,
- 데이터 : 받는 사람의 이름과 주소, 내용 등의 정보
- 라이브러리 : 내용 쓰기, 서식 지정, 이미지 삽입 등의 기능
- 프로그램 : 받는 사람, 메일 내용을 입력하는 것부터 보내기 버튼을 누르기까지의 과정
그리고 이 모든 것을 아우르는 것이 소프트웨어이다.
- 애플리케이션
오늘날에는 스마트폰이 널리 사용되면서, 어플 또는 앱이라고도 부른다.
→ 애플리케이션은 윈도우 PC에서의 응용 프로그램이다.
- 시스템 프로그램 vs 응용 프로그램
시스템 프로그램 : 운영체제를 구성하는 소프트웨어. 사용자가 컴퓨터를 사용할 수 있는 환경 제공
응용 프로그램 : 각각의 목적에 따라 사용자가 활용하는 프로그램.
→ 우리가 사용하는 워드, 포토샵, 게임, 크롬 등은 모두 응용 프로그램. 다른 말로 애플리케이션이다.
2-5. 확인 문제 풀기
라이브러리는 소프트웨어 내에 있는 구성요소이며, 이메일을 보내는 과정에서 내용 쓰기, 서식 지정하기, 이미지 삽입하기, 파일 첨부하기 등과 같은 기능들을 묶어놓은 것이다.
프로그램은 운영체제를 구성하는 시스템 프로그램과 앱이라고도 불리는 응용 프로그램으로 나눌 수 있다.
코딩이란 부호를 나타내는 'code' 뒤에 'ing'를 붙여 '부호를 작성한다'라는 뜻을 가진 단어이다. 작가가 펜을 잡고 글을 쓰는 것처럼 키보드로 타이핑해서 코드를 입력하는 단순 작업을 의미한다.
소프트웨어 완성 이후, 버그 해결, 기능 업데이트, 안정적인 운영 관리 등의 유지보수라는 작업이 남아있다.
요구 사항 분석 → 시스템 명세 → 구조 설계 → 구현 → 테스트 → 유지 보수