*이 글은 [직장인 필수 코딩 용어 해설] 무료 특강을 토대로 작성되었습니다. 더 자세한 설명이 필요하다면 강의를 들어보세요. 👉 직장인 코딩 용어 해설 무료특강
✔️ 이 글을 읽으면 이런 개념을 알 수 있어요.
우선적으로 코딩의 바탕이 되는 컴퓨터에 대한 이해가 필요하겠죠. 컴퓨터는 간단히 말해서 ‘기계를 모아둔 것’입니다. 그 안에 있는 운영체제, 인터넷이 중요한 역할을 맡고 있습니다.
OS(operating system), 즉 운영체제는 ‘인간이 기계와 소통할 수 있도록 자연어를 기계어로 바꿔주는 프로그램’입니다. 여러분이 자주 접하는 IOS, Android, 윈도우는 운영체제의 종류입니다. 무료로 제공되는 오픈소스인 리눅스까지 알아두면 좋아요.
개발자가 하는 ‘코딩’은 운영체제에 명령을 내리는 행동입니다. 명령을 내리는 도구가 바로 프로그래밍 언어인데요. 프로그래밍 언어는 각 상황에 따라 최적화된 언어가 다릅니다. 계란후라이를 냄비로도 할 수 있지만 후라이팬이 더 적합한 것처럼 말이죠. 어떤 상황에 어떤 언어를 사용하는 지는 [4. 개발언어]에서 더 자세히 설명해 드릴게요.
인터넷(Internet)은 전 세계적으로 연결되어 있는 컴퓨터 네트워크 통신망입니다. 웹이라는 말, 자주 쓰시죠. 웹은 인터넷에 연결된 사용자들이 정보를 공유하는 공간이에요. 웹에서 url 링크를 보면, http 혹은 https로 시작하는데요. 이 둘은 ‘보안’의 차이가 있어요. http는 웹 통신을 한다는 의미이고, https는 보안을 철저히 한다는 의미입니다. https는 암구호 표를 서로 가져서 가운데서 엿들을 수 없어요. 링크를 공유할 때 이러한 숨겨진 뜻을 떠올려보세요!
서버는 클라이언트의 요청에 따라 데이터를 저장하거나 보여주는 프로그램이에요. 서버가 고장나면 인터넷을 사용할 수 없기 때문에 서버는 아주 중요합니다. 티켓팅을 할 때 ‘서버가 터진’ 경험 있으시죠. 서버에 사용자가 몰려서 웹페이지를 이용할 수 없게 된 것이랍니다.
웹서비스 동작 방식을 알기 위해서는 브라우저 동작 방식을 아는 것이 중요합니다. 서버는 “이미지를 1초 마다 넘겨줘”, “이 위치에 메뉴바를 그려줘” 등을 브라우저에게 요청합니다. 브라우저는 서버가 요청한 것을 받아와서 그대로 그려줍니다.
웹서버를 만드는 데는 HTML, CSS, JS(Javascript)라는 프로그래밍 언어가 필요합니다. 각각 HTML은 뼈대, CSS는 디자인 요소, JS는 움직임을 담당해요. 이렇게 만든 웹서버를 브라우저에 전달합니다. 브라우저가 전달받은 대로 페이지를 구성하면 우리가 보는 웹사이트가 만들어진답니다.
앱에는 어떤 방식이 적용될까요? 티켓팅을 할 때를 생각해봅시다. 자리가 없어질 때마다 CSS, JS를 다 받아와서 보여주는 것보다 이미 꾸며져 있는 공간에서 데이터만 바꾸는 게 더 효율적일 거예요. 그러한 방식이 앱에서 자주 사용되는 {JSON} 방식입니다. 껍데기만 있는 공간에 데이터를 받아오는 것이죠. 배달 앱에서 야식 데이터를 받는 것, 카카오 서버에서 기상청 데이터를 받아 채팅창에 눈이 내리게 하는 것 등 많은 앱에서 {JSON} 방식을 사용하고 있답니다.
은행에 가서 통장 잔고를 확인하고 싶을 때, 우리는 예금 창구에서 본인 인증을 한 뒤 잔고를 확인합니다. 은행에 이러한 절차가 존재하듯이 서버에도 미리 정해둔 약속이 존재하는데요. 클라이언트 개발자와 서버 개발자가 미리한 약속이자 창구가 바로 API입니다.
예를 들어 배달 앱을 생각해봅시다. “음식점 리스트를 부를 때는 A로 요청 주시고요. 주소를 꼭 가져와주세요. 그러면 제가 이런 정보를 드릴게요.”라고 약속을 정해둬야 그에 맞는 개발이 가능하겠죠. 이러한 약속을 헷갈리지 않게 문서로 적어둔 것이 API 명세서입니다.
API는 회사 대 회사, 부서 대 부서에서 업데이트를 하거나 프로덕트를 개발할 때 사용합니다. 예시로 네이버 무비에 있는 영화 <나홀로집에> 링크를 가져왔어요. 이것이 바로 API랍니다.
https://movie.nave.com/movie/bi/mi/basic.naver?code=10016
서버위치 API 주소 가져가기로 한 데이터
업무에서 API 관련 대화가 나오면 이렇게 이해하면 됩니다. 이와 같은 말이 내포하고 있는 뜻을 익힌다면 회사에서 원활하게 소통할 수 있어요.
“API 하나만 따주세요 → 요청이 가능한 새로운 기능 만들어주세요”
“API 개발은 끝났고, 클라이언트는 아직이에요 → 기능은 다 만들었는데 요청하는 쪽이 아직 작업 중이에요”
프로그래밍 언어의 역할은 인간과 가장 가까운 언어로 OS에 명령을 내리는 것인데요. 아무런 틀없이 프로그래밍 언어 하나만으로 서버를 처음부터 만드는 것은 힘들고 비효율적입니다. 개발자들은 ‘프레임워크’를 사용하여 보다 수월하게 서버를 제작합니다. 프레임워크는 레고 블록 조각이라고 생각하면 됩니다. 미리 만들어둔 조각을 가지고 필요한 곳에 사용하는 것이죠.
프론트엔드는 자동차의 외관처럼 유저의 눈에 보이는 부분을 뜻합니다. 프론트엔드는 HTML, CSS, JS라는 프로그래밍 언어를 사용합니다. 그에 맞는 프레임워크는 JS로 만든 앵귤러, 뷰, 리액트가 있습니다. 프론트엔드 프레임워크를 배우고 싶다면 가장 많이 쓰이는 리액트를 추천드려요. 리액트를 익히고 나면 다른 프레임워크 쉽게 배울 수 있을 거예요.
백엔드는 자동차의 엔진같은 역할로, 프론트엔드가 제대로 돌아가게 만드는 부분입니다. 서버 즉, 백엔드는 대부분의 프로그래밍 언어가 사용 가능합니다. 그 중에서 어렵고 형식이 많지만 큰 회사에서 많이 쓰는 Java, 쉽게 입문하며 자유롭고 데이터 분석에도 쓰는 python, javascript와 유사해서 스타트업에서 많이 사용하는 node.js가 대표적이죠. 각각 프로그래밍 언어에 대응하는 프레임워크는 Java에 쓰이는 Spring, Node.js에 쓰이는 Express, Python에 쓰이는 Django, Flask 입니다.
앱 개발은 안드로이드, ios로 나뉘는데요. 안드로이드 앱을 제작할 때는 Kotlin을 쓰고, ios 아이폰 앱을 만들 때는 swift를 사용합니다. 안드로이드와 ios 모두 가능하게 하려면 flutter 또는 ReactNative를 이용해요. 아래의 표를 보시고 자신의 분야와 개발환경에 맞춰서 프로그래밍 언어를 선택하시면 됩니다.
처음 서버가 만들어지면 ‘클라이언트 - 서버’로만 구성되어 있습니다. 서버가 점점 커질 수록 서버의 교통 정리를 해주는 라우터가 생기고, 데이터를 보관하는 DB(데이터 베이스)도 종류에 따라 여러가지로 나뉘게 됩니다. 복잡해진 구조를 아키텍처라고 하는데요. 서버 지도는 엄청나게 커지기 때문에 개발자들도 전체 구조를 알 수 없을 정도 입니다.
요즘은 AWS, 아마존 웹서비스 등의 ‘클라우드 서비스’를 이용합니다. 컴퓨터를 빌려 시간제로 돈을 내거나 트래픽 단위로 돈을 내는 것이죠. 클라우드 환경에서 제공하는 서비스를 어떻게 엮을 것인지 구성하는 것은 개발자의 자질에 달려있습니다. 이것이 팀의 생산성을 결정하는 것이죠.
도서관에 책을 보관하는 것처럼 DB에는 데이터들이 보관되어 있어요. 책장에 책을 마구잡이로 꽂았을 때보다 일정한 기준을 두고 정리했을 때 원하는 책을 찾는데 훨씬 수월하겠죠. DB도 마찬가지입니다. 정렬된 상태로 찾아야 빠르게 찾을 수 있어요. 데이터가 정리된 항목을 index라고 한답니다.
DB는 정형화된 SQL과 비정형화된 noSQL(not only SQL)이 있어요. 정형화된 것을 쓰면 편리하다는 장점이 있고 비정형화된 것을 쓰면 커스텀 할 수 있는 장점이 있어요. 데이터 분류법이 바뀔 일이 많은 스타트업은 noSQL, 이미 성장하여 데이터 분류법이 바뀔 일이 드문 회사는 SQL을 사용하면 좋겠죠.
개발은 대게 협업으로 이루어져요. 이때 코드 관리가 정말 중요하답니다. 코드를 가지치기로 관리할 수 있는 프로그램이 git입니다.github으로 코드를 나누어서 작업한 뒤, 합치는 작업을 하면 관리할 컴퓨터를 따로 준비할 필요가 없습니다.
github을 이용한 협업은 효율적이고 안전하게 개발할 수 있게 도와준답니다.
github은 3가지 기능으로 나누어져 있어요. 중간 과정없이 바로 업데이트 된다면 개발자끼리 혼란을 야기할 수 있기 때문이죠.
이 세 가지 기능만 쓰실 줄 안다면 협업은 무리 없으실 거예요.
직장인이 알아두면 좋은 코딩 용어를 정리해보았는데요. 헷갈리는 개념들이 정리가 되었기 바랍니다. 용어의 뜻이 흐릿해질 때마다 다시 꺼내어 읽어보길 추천해요!
SQL 데이터 분석으로 매력적인 포트폴리오를 만들고 싶다면? 👉
_____
📢 스파르타코딩클럽이 뉴스레터를 만들었어요!
‘큰일레터’는 코딩으로 큰일 낸 사람들의 이야기와 바로 써먹는 IT꿀팁을 전합니다.
📮 큰일레터를 이메일로 받아보고 싶다면? 👉 큰일레터 구독하러 가기