코딩학원 안가고 공부하자 ‘비전공자를 위한 이해할 수 있는 IT 지식’
오늘은 코딩학원에 가지 않고 코딩 지식에 대해 가볍게 알 수 있는 도서, 비전공자를 위한 이해할 수 있는 IT 지식을 리뷰합니다.
| 리뷰 평점: 4.0 ★★★★☆ |
| 난이도: 상 중 하 | 이해도: 상 중 하 | 몰입도: 상 중 하 |
| 한줄평: IT지식이 부족해서 현업에서 답답함을 느끼는 분에게 추천드립니다. 개발을 배워야 하는지 고민하는 비전공자에게도 추천드립니다. 추천팁: 제일 마지막 장인 ’10장 정리’ 를 읽고 모르는 부분은 앞 장을 살펴보자! 좋은점: 개발자와 관계자들 간의 대화형식을 빌어와서 해설을 해주고, 내용이해 자가 체크를 위해 그 대화에 대해 여러 장에 걸쳐 다루어 줍니다. |
IT도서 리뷰 첫번째 글입니다. 이 책 리뷰를 통해 여러분과 함께 IT지식의 키가 커갈 상상에 배움의 즐거움이 배가 됩니다. ^^ 자 그럼 한번 이 책에 대해 살펴볼까요?
저자는 경영학과 출신의 기획자로, IT 관련 창업을 하면서 개발(프로그래밍)을 공부하게 된 계기를 말하면서 책의 서문을 열고 있습니다. 현장에서 일하면 느낀 ‘IT 필수 지식’을 이 책에 담고 있습니다. 비전공자가 알아야 할 수준으로 압축해서 아래 그림과 같이 깊(gipp.co.kr)이라는 홈페이지를 통해 유료로 오픈강의도 진행하고 있습니다.
테리의 생각과 마찬가지로, 스마트폰부터 시작해서 식당의 키오스크까지 우리 삶의 곳곳을 IT가 점령하고 그 속도가 갈수록 빨라지고 있기에 현대에서 IT에 대한 이해가 필수라고 말합니다. 물론 모두가 개발자가 될 필요는 없습니다.
이 책은 아래와 같이 ‘1장 오리엔테이션’ 시작으로 개발언어/운영체제, 네트워크/클라이언트/서버, API/JSON, App, Web, DB/이미지 처리, Framework/Library, 협업/소스관리, 디자인을 망라하고 있습니다. 2020년 7월에 발행된 240쪽 분량의 도서입니다. 아래의 리뷰 내용이 전체가 아니고 더욱 유익한 지식이 많습니다. 필요하신 분은 전자책 등 도서를 구입하여 완독하시기를 추천드립니다.
1장 오리엔테이션(진짜 코딩학원 안가도 되요?)
저자는 자신이 개발의 세상으로 발을 들여놓게 된 계기를 말해주고 있습니다. 자바 언어를 시작으로 공부하다 보니 ‘적성’에 맞았고 합니다. 이후 웹에 대한 궁금증으로 HTML, CSS, PHP, JSP, JS, Ajax를 연달아 공부하게 됩니다. 배움의 장이 확대되어 C언어, 데이터베이스, 서버, iOS까지 배우게 됩니다.
IT 산업에서 일하는 기획자에게 가장 먼저 필요한 건 ‘파이썬’이나 ‘자바’가 아닙니다. 바로 ‘커뮤니케이션’입니다. 모든 구성원과 원활하게 대화할 수 있어야 합니다. ..중략.. 하지만 개발 관련 지식이 없으면 개발자와 대화할 수 없습니다.
출처: 비전공자를 위한 이해할 수 있는 IT 지식에서
IT 기획자로 저자는 프로그래밍 언어가 아닌 ‘커뮤니케이션을 위한 IT 지식’을 공부해야 함을 말합니다. 마케터부터 디자이너 창업자까지 모든 구성원에게 해당되는 이야기라고 말하면서. 저자는 책에서 앞으로 다룰 커뮤니케이션을 위한 주제들을 다음과 같이 그림으로 설명합니다.

2장 프로그래밍 언어 & 운영체제(OS)
한국인과 아랍인 사이에 통역이 필요하듯 인간과 컴퓨터 사이에는 컴파일러가 그 역할을 합니다. 개발자가 프로그래밍 언어로 작성한 문서(소스코드)를 컴파일러에게 전달하면 컴퓨터가 이해할 수 있는 0과 1로 만들어서 개발자-컴퓨터 사이에 커뮤니케이션이 이루어집니다.
그러면 이쯤에서 궁금하지 않으신가요? 그럼, 개발자는 프로그래밍 언어를 이용해서 어디서 문서(코딩) 작업을 할까? 바로 IDE(Integrated Development Environment, 통합 개발 환경)라는 프로그램에서 합니다. 대표적으로 Android Studio, VS code, Eclipse, Pycharm 등이 있습니다.

인종이 다양하고 그에 따라 언어도 다르고 생각과 문화도 다릅니다. 프로그래밍 언어가 다양해진 이유는 사람들의 생각이 모두 다르기 때문입니다. 굳이 그 많은 언어들을 구분한다면, 컴퓨터 친화적인 저수준 언어와 인간 친화적인 고수준 언어로 나뉩니다.

프로그래밍 언어는 혼자서 놀 수 있는 존재가 아니라서 컴퓨터 부품에 대해도 어느 정도의 지식이 있어야 합니다. 대표적으로 중앙처리장치(CPU), 메모리(RAM), 보조기억장치(HDD, SSD), 메인보드. 컴퓨터의 머리 역할을 하는 CPU, 창고 역할을 하는 보조기억장치, 이 둘 사이에서 속도가 상대적으로 낮은 보조기억장치를 대신해 높은 속도의 CPU의 작업을 도와주는 메모리, 이를 통합해서 부품에 전원공급, 통신 등을 담당하는 메인보드 등이 컴퓨터를 구성하게 됩니다.
사실 사무실에서 집에서 컴퓨터를 사용하는 일반인들에게 위와 같은 내용들은 어딘가 낯설지 않나요? 왜냐면, 그냥 우리는 엑셀을 사용하고 스마트폰의 앱을 사용하기만 하면 되니까요. 우리 귀에 익숙한 윈도우, MacOS, iOS, Android와 같은 운영체제가 이 모든 일을 수면 아래에서 대신 해줍니다. 운영체제(OS, Operating System)에 따라 사용하게 되는 프로그래밍 언어도 다 다르게 됩니다.
이 중에서 자바라는 언어가 나타나서 OS에 맞는 언어만을 사용해야 하는 장벽을 허물게 됩니다. JVA(Java Virtual Machine)을 설치하면 자바 언어만으로 모든 운영체제에서 프로그래밍을 할 수 있게 됩니다.
3장 네트워크, 클라이언트, 서버
90년대 중반부터 해서 선풍적인 인기를 끈 게임이 나타나게 됩니다. 바로 블리자드의 스타크래프트입니다. (테리도 그 게임의 수혜자?이면서 피해자였던 기억이 납니다.) 컴퓨터가 네트워크로 연결되면서 각자의 집에서 ‘베틀넷 방’에 접속해서 많은 일들을 할 수 있게 되다보니 대중적으로 성공을 거두게 됩니다.
네트워크는 다음과 같이 구분할 수 있습니다. 학교 컴퓨터실, 아파트 등 작은 지역을 엮어 LAN(Local Area Network)이라고 표현합니다. 도시 정도의 규모는 MAN(Metropolitan ~~), 도시 간/나라 간의 경우 WAN(Wide ~~)라고 합니다. PC통신부터 해서 ADSL, VDSL, 광케이블통신 등 초고속 인터넷망이 전세계를 휩쓸었고, 이후 3,4,5G 무선통신을 통해서 외부에서 걸으면서 인터넷을 할 수 있는 세상이 되었습니다.
우리가 카카오 앱을 다운받아서 설치하고 카톡을 하고 사진을 주고 받는 동안에 우리 눈에는 보이지 않지만 수많은 일들이 일어납니다. 친구의 사진 요청 > 가장 가까운 통신 기지국 > 내 근처 기지국까지 신호 전달 > 나는 카톡 메세지 확인 > 역순으로 동일한 프로세스 진행.
이런 프로세스 가운데 IP주소가 등장합니다. 우리가 택배를 받을 때 주소가 필요한 것처럼 메세지가 오가는데도 필요합니다. IP주소는 214.123.142.12와 같이 12자리가 마침표(,)로 구분된 형태로 구성됩니다. (최대 232개, 약 43억 개)
0~255의 숫자로만 사용하다보니 근래와 같이 컴퓨터가 폭발적으로 늘어난 상태에서 그 수요 감당 불가로 IPv6(숫자구분이 4개에서 6개로)를 함께 사용하고 있습니다.(2128 개, 약 3.4*1038 개로 거의 무한대)
IP주소는 숫자로 이루어져 있습니다. ..중략.. 그런데 네이버 주소가 숫자로 되어 있다면, 우린 그 숫자를 모두 외워야 합니다. ..중략.. 그래서 사람들은 숫자 대신 ‘도메인 네임‘이라는 것을 만들었습니다. ‘www.naver.com’ 같은 문자입니다.
출처: 비전공자를 위한 이해할 수 있는 IT 지식에서
CPU 등 컴퓨터가 처리가능한 범위 이상의 요청이 오면 작동이상을 일으킵니다. 365일 24시간 동안 문제가 없기 때문에 인터넷에서 각종 일들이 가능합니다. 단순하게 네트워크가 양단으로 구성되었다고 합시다. 한쪽의 컴퓨터(혹은 스마트폰)는 Client, 다른 편은 Server라고 부릅니다. 클라이언트측을 프론트 엔드(고객이 집적 만질 수 있는 것), 서버측을 백 엔드(고객이 볼 수 없는 곳)라고 합니다. 실무적으로는 클라/프론트, 백이라고도 합니다.
서버를 생각하면서 리눅스는 빠질 수 없는 주제입니다. 리눅스는 OS인데 그 위에 ‘서버 프로그램’이 작동합니다. 리눅스는 토발스에 의해 개발되어 무료로 배포되었습니다. 그러다 보니 서버에서 리눅스가 많이 사용되었고, 시간이 지나면서 유료버전을 리눅스 기반 OS가 나오기도 했습니다.
리눅스로 서버를 운영하다가 문제가 생기면 바로 AS가 필요한 회사는 ‘레드햇’과 같은 유료 버전을 사용합니다. 리눅스의 유명한 버전 중 하나로 우분투(Ubuntu)가 있는데 윈도우와 같이 사용하기 쉽게 되어 있습니다. 또 다른 유명 개량 버전이 아래 그림과 같은 안드로이드입니다. 구글이 모바일 운영체제 형태로 발전시킨 운영체제입니다.

서버는 24시간 365일 가동되어야 하기 때문에 전력 소모가 많습니다. 정전 대비 등 개인이 직접 운영하기에는 애로점이 많은데 이를 대신해주는 곳을 호스팅 업체라고 부릅니다.(국내: Cafe24, 가비아 등 해외: 아마존 AWS, Chemicloud 등)
4장 API와 JSON
클라이언트와 서버의 요청(Request)-응답(Response) 간에 체계적인 무언가가 있어야 제대로 된 커뮤케이션이 이루어집니다. 그 체계가 바로 API(Application Programming Interface)입니다. 클라이언트와 서버 서로 간에 정해진 약속에 따라 로그인, 회원 가입 등의 기능을 수행하고 응답합니다.
이런 과정 가운데 CRUD라는 개념이 등장합니다. Create, Read, Update, Delete. 이 기능 구현에 많은 주소가 생기게 되는데 사람이 개입하다 보니 API에 버그가 생기기도 합니다. 이를 조금 더 체계적으로 관리하기 위해 RESTful API가 나오게 됩니다. 이전보다 주소의 개수를 줄이면서 C/R/U/D에 맞춰 POST/GET/PUT.PATCH/DELETE라는 메소드(Method)를 전송해서 어떤 요청을 보냈는지 파악할 수 있게 합니다.(사실 어려운 개념이라 아래의 초보개발님이 작성하신 글을 참고하시길 추천드립니다.)
내가 만든 프로그램이 개인 개발자, 기업, 기관이 제공하는 기능, 프로그램 등을 활용할 수 있게끔 도와주는 중간 매개체
– API란? by 초보개발

클라와 서버 간의 요청 및 응답 간에 문제는 어떻게 알 수 있을까요? 가끔 인터넷을 하다가 보면 ‘404 페이지를 찾을 수 없습니다’라는 내용의 화면과 만날 때가 있습니다. 이상이 없을 때는 200번대(201, 202,…), 클라이언트측 문제는 400번대(401, 404, …), 서버측 문제는 500번대(500, 501,…)로 나타냅니다. 조금 더 세부적인 내용은 위키백과를 참고하시길 바랍니다.
정리하면, API는 소프트웨어가 다른 소프트웨어의 기능을 쓰기 위해 중간에 필요한 체계입니다. 쉽게 말해, 기능을 사용하기 위해 주소로 요청을 보내면 응답을 해주는 소프트웨어끼리의 체계라고 이해하시면 됩니다.
출처: 비전공자를 위한 이해할 수 있는 IT 지식에서
소프트웨어를 개발하기 위한 도구로 SDK(Software Development Kit)라는 용어가 있습니다. 예시로 구글 지도 SDK를 들 수 있습니다. 구글에서 제공하는 SDK를 설치하게 되면 자신의 SW에서 구글지도 SDK 제공 API들을 통해 구글 지도에 요청을 보낼 수 있습니다.
# JSON 형식
{
Key1 : Value1,
Key2 : [Value3, Value4, Value5] # 배열(Array) 형식, 여러 정보를 불러올 때 사용
}
# JSON 예시
{
"category":"음료",
"item":["카파모카","카페라떼","아메리카노"]
}API를 매개로 클라와 서버간 커뮤니케이션을 하는데 이 때 데이터를 넣을 수 있는 기능을 같이 개발해야 합니다. 현재는 JSON이라는 형식을 이용합니다. 키와 값이 콜론(:)로 구분되어 JSON이 표현됩니다. 저자는 이해를 돕기 위해 ‘GitBook’ 서비스의 API 샘플 페이지를 보여 줍니다.(깃북은 깔금한 API 문서 작성을 도와주는 서비스입니다.)
5장 애플리케이션(Application)
애플리케이션은 OS에 설치하여 사용하는 모든 프로그램을 말합니다. 스마트폰의 등장으로 앱(App)이라는 말이 퍼지기 시작했습니다. 대게 개발자는 ‘1.0.2’과 같은 형식으로 버전을 관리합니다. 숫자 2는 작은 변화를, 0은 하위 버전 호환 가능하지만 큰 변화를, 1은 하위 버전과 호환불가능한 큰 변화를 의미합니다. 버전별 해당 앱의 정책에 변화가 생길 수 있는데, 가격 정책의 변화가 발생했는데 기존 앱 버전을 가지고 있다면 문제가 되겠죠. 참고로, iOS는 앱스토어, 안드로이드는 구글 플레이 스토어를 통해 앱을 구매할 수 있습니다.
6장 웹(Web)
저자는 이번 장에서 웹언어(HTML, CSS, JavaScript), 브라우저, 반응형 웹 등에 대해서 이야기 합니다. HTML(Hyper Text Markup Language)의 시초인 유럽 입자 물리 연구소의 직원인 ‘팀 버너스리’를 소개합니다. 연구소 내 운영체제에 상관없이 정보를 주고 받을 수 있도록 일정한 형식(HTML)로 작성한 문서를 제안합니다. 그 문서에는 코드(태그)들이 사용되는데 대표적으로 다음과 같습니다.
# HTML 태그
<h> ... </h> # 대제목을 의미
<p> ... </p> # 문단
<ol> .. </ol> #순서있는 목록(ordered list)
<ul> .. </ul> #순서없는 목록
<a href = '웹주소'> .. </a> #링크
여기서 주의해야 할 사항은 HTML이 프로그래밍 언어가 아니라는 점입니다. HTML은 컴퓨터에게 특정 일을 시킬 수 있는 언어가 아닌 단지 브라우저가 볼 수 있는 문서를 적은 언어입니다.
출처: 비전공자를 위한 이해할 수 있는 IT 지식에서
HTML은 정보 전달에 초점이 있다보니 디자인 기능이 부족했고, 이를 보완하기 위해서 CSS(Cascading Style Sheets)가 개발되었습니다. 정보 수정은 HTML, 디자인 수정은 CSS가 담당하게 되었고, 이 두가지 작업을 합쳐서 ‘퍼블리싱‘ 이라고 표현합니다.(그 일을 하는 사람은 ‘퍼블리셔’) 더 세부적인 내용은 나무위키를 참조하세요.
이 두 언어로 구현이 어려운 기능들에 대한 수요로 JavaScript(js)라는 프로그래밍 언어가 나타났습니다. 네이버에 접속해서 웹브라우저를 열고 오른쪽 마우스 클릭후 ‘검사(Inspect)’를 선택하면 아래와 같이 웹페이지 소스가 나타납니다. <script type=”…”</script>와 같은 태그 부분이 자바스크립트 파일과 연결되어 각종 기능을 구현하도록 해줍니다. 아래 소스에서 <head> 부분에 마우스를 가져가서 우측버튼을 눌러 ‘Delete elememt’를 선택하면 CSS가 없는 HTML 본연의 모습을 확인하실 수 있습니다.(물론, 다시 네이버에 접속하면 원상복구가 됩니다.)
7장 데이터베이스와 이미지 처리
저자는 쇼핑몰을 예를 들어서 데이터베이스(Database)에 대해 말합니다. 모두 텍스트로 이뤄진 회원명, 아이디, 주문 상품명, 상품 가격 등이겠죠. 이것들을 하나의 텍스트 파일로 관리한다면 쉽지 않겠죠? 1.txt의 내용(홍길동, hong, 아이스크림, 500원) 이런게 수만개 있다고 하면, 주문을 취소하거나 가격이 변동되거나 등등 관리하는게 쉬울까요? 그래서 바로 엑셀과 같이 표의 형태로 만드는 관계형 데이터베이스라는 방법론이 생기게 됩니다.
데이터는 단 1%의 결점도 없어야 합니다. 그래서 데이터를 관리하는 게 어렵습니다.
출처: 비전공자를 위한 이해할 수 있는 IT 지식에서
텍스트 뭉치로 관리할 때는 수만개의 텍스트 파일을 하나씩 열어서 수정해야 하니 시간이 많이 소요됩니다. 회원정보(유저번호, 이름, 생일, 주소 등), 제품정보(제품번호, 제품명, 가격 등), 주문정보(유저번호, 제품번호) 등 그룹핑 해서 관계형 데이터베이스 체계로 관리를 하게 되면 더 효과적입니다. 예를 들면, 유저번호 1번이 주소를 변경한다고 하면 제품정보와 주문정보는 수정할 필요가 없습니다.
참고적으로 데이터베이스를 엑셀로 비유하면, 엑셀파일 자체는 데이터베이스 혹은 스키마(Schema), 엑셀파일의 시트(Sheet)는 테이블(Table)이라고 일컫습니다.
개발자들은 txt파일이나 엑셀에 데이터를 저장하지 않고 DBMS라는 데이터베이스 관리시스템을 이용해서 DB를 관리합니다. 대표적으로 MS SQL, Oracle DB, MySQL, MariaDB 등이 있습니다.
이런 말이 들린다면, 이건 모두 클라이언트에 데이터가 있다는 표현입니다. “그 데이터는 로컬에… 내부 DB에 저장하고… 네이티브에서 가져왔어요.”
반면, ‘서버, API, DB, 백/백 엔드’와 같은 표현은 ‘서버에서 데이터를 가져왔다’는 의미입니다. “API로 가져온… DB에 저장해두고 쓰면…”
출처: 비전공자를 위한 이해할 수 있는 IT 지식에서
8장 프레임워크와 라이브러리
애플은 앱스토어에 개발자들이 좋은 앱들을 올려놓기를 바랍니다. 고품질의 유용한 앱은 아이폰 판매로 이어질 테니까요. 그래서 애플은 프레임워크(Cocoa)를 제공해서 개발자들의 앱개발을 도와줍니다. 예를 들면, 앱에 버튼을 삽입한다고 하면 이미 프레임워크를 통해 애플이 제공한 코드를 가져다 사용하면 됩니다. 참고로, 애플 앱 프로그래밍 언어는 Swift입니다.
안드로이드의 경우 Kotlin이라는 언어를 사용하고 Android Framework를 이용합니다. 애플과 구글의 경우, 이렇게 개발자들이 애플리케이션을 용이하게 개발하도록 프레임워크를 제공합니다. 하지만 웹은 어떨까요? JS 언어를 사용하고 React, Vue.js 등과 같은 프레임워크를 이용해서 개발을 합니다. 이외에도 python-django와 같은 조합의 툴들이 많이 존재합니다.
라이브러리라는 용어를 많이 듣게 되는데 이건 뭘까요? 어떤 특정 기능 등을 위해서 이미 만들어 놓은 패키지라고 생각하시면 될 것 같습니다. 우리가 어떤 앱을 개발하기 위해서 필요한 기능을 라이브러리를 잘 찾아서 가져다 쓰면 아주 쉽게 원하는 기능을 구현할 수 있습니다. 코딩을 하다 보면 저절로 이해하게 됩니다.
9장 협업, 소스관리, 디자인
프로그램 개발을 진행하다 보면 스케쥴이 그때그때 바뀌게 되기도 합니다. 어떤 기능이 필요하다고 해서 진행 중이던 개발을 멈추고 먼저 처리를 하다가 심지어 취소가 되기도 합니다. 이런 상황을 고려하면 버전 관리가 필요합니다. 이를 위한 툴인 깃(Git)을 앞서 언급되었던 리누스 토발즈가 개발했습니다. (깃 설치하기 포스트를 통해서 더 세부적으로 알아보세요.)
개발 단계마다 깃발을 꽂아서(Commit) 메모(커밋 Log)를 할 수가 있습니다. 커밋과 메모를 통해서 그 행위 당사자와 변경내용을 추적할 수가 있습니다. ‘체크아웃‘을 통해 깃발 위치의 코드로 옮겨 다닐 수도 있습니다.(소스코드 버전관리)
개발자가 기획한 대로 한 방향으로 개발 중인데 새로운 방향으로 개발을 추가해야 할 때 Branch 작업(가치치기)을 하게 됩니다. 이는 기존 브랜치와 신규 브랜치간 상호 영향을 주지 않도록 해줍니다. 나중에 각각의 브랜치에서 작업한 코드를 머지(Merge)해서 합치면 됩니다.
만약 개발자가 한명이 아니라 여러명이라면요? 이를 위해 원격 저장소라는 깃허브(GitHub)가 만들어졌습니다. 네이버 마이박스와 같이 클라우드 시스템으로 코드를 업로드 할 수도 있고 다운로드 할 수도 있습니다.(GitHub RStudio 연동하기 포스트를 통해 깃허브 가입에 대해 알아보세요.)
애플리케이션을 개발하다 보면 많은 이유로 개발자와 디자이너 간에 갈등이 발생하게 되는데, 갈등관리를 위해 스케치, 재플린 등의 프로그램으로 상호간의 접점을 줄이는 걸 권고합니다. 결국, 이런 이슈에 정답은 없고 조직차원의 대화문화를 만들고 서로의 분야에 대한 공부를 통해 이해도를 높이고 상호 배려가 필요하다고 말합니다.
10장 정리
저자는 지금까지 배운 내용을 10장을 통해 총정리합니다. CPU와 메모리 등을 갖춘 컴퓨터(노트북, 데스크톱, 스마트폰, 태블릿 등)는 운영체제라는 프로그램으로 돌아갑니다. 윈도우, Mac OS, 안드로이드 등이 그것이지요. 이 OS에서 돌아가는 프로그램을 클라이언트 개발자가 만듭니다. 클라이언트 쪽과 마찬가지로 서버 단에서도 리눅스와 같은 OS를 운영하고 서버 개발자가 서버 프로그램을 개발합니다. 이 둘은 API를 통해 Request와 Response를 실행합니다.
클라이언트가 정확한 곳에 요청을 보내면 서버는 요청이 온 곳으로 응답합니다. 응답에는 성공과 실패의 경우가 있는데, 클라의 잘못된 요청에 서버는 400번대 에러, 서버 문제에 500번대 에러 코드를 발생시킵니다. 성공은 200번대 숫자로 표현합니다.
출처: 비전공자를 위한 이해할 수 있는 IT 지식에서
실제 서비스 개발에는 웹 클라 개발자, iOS 개발자, Android 개발자, 서버 개발자 총 4명이 필요합니다. 웹개발자는 HTML(뼈대), CSS(디자인), JS(기능)로 개발하고 이를 쉽게 하기 위해 React.js 라이브러리를 사용합니다. 관리자 페이지 개발도 웹개발자의 몫입니다. 그리고 앱 개발자들은 iOS와 안드로이드 각각의 언어와 프레임워크를 이용하여 서비스 애플리케이션를 개발합니다.
이렇게 클라 프로그램이 만들어지고, 회원가입과 고객목록 요청 등 서버에 다양한 요청을 합니다. 이런 요청에 맞는 기능을 만들 때 필수적으로 DB를 거치게 되는데 이 때 SQL언어가 사용됩니다. 서버 개발자가 각 기능을 구현한 뒤 그에 맞게 API를 만들고 해당 문서를 작성합니다. 이 문서를 기준으로 클라/서버 개발자가 활발한 커뮤니케이션을 합니다.
SQL은 데이터베이스 관리시스템(DBMS)에 데이터를 CRUD 하기 위한 언어입니다.
출처: 비전공자를 위한 이해할 수 있는 IT 지식에서
개발이 완료되면 그 웹 결과물을 서버에 올려두고 서비스 하면 일반 유저들이 접속하게 됩니다. 이때, 그들의 브라우저로 HTML, CSS, JS, 이미지 등의 파일이 다운로드 됩니다. 필요시 서버로 API 요청을 보내면 서버가 요청을 받고 데이터베이스를 이용하여 응답을 보냅니다.(웹 동작방식)
개발 완료된 앱의 경우 애플 앱스토어와 구글 플레이 스토어에 등록 심사를 요청합니다. 구글은 하루 안에 스토어에 올려주기도 하고 애플은 조금 더 까다롭습니다. 일반 유저는 어플을 다운로드해서 설치하고 웹 동작방식처럼 스마트폰-서버 간 요청-응답 커뮤니케이션이 이뤄집니다.
현대의 IT산업이 그 외 산업에 메기와 같은 존재입니다. 카카오와 택시업계, 삼성전자 갤럭시워치와 시계산업 등이 그렇죠. 앞으로도 이 IT기술은 기존 산업들을 그대로 두지 않을게 뻔합니다. 메기에게 잡아 먹히지 않기 이해서 IT기술을 익히고 변화해야 살아남을 수 있지 않을까요?
부록- API 문서를 통해 서비스 분석하기
API 문서에 대한 내용은 부록에서 조금 더 세부적으로 다루고 있습니다. 지금까지 살펴본 내용보다 더 깊은 API 문서 컨텐츠를 알아보기 원하시는 분은 이 책을 꼭 구매해서 보시기를 권장드립니다. 전자책으로도 가능한거 아시죠?( 샬롯책방 – 전자책 무료 포스트를 참고하세요.)
길고 긴 글을 읽으시느라고 고생 많으셨습니다.
이상, 인생 부캐 만들기 지지자, secondlif.lol 테리였습니다.
‘secondlife.lol’의 모든 콘텐츠는 저작권법의 보호를 받습니다. 무단 전재와 복사, 배포 등을 금합니다.









