About


알려주고 싶은 정보를 작성해주세요!


닉네임을 알려주세요!
추후 문서 작성시 기여자로 나타납니다.


Android는 Google에서 제작하고 있는 모바일 운영체제 및 미들웨어 등이 포함된 소프트웨어 집합입니다. 오픈소스이기 때문에 코드가 모두 공개되어 있다는 특징이 있으며, 모바일 운영체제 중 가장 높은 점유율을 가지고 있습니다.
관련 직군 : #안드로이드 개발자

프레임워크
Angular는 구글에서 운용, 유지 중인 Typescript 기반 웹 프레임워크입니다. React, Vue.js와 함께 프론트엔드 SPA의 삼대장으로 불리고 있습니다. SPA(Single Page Application)란, 기존에 서버에서 하던 데이터 렌더링을 클라이언트, 즉 사용자 기기 단에서 진행하는 방식으로, 더 나은 사용자 경험을 제공하고 화면 크기에 따라 화면이 바뀌는 반응형 웹사이트를 만들기 쉬워진다는 장점이 있습니다. Angular는 프로젝트의 생성, 테스트, 빌드, 배포를 위한 모든 기능을 제공해 유지 관리가 편하지만, React, Vue.js에 비해 공부양이 많으며 자유도가 떨어진다는 단점이 있습니다.
관련 직군 : #프론트엔드 개발자

Ansible은 여러 개의 서버를 효율적으로 관리하기 위해 고안된 환경 구성 자동화 도구입니다. 과거에는 서버마다 작업자가 직접 환경 구성을 하거나, 자동화를 하더라도 서버마다 하는 데 그쳤으나, 최근에는 클라우드 환경으로 변화하며 동시에 여러 개의 서버를 관리해야 하는 일이 많아졌습니다. 이를 위해 고안된 것이 IaC(Infrastructure as Code)이며, IaC의 대표 툴 중 하나가 Ansible입니다. IaC는 간단히 말하면 서버나 DB와 같은 개발의 기반이 되는 것들을 코드를 통해 관리하는 것입니다.
관련 직군 : #DevOps

애플리케이션 프로세서(AP)는 스마트폰 내 모든 명령을 처리하는 핵심 부품으로, 컴퓨터로 따지면 CPU와 유사하지만 CPU가 주로 하는 계산 뿐만 아니라 메모리, 그래픽카드, 저장 장치 등의 역할을 단 하나의 칩에서 하게 됩니다.
관련 직군 : #임베디드 개발자

API는 사용자와 컴퓨터를 연결해주는 UI와는 다르게, 컴퓨터와 컴퓨터의 연결을 가능하게 해줍니다. API를 활용하면 구현 방식을 알지 못하는 제품 또는 서비스와도 통신할 수 있으며 애플리케이션 개발을 간소화하여 시간과 비용을 절약할 수 있습니다.

AR은 가상현실의 한 분야로 실제로 존재하는 환경에 가상의 사물이나 정보를 합성하여 마치 원래의 환경에 존재하는 사물처럼 보이도록 하는 컴퓨터 그래픽 기법입니다.
관련 직군 : #게임 개발자

AWS는 아마존닷컴의 클라우드 컴퓨팅 플랫폼으로, 클라우드 컴퓨팅 분야에서 압도적 1위의 점유율을 가지고 있습니다. 이전에는 프로젝트의 물리적인 서버, 네트워크, 스토리지 등을 직접 만들고 관리해야 했다면, 요즘에는 AWS와 같은 플랫폼을 통해 가상의 환경에서 쉽고 빠르게 제공 받을 수 있습니다.

마이크로소프트 애저(Microsoft Azure, 이전 이름: 윈도우 애저)는 마이크로소프트의 클라우드 컴퓨팅 플랫폼입니다. 사용자들이 직접 서버를 구매하고 관리해야하던 과거와 달리, 최근에는 클라우드 컴퓨팅을 통해 서버를 인터넷을 통해 제공 받을 수 있게 되었습니다. AWS, 구글 클라우드 플랫폼과 함께 클라우드 컴퓨팅의 3대장으로 꼽힙니다.
관련 직군 : #DevOps #보안 엔지니어

비즈니스 인텔리전스(Business Intelligence, BI)는 데이터 속에서 기업의 의사결정에 중요한 정보를 분석해내는 능력 및 그 과정을 통칭하는 말입니다.

BLE(블루투스 저전력 프로토콜)는 IoT(사물인터넷)를 위해 설계된 저전력 블루투스입니다. 우리에게 익숙한, 무선 이어폰 연결에 사용되는 기존의 블루투스는 '클래식 블루투스'라고 하는데, BLE는 클래식 블루투스보다 전력을 덜 쓰고, 더 빠르게 전송하며, 더 빠르게 연결됩니다. BLE와 클래식 블루투스는 서로 호환이 안 되기 때문에 주의해야 합니다.
관련 직군 : #임베디드 개발자

언어
C는 1972년 개발된 프로그래밍 언어로, 소프트웨어, 하드웨어, 시스템, 응용 프로그램 등 분야를 가리지 않고 광범위하게 사용되는, 프로그래밍 언어의 공용어 위치에 있습니다. 입지가 탄탄하고 컴퓨터 공학 기초 지식을 쌓기에 좋아 Python의 등장 이전까지는 개발 입문 언어로 사용되었으나, 워낙 난이도가 높아 최근에는 Python을 입문 언어로 배우는 경우가 대부분입니다. 그 난이도에도 불구하고 성능이 좋아 (파이썬보다 1000배 이상 빠름) 특히 빠른 속도를 요구하는 분야에 널리 사용되고 있습니다.

C#은 C와 직접적인 관계는 없으며, Java와 유사하게 웹개발/앱개발에 사용되는 프로그래밍 언어입니다. 2000년, 마이크로소프트 측에서 오라클의 Java에 대항하기 위해 '.NET'이라는 개발 프레임워크와, .NET에서 지원하는 언어인 C#을 만들어 세상에 내놓았습니다. 국내의 경우 Java가 웹이든 모바일이든 C#보다 훨씬 많이 사용되지만, 미국, 유럽 등에서는 C#도 웹개발에 꽤나 사용되는 추세입니다. 최근에는 C#을 통해 게임 개발이 가능해지며 게임 분야에서 많이 사용되고 있습니다.
관련 직군 : #게임 개발자

언어
C++은 C언어를 바탕으로 1979년에 만들어진 프로그래밍 언어입니다. C++의 개발자는 C++을 C의 확장판과 같은 느낌으로 만들었다고 합니다. 하지만 두 프로그래밍 언어는 사고 방식(절차 지향, 객체 지향)에 차이가 있기 때문에 C를 안다고 해서 C++을 무조건 잘 할 수 있는 것은 아닙니다. C, Java와 함께 대표적인 고전 프로그래밍 언어로 꼽히지만 그 중에서도 높은 난이도를 자랑합니다. 하지만 빠른 속도, 다양한 기능 제공으로 개발자의 역량이 받쳐준다면 성능 면에서 큰 장점이 있는 언어입니다.

CCNA는 CISCO 네트워크 기초 자격증입니다. CISCO는 네트워킹 장비를 비롯해 통신사업자들을 위해 네트워크 솔루션을 제공하는 세계에서 가장 영향력 있는 네트워킹 기업입니다. 그래서 네트워크 관련 거의 필수적인 자격증으로 여겨지고 있습니다. CCNA 준비를 통해 라우터와 라우터의 접속인 WAN 연결, TCP/IP 같은 프로토콜 등을 배울 수 있습니다.
관련 직군 : #보안 엔지니어

기타
CI/CD는 프로그램을 개발하는 것부터 사용자에게 배포하는 것까지의 과정을 좀 더 빠르고 편리하게 하기 위해 자동화한 것입니다. 이때 CI는 지속적인 통합(Continuous Integration)의 줄임말로, 개발자들이 코드를 수정한 것을 합치고, 수정사항을 확인하는 과정을 자동화하는 것을 말합니다. CD는 지속적인 서비스 제공(Continuous Delivery) 또는 지속적인 배포(Continuous Deployment)를 의미하며, CI를 통해 코드 수정이 무사히 된 뒤 배포 준비 및 배포하는 과정을 자동화 한 것을 말합니다.
관련 직군 : #DevOps #백엔드 개발자

CISA는 Certified Information System Auditor 의 약자로, 국제공인정보시스템감사사 자격입니다. 국제자격증이기 때문에 해외에서도 정보보안 전문가로 인정 받을 수 있습니다. 정보보안기사, CISSP와 함께 보안 3대 자격증으로 잘 알려져 있으며, 정보 보안과 관련된 내용 뿐만 아니라 회계사가 회계감사 하듯 기업의 정보 시스템을 감사하는 내용도 포함하는 자격증입니다. 취득을 위해서는 시험 합격 뿐만 아니라 관련 분야에서 5년 이상의 경력이 필요합니다.
관련 직군 : #보안 엔지니어

CISSP(Certified Information System Security Professional)는 국제공인정보시스템 보안 전문가의 약칭으로, 국내 뿐만 아니라 미국, 호주, 일본, 중국 등 해외에서도 정보 보안 전문가로 인정 받을 수 있는 자격증입니다. 보안 및 위험관리, 통신 및 네트워크 보안, 보안 아키텍처 및 엔지니어링 등의 내용이 자격증 취득 시험에 출제됩니다.
관련 직군 : #보안 엔지니어

과거에는 서버를 사용하기 위해 각 기업이 직접 서버용 컴퓨터를 구매하고 관리해야 했습니다. 최근에는 이러한 방식의 불편함을 해소하기 위해 인터넷 기반의 클라우드 컴퓨팅이 떠오르고 있습니다. 클라우드 컴퓨팅은 서버 관리를 전문 업체에 맡기고, 인터넷 통신망을 통해 해당 서버에 연결됨으로써 인터넷이 연결된 어느 곳에서든 서버를 사용할 수 있도록 하는 것을 말합니다.

Coroutine은 Co, Routine을 합친 단어로 협력의 뜻을 가진 Co라는 접두어를 통해 협력하는 함수라고 생각하면 됩니다. 일반적인 코드는 동기화가 되어 있어 코드에 있는 순서대로 일을 처리하는 한편, coroutine을 사용하게 되면 루틴이 끝나기 전에 자유롭게 나올 수 있기 때문에 비동기 처리를 쉽게 할 수 있습니다. 동시에 진행되는 병렬성 프로그래밍과 달리 함수를 중간에 빠져나왔다가 다른 함수에 진입하고 다시 돌아와 멈춰있던 부분부터 실행하는 동시성 프로그래밍을 지원합니다. 실제 여러 언어에서 이 개념을 지원하지만 특히 kotlin에서 많이 사용됩니다.
관련 직군 : #안드로이드 개발자

CSS(Cascading Style Sheets)는 웹페이지의 스타일을 꾸미는 데 사용되는 스타일 시트 언어로, Python, C와 같은 프로그래밍 언어와는 구분됩니다. CSS는 쉽게 말해 웹페이지에서 요소들이 어디에 배치될지, 어떤 색깔을 가질지를 정의합니다. 이 페이지의 글씨 크기, 여백 등은 전부 CSS로 정의한 것입니다. 웹페이지를 만들 때, HTML이 그대로여도 CSS를 바꾼다면 전혀 다른 결과물을 낼 수 있습니다.
관련 직군 : #프론트엔드 개발자

DApp은 decentralized application의 약자로 Ethereum 같은 플랫폼 블록체인 위에서 작동하는 탈중앙화된 어플리케이션입니다. 기존 App은 개발자가 구축해놓은 중앙 서버에 데이터가 오고 가는 반면 DApp은 블록체인 서버에서 데이터가 오고 가는 차이점이 있습니다. 즉 Android를 Ethereum이라 한다면 Android 앱을 DApp이라 할 수 있습니다.
관련 직군 : #블록체인 개발자

DB는 database의 약자로 여러 사람들에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터 집합입니다. 또한, 여러 자료들을 조직적으로 통합하여 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체입니다.
관련 직군 : #DBA

딥러닝은 머신러닝 기법, 즉 인공지능을 학습시키는 방법의 일종입니다. 머신러닝 중에서도 딥러닝을 따로 떼서 이야기하는 이유는, 딥러닝은 '뉴럴 네트워크'라는 것을 사용해 독특한 방식으로 인공지능을 학습시키기 때문입니다. 뉴럴 네트워크를 통해 기계가 인간의 뇌와 유사하게 작동하도록 했기 때문에 일반적인 머신러닝 기법보다 성능이 좋고 더 복잡한 일들을 할 수 있습니다.

DeFi는 decentralized finanace의 약자로 탈중앙화 금융이라는 뜻입니다. 중앙 집중화된 전통적인 금융에선 KYC기반으로 사람들을 인증하여 거래를 합니다. 이를 통해 진입장벽이 존재하고 언제든지 뱅크런도 일어날 수 있기에 대안으로 나온 새로운 금융 형태라고 생각하면 됩니다. 중개인 없이 오로지 smart contract 알고리즘 기반으로 대출 및 송금이 이루어지고 블록체인이라는 절대적인 보안체계로 금융체계를 잘 돌아가게 합니다.
관련 직군 : #블록체인 개발자

데브옵스(DevOps)는 소프트웨어의 개발(Development)과 운영(Operations)의 합성어로서, 기존에 분리되어 있던 개발과 운영을 연결해주는 개발 환경을 의미합니다. 과거에는 개발팀에서 새로운 소프트웨어를 만든 뒤에 운영팀에 넘겨주면, 그 이후로는 운영팀에서 쭉 유지보수를 하다보니 비효율적인 부분이 생기곤 했습니다. 이러한 비효율을 해소하고 개발과 운영이 보다 매끄럽게 상호작용 할 수 있도록 하자는 의미에서 나온 것이 DevOps 문화입니다. 최근에는 단순한 연결에서 더 나아가 자동화, 측정, 공유, 기록 등을 통해 보다 효율적인 개발 환경을 조성하는 문화까지도 포괄해 의미하고 있습니다.
관련 직군 : #DevOps #보안 엔지니어

docker는 서버 관리를 위한 오픈 소스 프로젝트입니다. 기존에는 개발을 하는 환경과 서버 환경이 달라 문제가 발생하거나, 서버 환경이 달라지면 서버를 추가로 구매해 관리해야 하는 등의 번거로움이 있었습니다. docker는 '컨테이너' 개념을 도입해, 하나의 서버 안에 컨테이너를 여러 개 두고 각 컨테이너를 가상환경으로 활용합니다. 개발하는 환경과 컨테이너의 환경을 동일하게 맞춰 오류를 방지하고, 서버 환경을 바꿔야 할 때 특정 컨테이너들을 더하거나 빼는 식으로 서버를 관리할 수 있어 매우 편리해집니다.

임베디드는 아주 작은 형태의 전자회로를 가지고 있는 컴퓨터를 말합니다. 스마트폰, 결제 단말기, 선풍기, 블랙박스 등이 대표적인 임베디드 장치입니다. 일반적인 linux는 일반 데스크탑 환경인 대용량 메모리 환경과 고성능 프로세서에서 동작하는 용도로 사용된다면, embedded linux는 저성능의 마이크로 프로세서와 제한된 메모리 환경에서 동작하는 임베디드 시스템용 리눅스 입니다.
관련 직군 : #임베디드 개발자

이더리움(Ethereum)은 암호화폐이자, 블록체인을 기반으로 한 '스마트 계약'을 가능하게 하는 일종의 플랫폼입니다. 암호화폐의 측면에서 보자면, 이더리움은 비트코인과 마찬가지로 블록체인 기술을 적용한 암호화폐이며, 비트코인 다음으로 시가총액이 높은 암호화폐입니다. 하지만 이더리움은 스마트 계약 플랫폼이라는 점에서 비트코인과 차별점이 있는데요, 스마트 계약은 블록체인 기술을 통해 중개자 없이도 다양한 종류의 거래가 성사될 수 있게끔 하는 것을 말합니다. 중개자가 없기 때문에 거래 과정이 단순해지며, 중개 수수료도 사라진다는 점이 스마트 계약의 특징입니다. 이더리움은 스마트 계약 플랫폼으로서, 이더리움 내에서 스마트 계약을 활용하는 다양한 게임, 앱을 만들 수 있도록 하고 있습니다.
관련 직군 : #블록체인 개발자

추출, 변환, 적재(extract, transform, load, ETL)는 데이터를 다룰 때 쓰는 용어입니다. 데이터를 다룰 때는 우선 데이터를 모아야 합니다. 이것을 Extract 라고 합니다. 데이터를 모은 뒤에는 데이터를 분리하거나, 결합하거나, 정규화 시키는 등 데이터를 새로 만지는 과정이 필요합니다. 이것이 Transform 입니다. 이러한 과정을 통해 얻은 새로운 데이터를 다른 데이터베이스(가장 핵심적인 데이터베이스)로 옮기는 것을 Load라고 합니다.
관련 직군 : #DBA

Firebase는 2014년도에 구글이 인수한 웹, 모바일 어플리케이션 개발 플랫폼 입니다. 백엔드 기능을 클라우드 서비스 형태로 제공하기 때문에 프론트 엔드에만 전념하여 사이트를 만들 수 있는 장점이 있습니다. 또한, 모바일 서버를 개발 시 푸시 알람, 데이터베이스, 인증, 스토리지, API등을 개발해야하는데 firebase는 프로젝트 생성시 자동으로 만들어줍니다. firebase는 document 형식의 간편하고 빠른 NoSQL기반의 데이터베이스를 도입하였지만 오라클이나 MySQL 같은 관계형 데이터베이스가 많이 쓰이기 때문에 개발 시 이 부분은 약간 불편한 점으로 여겨집니다.

펌웨어(firmware)는 하드웨어와 소프트웨어의 중간 단계에 있는 것으로 이해할 수 있습니다. 하드웨어 장치에 포함된 소프트웨어이지만, 소프트웨어를 실행 시키는 것도 가능합니다. 규모에 따라 마이크로컨트롤러, 마이크로프로세서라고 불리기도 합니다.
관련 직군 : #임베디드 개발자

프레임워크
플러터는 2017년 구글이 출시한 오픈 소스 크로스 플랫폼 GUI 애플리케이션 프레임워크입니다. 하나의 코드로 안드로이드, iOS, 리눅스, 윈도우 등에서 모두 작동하는 앱을 만들 수 있습니다. 사용하는 언어는 Dart 입니다.

웹 프레임워크는 개발을 할 때 코드를 처음부터 짤 필요가 없도록 주어지는 개발의 '틀'로 이해할 수 있습니다. 특히 웹/앱 개발의 경우 개발자가 하나하나 신경 쓰지 않아도 프레임워크의 규칙에 맞춰 코드를 작성하면 데이터베이스 연동, 세션 관리 등이 가능해지기 때문에 훨씬 편하게 개발을 할 수 있습니다. 라이브러리와 종종 혼동되지만, 라이브러리는 개발자가 필요할 때 전체 코드의 일부분으로 가져와 활용하는 것이라면, 프레임워크는 처음부터 끝까지 프레임워크의 규칙을 따라 작성해야 합니다. 여러 라이브러리와 코드가 모여 프레임워크가 되는 것이라고 이해할 수도 있습니다.

구글 클라우드 플랫폼(Google Cloud Platform, GCP)은 구글의 클라우드 컴퓨팅 서비스입니다. 사용자들은 이 서비스를 통해 가상의 서버를 활용하여 웹사이트, 앱 등을 만들 수 있습니다. AWS, Azure와 함께 클라우드 컴퓨팅 3대장으로 불리고 있습니다.

서비스
Git은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템입니다. 개발자들 간 협업에 필수적인만큼, 구체적인 직군에 상관 없이 개발자라면 누구나 git을 다룰 줄 알아야 합니다.

Github는 git을 사용하는 프로젝트를 지원하는 웹호스팅 서비스로, git을 업로드 할 수 있는 웹사이트 이며 개발자들의 버전 제어 및 공동 작업을 위한 플랫폼입니다. git은 지역 저장소에서 사용되는 시스템인 것에 반해 github는 원격 저장소를 제공해주는 서비스입니다. 협업 프로젝트를 할 때 정말 유용한 툴이고, 자기 자신의 개발 이력도 남길 수 있으며, 다른 사람들의 소스를 보며 오픈 소스에도 기여할 수 있어 개발자라면 반드시 이용해야할 플랫폼입니다.

언어
Go는 2009년 구글의 세 명의 개발자가 발표한 프로그래밍 언어입니다. C++의 복잡함을 해소하기 위해 만들어졌으며, Go가 검색이 불편하기 때문에 Golang (고랭) 이라고도 많이 불립니다. 성능이 좋고 문법이 간결하다는 장점을 가지고 있습니다.

컴퓨터 그래픽스(영어: computer graphics, 약칭:CG)는 컴퓨터를 이용해 마치 사람이 실제 보는 것 같은 현실의 영상을 만드는 기술을 의미합니다.
관련 직군 : #게임 개발자

프레임워크
모든 것이 데이터가 되는 빅데이터의 시대가 옴에 따라, 대량의 데이터를 처리할 수 있는 방법이 필요해졌습니다. 하둡은 방대한 데이터를 저장, 처리하기 위해 분산 파일시스템, 분산 처리 시스템을 제공하는 오픈 소스 프레임워크입니다. 기능이 다양하고 접근성이 좋기 때문에 널리 사용되고 있습니다.

하이퍼 텍스트 마크업 언어(Hyper Text Markup Language, HTML)는 웹페이지의 뼈대를 구성하는 마크업 언어입니다. 엄밀히 말하면 Python, Java와 같은 프로그래밍 언어는 아닙니다. HTML을 통해 웹페이지가 어떤 구조를 가질지, 또 어떤 내용을 가지고 있을지 정의할 수 있습니다. CSS, Javascript와 함께 웹페이지를 만들 때 필수적인 구성요소 중 하나이며, 그 중에서도 가장 중요한 구성요소입니다. CSS 없이는 꾸며지지 않은 웹페이지가 만들어지고, Javascript 없이는 단조로운 웹페이지가 만들어지지만, HTML 없이는 아예 웹페이지가 만들어질 수도 없기 때문입니다.
관련 직군 : #프론트엔드 개발자

하드웨어는 데스크탑, 스마트폰, 스마트워치와 같이 우리가 만질 수 있는 물리적인 기계 장치를 의미합니다. 하드웨어는 그 자체로는 할 수 있는 것이 없기 때문에, 하드웨어에게 명령을 내릴 소프트웨어가 있어야 사용자가 해당 기기를 사용할 수 있게 됩니다.
관련 직군 : #임베디드 개발자

과거에는 서버나 DB와 같은 개발의 기반(Infrastructure)을 구축할 때 사람이 일일이 클릭을 해서 설정하곤 했습니다. 그러다보니 서버나 DB를 구성할 때마다 번거롭기도 하고, 관리하는 방식도 매우 비효율적이었습니다. 클라우드 컴퓨팅 시대로 넘어오며 이러한 문제점을 해결하기 위해 아예 다른 방식으로 인프라스트럭처를 바라보는 시각이 생겼는데, 그것은 바로 서버, DB 등의 인프라스트럭처를 코드로 작성하는 것입니다. 이와 같은 방식을 IaC(Infrastructure as Code, 코드형 인프라스트럭처)라고 합니다. 코드로 서버, DB를 관리하게 되면 여러 가지 장점이 있습니다. 가장 큰 장점은, 프로그램을 개발한 뒤에 꾸준히 버전 관리하는 것이 편리한 것처럼 서버와 DB도 편리하게 버전을 관리할 수 있게 된다는 것입니다. 또 다른 사람이 구축한 서버, DB 등을 바로 참고하는 것도 가능해집니다.
관련 직군 : #DevOps

기타
iOS는 애플의 아이폰에 탑재되는 모바일 운영 체제로, 사용자가 아이폰을 제어할 수 있도록 해주며, 아이폰에서 여러 프로그램이 돌아갈 수 있도록 합니다. Cocoa 등의 애플리케이션 프레임워크를 포함하고 있어, iOS 앱을 만들 때는 해당 프레임워크를 따르면 됩니다.
관련 직군 : #iOS 개발자

비가 오는 날 우산이 스스로 소리를 내 자신을 챙기라고 하거나, 냉장고에 유통기한 임박한 음식이 있는 걸 스마트폰 알림으로 확인할 수 있는 미래를 상상해 본 적 있나요? 사물인터넷(IoT, Internet of Things)은 이러한 상상을 현실로 만들어주는 기술로, 사물에 센서를 부착해 데이터를 수집한 뒤 이러한 사물들끼리 통신이 가능하도록 하는 것을 의미합니다. 우리 주변의 사물이 스스로 변화를 감지하게 되고, 사물들 간 소통이 가능해지기 때문에 스마트홈, 스마트팩토리, 스마트시티 등 아주 폭넓게 활용될 수 있습니다.
관련 직군 : #임베디드 개발자

ISMS란 Information Security Management System의 약어로, 최근에는 개인정보 보호 인증도 포함한 ISMS-P로 발전되어 쓰이고 있습니다. 개인정보를 포함한 정보들이 인증 기준에 맞게 잘 보호되고 있는지 인증할 수 있는 자격증입니다. 보안 분야 3대 자격증 중 하나입니다.
관련 직군 : #보안 엔지니어

자바는 1995년 개발된 객체 지향 프로그래밍 언어입니다. C, C++과 더불어 컴퓨터공학과에서 필수로 배우는, 컴퓨터 공학의 근간이 되는 언어 중 하나이며, 특히 웹 애플리케이션 분야에서 가장 많이 사용되는 언어 중 하나입니다. 최근에는 자바스크립트, 파이썬 등의 신흥 언어가 더 선호되는 경향이 있지만, 워낙 사용자가 많으며 안정적이고 기기 호환성이 높아 꾸준한 수요를 가지고 있습니다.

자바스크립트는 대표적인 프로그래밍 언어 중 하나입니다. HTML, CSS와 함께 웹을 구성하는 요소 중 하나로, HTML이 웹페이지의 뼈대, CSS가 디자인을 담당한다면 자바스크립트는 이들이 동적으로 움직이게 하는 역할을 합니다. 이 페이지에서 단어를 입력해 검색하는 과정이 바로 자바스크립트로 구현된 것입니다. 웹사이트의 프론트엔드를 구현할 때 주로 쓰이지만, Node.js와 같은 플랫폼을 통해 서버 구현에도 사용되고 있습니다. 자바(Java)와는 이름은 비슷하지만 전혀 관계가 없는 언어입니다.

젠킨스(Jenkins)는 CI(Continuous Integration)를 위해 사용하는 툴입니다. CI는 지속적 통합으로, 개발자들이 코드를 수정한 것을 합치고, 수정사항을 확인하는 과정을 자동화하여 다수의 개발자들 간 협업을 편리하게 만들어주는 것을 의미합니다. 과거에는 여러 개발자들이 만든 코드를 하나로 합칠 때 많은 시간과 노력이 들고 에러가 발생하기 쉬웠지만, 젠킨스와 같은 CI 툴을 통해 연속적으로 코드를 통합하는 것이 가능해졌습니다.
관련 직군 : #DevOps

서비스
jira는 버그 추척, 이슈 추적, 프로젝트 관리 기능을 제공하는 이슈추적 소프트웨어 입니다. jira는 짧은 주기의 개발단위를 반복하며 시제품을 만들어 나가는 사이클을 반복함으로써 고객의 요구 변화에 신속하고 유연하게 대응 가능한 ‘agile(애자일)’ 개발 방법론에 가장 적합한 소프트웨어입니다. 팀이 식별하고 있는 작업 항목의 단위로서 issue라는 기능이 존재하는데, 이를 통해 직장동료들에게 자신이 하고 있는 일을 설명하지 않아도 됩니다. 그리고 연관된 issue들의 집합으로 project를 만드는데 이 기능을 통해 쉽게 업무를 시각화 할 수 있습니다. 이외에도 다양한 기능들이 업무 효율을 높여 많은 기업들이 사용하고 있습니다.

아파치 카프카는 실시간으로 데이터 스트리밍을 처리할 수 있는 분산 데이터 플랫폼입니다. LinkedIn에서 처음 개발했는데, 하루에 1조 개 이상 발생하는 메시지를 처리하기 위해 개발을 시작했다고 합니다. 이처럼 다량의 데이터를 한 번에 많이, 빠르게 처리할 수 있는 플랫폼을 제공하고 있습니다.
관련 직군 : #DBA #백엔드 개발자

2010년에 설립된 데이터를 활용하여 문제를 해결하는 머신러닝 대회 플랫폼입니다. 세계 최대 데이터 과학자 커뮤니티로서 기업이 kaggle에 빅데이터를 제공하면 대회를 통해 전세계적인 사람들과 경쟁하고 또한, github처럼 다른 사람들과 코드를 공유하고 코드를 수정할 수 있는 등 데이터 사이언티스트를 직업으로 원하는 사람들에게는 필수적인 플랫폼입니다.

코틀린(Kotlin)은 2011년 공개된 크로스 플랫폼 오픈소스 프로그래밍 언어입니다. Java와 유사하지만 문법이 간결하고 안전성이 높아 최근 선호되고 있습니다. 특히 2017년부터 구글이 안드로이드의 공식 언어로 사용 중이며, 2019년부터는 구글 내부 프로젝트에서 Java 대신 Kotlin을 사용하고 있다고 합니다.

쿠버네티스(Kubernetes, 쿠베르네테스)는 컨테이너화된 애플리케이션의 자동 배포, 스케일링 등을 제공하는 관리시스템입니다. 과거에는 애플리케이션을 배포할 때 물리적인 서버가 필요했는데, 이 경우 유지가 까다로워 비용이 많이 든다는 단점이 있었습니다. 이를 보완하기 위해 이후 가상의 서버를 활용하는 방식(VM 실행)이 나왔고, 컨테이너 방식은 이러한 방식에서 더 나아가 복잡한 애플리케이션을 컨테이너로 추상화 하여 다루는 방식입니다. 쿠버네티스는 컨테이너의 배치, 스케일링, 운영 등을 자동화하는 역할을 하며, docker와 같은 다른 컨테이너 도구들과 함께 동작합니다.

리눅스(Linux)는 리눅스 커널, 그리고 리눅스 커널로 만든 운영 체제를 통칭하는 말입니다. 커널은 컴퓨터 운영 체제의 핵심이 되는 컴퓨터 프로그램으로, 보안, 자원관리 등 시스템의 모든 것을 통제합니다. 이러한 커널의 종류 중에 리눅스 커널이 있는 것이죠. 우리에게 익숙한 운영 체제인 Windows 운영체제는 NT커널을 기반으로 하며, macOS는 XNU커널을 기반으로 합니다. 이처럼 커널 별로 다른 운영체제들이 만들어질 수 있습니다. 다시 리눅스로 돌아가자면, 리눅스는 그 이름은 생소할지라도 현재 IT 시장에 막대한 영향을 끼치고 있습니다. 2017년 리눅스 재단의 발표에 따르면, 퍼블릭 클라우드 컴퓨팅 워크로드의 90%, 스마트폰의 82%, 임베디드 기기의 62%, 슈퍼 컴퓨터 시장의 99%가 리눅스로 작동한다고 합니다.

마이크로컨트롤러를 설명하기에 앞서, 마이크로컨트롤러의 구성 요소 중 하나인 마이크로프로세서는 컴퓨터의 CPU처럼 연산을 담당하는 매우 작은 회로를 의미합니다. 마이크로컨트롤러는 이러한 마이크로프로세서에 입출력 장치, 메모리를 더해 하나의 칩으로 구현한, 일종의 작은 컴퓨터입니다. 컴퓨터처럼 프로그램이 동작하지만, 사양이 매우 낮고 정해진 기능만 수행하는 단순화된 컴퓨터라고 생각하면 됩니다. 대표적으로 아두이노, 라즈베리파이가 마이크로컨트롤러의 예시입니다.
관련 직군 : #임베디드 개발자

ML은 machine learning의 약자로 인공지능의 한 분야 입니다. 머신러닝은 주로 대규모 데이터들에서 패턴과 상관관계를 찾고 분석을 토대로 최적의 의사결정과 예측을 수행하도록 훈련합니다. 머신러닝을 알고리즘 기법을 기준으로 크게 지도학습, 비지도학습, 강화학습으로 나눕니다. 입력과 출력 데이터 쌍을 모두 제공하는 지도학습, 입력데이터는 있지만 정답 데이터가 존재하지 않는 비지도학습, 규칙과 보상이 존재하여 경험을 통해 컴퓨터가 학습해 나가는 강화학습이 있습니다.

MS SQL(Microsoft SQL Server)은 마이크로소프트가 만든 RDBMS입니다. RDBMS란 데이터베이스를 관리/운영하기 위한 소프트웨어인데요, 문서 작성을 위해 한글이나 워드가 필요한 것처럼 관계형 데이터베이스를 다루기 위해서는 RDBMS가 필요한 것입니다. MS SQL은 그러한 RDBMS 중 하나로, MS SQL 이외에는 MySQL, Oracle 등이 유명한 RDBMS입니다.
관련 직군 : #DBA

마이크로서비스 아키텍처(microservice architecture)는 애플리케이션을 기능별로 분리시키고, 각 서비스들을 API로 느슨하게 결합시키는 서비스 구조를 말합니다. 과거에는 하나의 애플리케이션 안에 모든 서비스가 들어가있고, 하나의 DB를 여러 서비스들이 공유하고 있었습니다. 이러한 구조는 Monolithic이라고 하는데요, 예를 들어 쇼핑몰 앱에서 고객 관리, 제품 관리, 리뷰 관리 등의 기능을 커다란 덩어리로 한 번에 개발/관리하는 식입니다. 마이크로서비스 아키텍처는 이와 반대로 각 기능들을 아예 앱에서 분리 시켜 각각 개발/관리하며, DB도 기능별로 분리되어 있습니다. 각 기능들을 하나의 앱으로 합칠 때는 API로 호출하는 방식을 사용합니다. 이렇게 앱을 기능별로 쪼개서 관리하면, 서비스 업데이트가 편리해지고, 서비스 전체에 영향을 미치는 치명적 에러를 줄일 수 있으며, 불필요한 자원 낭비 또한 감소하게 됩니다.
관련 직군 : #백엔드 개발자

모델-뷰-프리젠터(model-view-presenter, MVP)는 모델-뷰-컨트롤러(MVC) 패턴에서 파생된 패턴입니다. 이때 View는 사용자들이 보는 화면이며, Model은 화면 상에서 무언가 조작해서 변하는 값이 저장되는 곳입니다. MVC 패턴에서는 Model과 View가 직접적으로 통신하지만, MVP 패턴에서는 Presenter가 Model과 View 사이 중개자 역할을 해줘 소스가 꼬이는 것을 막아줍니다.
관련 직군 : #안드로이드 개발자

모델-뷰-뷰 모델(model-view-viewmodel, MVVM)은 개발에 쓰이는 디자인 패턴 중 하나입니다. Model, View, Viewmodel로 구성되어 있으며, 각 구성요소들이 자기만의 역할을 해 원활하게 웹/앱이 실행되도록 합니다. Model은 사용되는 데이터를 처리하는 역할을 하며, View는 사용자가 보는 화면을 처리합니다. 마지막으로 Viewmodel은 View를 위한 Model로, View를 나타내기 위한 데이터 처리를 합니다. MVVM 모델은 각각의 구성요소가 독립적이라는 장점이 있습니다.

MySQL은 대표적인 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 데이터를 저장하고 관리하는 것을 보다 편리하게 하기 위한 시스템이 관계형 데이터베이스 관리 시스템(RDBMS)인데요, MySQL은 무료이고 다양한 운영체제에서 사용할 수 있기 때문에 오라클 DB 다음으로 가장 널리 사용되는 RDBMS입니다.
관련 직군 : #DBA #백엔드 개발자

nft는 non-fungible token의 약자로 대체 불가능한 토큰이라는 뜻입니다. 블록체인 기술을 활용하여 디지털 자산의 소유주를 증명할 수 있습니다. 현재 주로 예술작품이나 게임등에 많이 사용되며 대표적인 nft로 BAYC(Bored Ape Yacht Club)등이 있습니다. 또한 대표적인 nft 거래소는 OpenSea등이 있습니다.

서비스
node js는 javascript로 서버를 만들 수 있게 해주는 툴 입니다. 공식적인 정의는 크롬 V8 엔진을 기반으로 한 javascript 런타임이고 쉽게 말해 성능이 정말 좋은 크롬 엔진을 따로 때어내서 javascript를 실행할 수 있는 환경이라고 생각하면 됩니다. 서버를 만들 때 java, c#, python 같은 언어들을 배우지 않아도 되기 때문에 frontend 엔지니어들의 지지를 많이 받아 현재 많은 기업에서도 사용되고 있습니다.

기타
NoSQL은 nonSQL, 즉 SQL이 아닌 것들을 의미합니다. SQL은 마치 엑셀 스프레드시트처럼 행과 열로 이루어진 관계형 데이터베이스를 다룹니다. NoSQL은 이런 방식의 데이터베이스 외의 데이터베이스를 다룹니다. 이러한 데이터베이스들은 구조를 신경 쓸 필요가 없어 데이터를 저장할 때는 편리하지만, SQL문과 같은 단순한 쿼리가 통하지 않기 때문에 데이터를 어떻게 읽고 쓸지 추가로 고민해야 합니다. NoSQL의 대표적인 예로 Document DB, Graph DB, Key-Value DB가 있습니다. Document DB 중 가장 유명한 mongoDB는 JSON 형태로 데이터를 저장하기 때문에 데이터를 저장할 때 형식에 구애받지 않을 수 있습니다. Graph DB는 노드와 엣지로 이루어진, 주로 관계망 데이터를 나타내는 DB입니다.
관련 직군 : #DBA

Objective-C(영어: Objective-C)는 C를 기반으로 한 객체 지향 언어입니다. Swift 등장 이전까지는 애플의 주요 프로그래밍 언어였습니다. Objective-C는 1983년에 개발된 만큼 유명하고 안정적인 언어이지만, 배우기가 어렵고 보안성이 떨어진다는 단점이 있어 최근 iOS 개발자들은 Swift로 개발 공부를 시작하는 경우가 많습니다.
관련 직군 : #iOS 개발자

오픈 그래픽 라이브러리(영어: Open Graphics Library 줄여서 OpenGL)는 컴퓨터로 3D 그래픽 화면을 그리기 위해 필요한 기능들을 모아둔 API입니다. 마이크로소프트의 Direct3D와 함께 컴퓨터 그래픽스계의 쌍두마차를 달리고 있으며, 관련 자료가 많아 3D 그래픽스 분야 입문에 좋습니다.
관련 직군 : #게임 개발자

오라클 데이터베이스(Oracle Database 또는 Oracle RDBMS)는 미국 오라클(Oracle)사의 관계형 데이터베이스 관리 시스템의 이름입니다. 현재 유닉스 환경에서 가장 널리 사용되는 RDBMS입니다.
관련 직군 : #DBA

운영체제는 컴퓨터, 스마트폰과 같은 하드웨어와 시스템을 제어하고 하드웨어에 각종 프로그램이 돌아갈 수 있도록 지원하는 시스템 소프트웨어입니다. 이를 통해 사용자가 컴퓨터, 스마트폰을 쉽게 다룰 수 있도록 하고 여러 프로그램이 효율적으로 작동되도록 합니다. 대표적인 운영체제로는 마이크로스프트 윈도우, 맥 OS, 리눅스 등이 있습니다.

라이브러리
pandas는 데이터를 쉽게 다룰 수 있고 표현이 풍부한 데이터 구조를 제공 해주는 python 라이브러리 입니다. 기존 python의 리스트나 배열이 아닌 pandas의 자체적인 자료구조 series, dataframe등을 사용하여 데이터 전처리를 굉장히 쉽게 할 수 있습니다.

PostgreSQL(포스트그레스큐엘)은 RDBMS(Relational DataBase Management System)의 일종으로, 관계형 데이터베이스를 다루는 시스템입니다. 오픈소스 프로젝트로서, 관계형 DB외 다른 DB들도 다루는 NoSQL 기능들을 빠르게 발전시키고 있어 최근 그 인기가 더욱 커지고 있습니다. 또 SQL 표준을 잘 준수하고 있는 대표적인 RDBMS입니다.
관련 직군 : #DBA

관련 직군 : #

파이썬(Python)은 1991년 발표된 프로그래밍 언어로, 배우기 쉬우면서도 인기가 높아 입문자가 배우기 가장 적합한 언어로 꼽힙니다. 난이도만 쉬울 뿐만 아니라, 각종 라이브러리가 풍부하여 웹개발, 보안 등 분야를 가르지 않고 매우 인기가 많으며 특히 데이터 분석, 머신러닝 분야에서 활발히 쓰이고 있습니다. 인기가 많은만큼 파이썬 커뮤니티도 크기 때문에 관련 정보를 얻기도 좋고, 다양한 분야로 뻗어나가기도 좋습니다. 하지만 성능은 그렇게 좋지 않기 때문에 C, Java 등의 기존 언어를 완전히 대체하지는 못 합니다.

라이브러리
PyTorch는 Python 언어를 사용하는 오픈소스 머신 러닝 라이브러리입니다. 머신러닝 기법 중에서도 뉴럴 네트워크를 사용하는 딥러닝 분야에 활발히 사용됩니다. Torch라는 Lua 언어의 오픈소스 머신러닝 라이브럴리를 기반으로 만들어졌습니다. 속도가 상당히 빠르며, 기존 머신 러닝 라이브러리 중 가장 사용자가 많은 Tensorflow보다 난이도가 쉽다는 평가를 받고 있습니다.

기타
RDBMS는 Relational DataBase Management System의 약자로 관계형 모델을 기반으로 한 DBMS 유형입니다. RDBMS 테이블들은 서로 연관되어 있어 DBMS보다 효율적으로 데이터를 구성 및 관리할 수 있고, 정규화를 통해 데이터 중복을 최소화하여 트랜잭션을 쉽게 수행하게 해줍니다. 모든 데이터는 2차원 테이블 형태이며 MSSQL, MySQL, Oracle등이 RDBMS의 대표적인 예시입니다.
관련 직군 : #DBA #백엔드 개발자

아마존 RDS(Amazon Relational Database Service)는 아마존 AWS 서비스의 일부인 분산 관계형 데이터베이스입니다. 일반적인 RDBMS, 즉 MySQL, Oracle은 대부분 개발자가 직접 자신의 컴퓨터에 이러한 서비스를 설치함으로써 DB를 관리하게 됩니다. 이럴 경우 성능, 백업, 보안과 같은 문제가 발생할 수 있는데요, 아마존 RDS를 사용하면 서비스 상에서 자동으로 운영/관리가 되기 때문에 사용자들은 DB 관리에 큰 힘을 들일 필요가 없게 됩니다. RDS 상에서 MySQL, Oracle 등의 대표적이고 익숙한 RDBMS 등을 사용할 수 있으며, Aurora 같은 클라우드형 DB도 사용 가능합니다.
관련 직군 : #DBA

라이브러리
리액트(React.js)는 부드러운 화면 전환이나, 화면 크기에 따라 웹사이트 배치가 바뀌는 웹사이트를 만드는 데 사용되는 자바스크립트 라이브러리입니다. 프론트엔드 개발에 쓰이는 SPA(Single Page Application) 중 가장 사용자가 많은 라이브러리입니다. 리액트와 같은 SPA를 사용하면 추후 앱으로 발행할 때 편하고, 완성된 웹사이트의 사용감이 좋다는 장점이 있어 최근 대부분의 기업에서 리액트를 사용하고 있습니다. 난이도는 일반 자바스크립트에 비해 어려운 것으로 평가됩니다.

리액트 네이티브(React Native)는 페이스북이 개발한 크로스플랫폼 프레임워크입니다. 자바스크립트 언어로 안드로이드앱, iOS 앱, 웹앱을 만들 수 있습니다. React 문법과 유사하고 Javascript를 사용하기 때문에, 같은 크로스플랫폼 프레임워크인 플러터보다 사용자가 많습니다.

관련 직군 : #

라이브러리
리덕스(Redux)는 리액트와 함께 쓰이는 자바스크립트 라이브러리로, state를 관리할 때 쓰는 라이브러리입니다. State는 쉽게 말하자면 애플리케이션에 쓰이는 데이터입니다. 리액트의 특성 상 한 페이지 안에서도 데이터를 주고 받기 힘들고, 데이터들을 한 곳에서 관리하기도 힘듭니다. 이러한 문제를 해결해주는 것이 리덕스 라이브러리입니다.
관련 직군 : #프론트엔드 개발자

기타
관련 직군 : #

로봇 운영체제(ROS,Robot Operating System)는 로봇용 OS로, 로봇 응용 프로그램 개발에 필요한 다양한 기능을 제공합니다. 대표적으로는 기존에 존재하는 다양한 로봇 오픈소스에 대한 접근, 디버깅, 시뮬레이션 툴 제공 등이 있습니다. 하지만 ROS를 실무에 사용하기에는 실시간성이 보장되지 않고 보안이 취약하다는 등의 문제점이 발견되며, 아예 구조를 새롭게 해 이러한 취약점을 보완한 ROS2가 나오게 되었습니다.
관련 직군 : #임베디드 개발자

RTOS(Real Time Operating System)는 운영체제의 종류로, Windows, Mac과 같은 일반적인 목적의 운영체제보다 CPU 시간 관리에 엄격해 절대 과업의 기한이 밀리지 않게 한다는 특징을 가지고 있습니다. 또 여러 과업을 동시에 돌릴 수 있다는 것도 RTOS의 큰 장점입니다.
관련 직군 : #임베디드 개발자

러스트(Rust)는 2010년 처음 발표된 프로그래밍 언어로, 신생 언어이지만 프로그래머들에게 많은 사랑을 받고 있습니다. 러스트는 C, C++만큼 빠르면서도 더 안전하고, 배우기는 조금 어렵지만 친절한 컴파일러가 디버깅에 큰 도움을 준다는 장점이 있어, C, C++을 대체할만한 언어로 각광 받고 있습니다. 메모리를 다룰 때 'Ownership' 개념을 도입해, 기존의 프로그래밍 언어들과 다르게 메모리를 할당하고 관리한다는 것이 큰 특징입니다.
관련 직군 : #블록체인 개발자

라이브러리
RxJava는 ReactiveX를 Java 언어에 적용한 것입니다. ReactiveX는 함수형 프로그래밍의 장점을 극대화한 라이브러리인데요, 함수형 프로그래밍은 변수를 선언하지 않고 내장함수들로 코드를 짜는 프로그래밍 방식으로, 변수로 인한 오류를 방지할 수 있다는 장점이 있습니다. ReactiveX는 여기에 더해 시간의 흐름, 사용자의 클릭 등에 따라 코드가 비동기로 실행되도록 해 애니메이션 컨텐츠, 인터렉티브 컨텐츠를 보다 효과적으로 만들 수 있도록 합니다. RxJava는 넷플릭스의 기술 블로그에 처음 소개 되었는데, Java 사용 시 동시성 처리의 까다로움, 콜백 문제 등을 개선하기 위해 ReactiveX를 도입했다고 밝혔습니다.
관련 직군 : #안드로이드 개발자

RxSwift(Reactive Swift)는 ReactiveX를 Swift 언어에 적용한 것입니다. ReactiveX는 함수형 프로그래밍의 장점을 극대화한 라이브러리인데요, 함수형 프로그래밍은 변수를 선언하지 않고 내장함수들로 코드를 짜는 프로그래밍 방식으로, 변수로 인한 오류를 방지할 수 있다는 장점이 있습니다. ReactiveX는 여기에 더해 시간의 흐름, 사용자의 클릭 등에 따라 코드가 비동기로 실행되도록 해 애니메이션 컨텐츠, 인터렉티브 컨텐츠를 보다 효과적으로 만들 수 있도록 합니다. RxSwift는 Swift 상에서 비동기 구현을 이해하기 쉽도록 하며, 앱 개발에서 많이 사용되는 MVVM 패턴과도 밀접한 관련이 있어 최근 많이 사용되고 있습니다.
관련 직군 : #iOS 개발자

Scala는 객체지향과 함수형 프로그래밍 요소가 결합된 언어입니다. 자바가상머신(JVM)위에서 실행되어 Java의 모든 라이브러리를 사용 가능합니다. 함수형 프로그래밍은 수학적인 함수를 기반으로 자료를 처리합니다. 순수함수와 같이 오로지 매개변수에만 의존하는 함수를 사용하고 외부의 상태 혹은 함수에 인자로 전달된 데이터의 상태를 변하게 하지 않음으로써 예상치 못한 에러에서 자유로워집니다. Scala는 변경 불가능한 immutable한 변수들이 많아 병렬 프로그래밍 처리에 적합합니다. 또한, 같은 코드를 Java로 작성할 때보다 scala로 작성할 때 간결하게 작성이 가능하고, 바이트 코드 최적화를 통한 Java보다 속도도 빠르며, 타입추론 기능이 있어 따로 타입을 적을 필요 없는 특징을 가지고 있습니다.
관련 직군 : #DBA

Shader는 컴퓨터로 3D 화면을 그릴 때 사용되는 소프트웨어 명령의 집합입니다. 3D 컴퓨터 그래픽 기술이 처음 발전될 무렵에는 하드웨어에 상관 없이 개발을 할 수 있도록 Direct 3D, OpenGL과 같은 라이브러리가 나왔고 3D 그래픽스에 대한 통용되는 규칙 같은 것들이 마련되었습니다. 하지만 이로 인해 시각적인 다양성, 개발의 다양성이 감소하였는데요, 이를 보완하기 위해 나온 것이 Shader입니다. Shader를 통해서는 개발자의 의지에 따라 보다 다양한 질감, 효과가 구현 가능합니다.
관련 직군 : #게임 개발자

컴퓨터, 스마트폰과 같은 하드웨어 안에는 운영체제가 있어, 하드웨어에 각종 프로그램이 돌아갈 수 있습니다. 이러한 운영체제의 핵심이 되는 부분이 커널로, 시스템의 모든 것을 통제하는 역할을 합니다. 이처럼 중요한 커널에 사람이 직접 접근하는 것은 매우 어려운 일이기 때문에, 쉘이 필요해집니다. 쉘은 사용자와 커널 사이를 연결해주는 프로그램으로, 쉘을 통해 명령어를 입력하면 해당 명령이 커널이 이해할 수 있는 방식으로 커널에게 전해지고, 커널은 하드웨어를 제어해 결과적으로 사용자의 명령이 실행되게 됩니다. 쉘의 종류에는 대표적으로 bash, zsh가 있습니다.
관련 직군 : #보안 엔지니어

언어
Solidity란 이더리움과 같은 블록체인 플랫폼 상의 smart contract 작성을 위해 개발된 계약 지향 프로그래밍 언어입니다. c++, python, javascript의 영향을 받은 고수준의 프로그래밍 언어이고 turing complete 언어이기에 반복문과 제어문등을 사용할 수 있습니다.
관련 직군 : #블록체인 개발자

프레임워크
아파치 스파크(Apache Spark)는 데이터 관리, 데이터 분석에 쓰이는 프레임워크입니다. 하둡과 유사하게 데이터를 분산병렬 방식으로 처리하지만, 데이터 처리가 디스크가 아닌 메모리에서 이루어지기 때문에 하둡보다도 더 빠른 속도가 특징입니다. 또 스칼라, 자바, 파이썬, R 등 기존에 데이터 분야에서 많이 사용되던 언어들을 지원하기 때문에 빠르게 익힐 수 있습니다. 원래 캘리포니아 대학교 버클리의 AMPLab에서 개발된 스파크의 코드베이스는 나중에 아파치 소프트웨어 재단에 기부되었으며 그 이후로 계속 유지 보수를 해오고 있습니다. 스파크는 암시적 데이터 병렬성과 장애 허용과 더불어 완전한 클러스터를 프로그래밍하기 위한 인터페이스를 제공합니다.

스프링 프레임워크(Spring Framework)는 MVC 웹 프레임워크 중 자바 언어를 사용하는 프레임워크입니다. MVC 웹 프레임워크는 Model, View, Controller의 줄임말로, 웹사이트 운영에 필요한 다양한 기능을 데이터를 관리하는 Model, 사용자가 보는 화면을 관리하는 View, 그리고 Model과 View를 연결해주는 Controller로 나눠 구현하는, 일종의 백엔드 개발의 틀을 제공해줍니다. 언어별로 다양한 MVC 프레임워크가 있는데, 그 중 자바 언어를 사용하는 것이 스프링 프레임워크입니다. 스프링 외에는 파이썬을 사용하는 Django, PHP를 사용하는 Laravel, Ruby를 사용하는 Ruby on Rails 등의 MVC 프레임워크가 존재합니다.
관련 직군 : #백엔드 개발자

SQL은 데이터베이스, 그중에서도 관계형 데이터베이스를 다루는 언어입니다. SQL이 사용되는 데이터베이스는 엑셀 시트처럼 행과 열로 이루어져 있기 때문에 직관적으로 이해하기 좋습니다. 또 명령어들이 SELECT, FROM로 단순해서 배우기에도 쉽습니다. 특정 조건을 만족하는 행만 추출하고 싶을 때, 특정 열이 작은 값부터 오름차순으로 데이터를 정렬하고 싶을 때 등 다양한 경우에 간단한 명령어로 결과를 도출할 수 있습니다.

SSR(Server Side Rendering)이란, 서버에서 미리 페이지를 다 그린 뒤에 클라이언트(사용자의 기기)에 보내, 클라이언트는 사용자에게 화면을 바로 보여줄 수 있도록 하는 웹개발 방식입니다. CSR(Client Side Rendering)의 반대 개념으로, CSR이 부드러운 사용자 경험을 제시하지만 로딩이 느려지는 단점을 가지고 있는 반면, SSR은 서버 상에서 페이지를 다 그려놓기 때문에 로딩이 빠르다는 장점이 있습니다. 최근 인기 라이브러리인 React, Vue.js 등은 기본적으로 CSR 방식인데, 이로 인해 속도 측면의 문제가 발생하며 CSR의 장점과 SSR 방식의 장점을 합치려는 시도가 늘고 있습니다. 그러한 시도 중에 하나가 Next.js 입니다.
관련 직군 : #프론트엔드 개발자

Swift는 애플이 아이폰과 맥 등 자사 운영체제에 사용하기 위해 2014년에 만든 프로그래밍 언어입니다. 문법이 단순하고 성능이 좋아 개발자들에게 인기가 많은 언어입니다.

기타
SwiftUI는 모든 애플 플랫폼에서 사용자 인터페이스를 만들 수 있게 해주는 프레임워크 입니다. Swift 언어를 기반으로 선언형 프로그래밍 방식을 가지고 있습니다. 무엇을 어떻게 할 것인지에 초점을 맞추는 명령형 프로그래밍과는 달리, 어떤 일이 발생해야 하는지만 알려주고 해당 일이 발생하는 방법과 원리는 추상화 아랫단으로 감추는 방식이 선언형 프로그래밍입니다. 그로인해 코드 예측이 쉽고, 가독성도 올라가는 장점을 가지고 있습니다. 또한, 캔버스 영역 안의 preview를 통해 결과물을 바로 확인할 수 있어 수정된 부분을 바로 확인할 수 있는 편리함도 갖추고 있습니다.
관련 직군 : #iOS 개발자

Tableau(태블로)는 데이터 수집부터 분석, 시각화에까지 사용할 수 있는 데이터 툴입니다. 특히 시각화에 방점이 찍혀 있어, 직관적인 그래프 시각화, 지도 시각화, 인터랙티브 시각화 등을 쉽고 간편하게 만들어 낼 수 있습니다. 복잡한 코딩 없이도 데이터 시각화가 가능하다는 것이 장점입니다.

텐서플로우(TensorFlow)는 구글에서 만든 머신 러닝 라이브러리로, PyTorch와 함께 머신 러닝 분야에서 가장 활발히 사용되는 라이브러리입니다. C++, Go, Java 등의 언어를 지원하지만 대부분은 Python을 사용합니다. PyTorch보다 비직관적이라는 평이 있지만, 사용자가 많아 커뮤니티가 잘 조성되어 있습니다.

테라폼(Terraform)은 IaC(Infrastructure as Code) 툴입니다. IaC란, 서버나 DB 같은 개발의 기반(Infrastructure)을 구축할 때 코드를 사용해서 구축하는 것을 말하며, 클라우드 컴퓨팅과 함께 급부상한 개념 중 하나입니다. 테라폼을 사용하면 코드를 통해 인프라스트럭쳐를 새로 생성하거나, 유지관리하는 것이 가능해지기 때문에 관리 측면에서 훨씬 편리해집니다. AWS, 마이크로소프트 애저, GCP 등 주요 클라우드 서비스, 각종 데이터베이스, 쿠버네티스와 같은 클라우드 배포 시스템까지 다양한 서비스를 제공해 범용성이 큰 것도 장점입니다.
관련 직군 : #DevOps #보안 엔지니어

Typescript란 javascript의 확장판으로 javascript에 타입을 부여한 언어입니다. 이 기능 덕분에 개발도구에게 개발자의 의도나 목적을 더 명확하게 전달할 수 있고 그로 인해 코드 자동완성 및 에러 알림도 javascript보다 더 명확하게 받을 수 있는 장점이 있습니다.

관련 직군 : #

기타
UI UX는 사용자 인터페이스와 사용자 경험을 통칭해 이르는 말입니다. UI(사용자 인터페이스)는 화면에 보여지는, 사용자가 만질 수 있는 인터페이스의 디자인을 말하며, UX(사용자 경험)은 사용자가 서비스를 사용하며 겪는 경험의 흐름, 그리고 그에 따른 감정과 생각 등을 말합니다.

Unity는 unreal 엔진과 함께 양대산맥을 이루고 있는 게임 엔진 입니다. 2D, 3D게임 제작뿐 아니라 가상현실, 3D 애니메이션 등의 컨텐츠 제작을 unity가 쉽게 제작할 수 있도록 돕습니다. c#언어 기반이고 unreal 엔진에 비해 입문자 친화적이고 가벼운 편이라 저사양 게임들은 무리없이 개발 가능합니다.
관련 직군 : #게임 개발자

언리얼 엔진(Unreal Engine)은 3D 게임 엔진으로, Unity와 함께 게임 엔진 산업을 양분하고 있습니다. 초창기 Unity가 사용자 친화적이고 가벼운 게임 엔진을 추구했다면, 언리얼 엔진은 처음부터 최고의 기술력을 추구하며 가장 높은 기술력을 보유한 게임 엔진으로 거듭났습니다.
관련 직군 : #게임 개발자

Computer vision은 컴퓨터가 사진, 영상과 같은 시각적인 데이터를 이해할 수 있도록 하는 연구 분야입니다. CNN과 같은 딥러닝 알고리즘을 매우 적극적으로 활용하고 있습니다.
관련 직군 : #게임 개발자

가상현실(Virtual Reality, VR)은 컴퓨터와 같은 기술로 만들어 낸, 마치 진짜 같은 가상의 환경을 의미합니다. 컴퓨터로 만든 환경에 온전히 몰입할 수 있도록 시야를 완전히 채우는 VR기기를 사용해 VR을 체험할 수 있습니다. VR과 유사한 기술로는 현실에 가상의 이미지를 더하는 증강현실(Augmented Reality, AR)이 있습니다.
관련 직군 : #게임 개발자

기타
web 3.0은 semantic web으로도 불리는데 웹 페이지에 담긴 내용을 이해하고 개인 맞춤형 정보를 제공할 수 있는 인공지능 웹입니다. 또한, web 2.0의 핵심인 읽기와 쓰기를 넘어 소유의 개념이 더해진 것으로 인공지능과 블록체인 기반으로 맞춤형 정보를 제공하는 초개인화된 인터넷 환경입니다.
관련 직군 : #블록체인 개발자

라이브러리
web3.js는 ethereum 네트워크와 상호작용 할 수 있는 기능들을 제공하는 javascript 라이브러리입니다. ethereum 노드들은 JSON-RPC라고 불리는 언어들만 소통 가능한데 스마트 컨트랙트 주소, 실행하고자 하는 함수 및 변수들을 일일이 적다보니 사람들이 직접 활용하기 복잡해져 web3.js가 등장하게 되었습니다. web3.js에는 스마트 컨트랙트를 위한 모듈뿐만 아니라 탈중앙화 파일 스토리지를 위한 모듈, Dapp 개발자들을 위한 헬퍼 함수들을 모아둔 모듈 등 다양한 모듈들이 존재합니다.
관련 직군 : #블록체인 개발자

webpack이란 자바스크립트를 위한 모듈 번들러입니다. 개발규모가 커지다보면 유지보수와 재사용의 이유로 파일을 분리하게 되고 각각 분리된 파일들을 우리는 모듈이라고 합니다. 웹 사이트에 있는 유저의 요청에 의해 server로 부터 html, css, image, javascript 파일들을 불러오는데, 모듈화를 통해 파일의 개수가 점점 늘어난다면 네트워크 비용 증가로 페이지 로딩이 느려지게 되는 문제점이 있습니다. 이런 문제를 해결하기 위해 webpack이 등장하였고 배포 전에 html, css, image, javascript 파일들을 한 파일로 묶어주는 bundling 작업을 하여 네트워크 비용이 감소시킵니다.
관련 직군 : #프론트엔드 개발자

Vue.js는 SPA(Single Page Application)의 일종으로, 화면 전환을 앱처럼 깔끔하게 만들고 반응형 웹을 만들기 쉽다는 장점이 있습니다. Vue.js 외에 React, Angular가 대표적인 SPA인데, React가 사용자가 가장 많기는 하지만 Vue.js는 개발 할 때 규칙이 명확해 React에 비해 난이도가 낮고, 그렇기 때문에 SPA 입문자에게 추천되기도 합니다.
관련 직군 : #프론트엔드 개발자

Next.js는 React로 만든 웹 애플리케이션에서 발생하는 렌더링 문제를 해결하기 위해 사용하는 프레임워크입니다. React로 만든 웹사이트는 기본적으로 클라이언트 사이드 렌더링이기 때문에, 사용자가 웹사이트에 접속해야만 React가 UI를 만들어 때에 따라 웹사이트 화면 로딩이 오래 걸리는 문제가 발생합니다. 이러한 문제를 해결하기 위해 Next.js는 마크다운 페이지를 미리 생성하거나, 서버 상에서 코드를 모두 실행시키는 등의 해결책을 제시합니다.
관련 직군 : #프론트엔드 개발자

기타
REST(Representational State Transfer)는 개발자들 간 서로의 코드를 잘 이해할 수 있도록 지키는 일종의 형식이고, RESTful API는 REST 방식을 잘 지켜 만든 API를 말합니다. API는 개발자들 간에 서로 자세한 코드나 데이터를 모르더라도 필요한 기능을 요청하면 사용할 수 있다는 장점이 있는데요, 이러한 API의 장점이 온전히 발휘되기 위해서는 요청을 보내는 형식만 보고도 이 요청이 어떤 기능을 할지 파악할 수 있어야 합니다. 그러려면 요청을 보내는 방식과 대응되는 기능에 규칙이 필요해집니다. 이때 쓰는 규칙이 바로 REST입니다. REST 규칙에는 url에 명사 쓰지 않기, POST, GET과 같은 HTTP 메소드 활용하기 등이 있습니다. 특정 형식을 요구하는 것이기 때문에 언어나 프레임워크에 상관 없이 해당 규칙을 잘 따르는 API가 RESTful API가 됩니다.

AI(인공지능)란 인간을 모방하여 다양한 작업을 수행하고 반복적으로 개선할 수 있는 시스템 또는 기계를 말합니다. 유튜브의 영상 추천이나, 구글 포토의 얼굴 인식 기능 모두 인공지능을 활용한 것입니다. 인공지능을 통해 인간의 한계를 뛰어넘는 일들이 가능해짐에 따라 분야를 막론하고 인공지능 관련 지식을 요구하는 경우가 늘고 있습니다.