컴퓨터에게 일을 시키기 위한 명령어들의 모음입니다. 우리가 컴퓨터에게 원하는 일을 시킬 때, 그 일에 필요한 명령어들을 모아 놓은 것이라고 생각하면 되는데요. 예를 들어, 게임을 하거나 웹사이트를 보거나 문서를 작성하는 등의 모든 활동은 프로그램을 통해 이루어집니다.
프로그램을 만들 때 사용되는 언어입니다. 컴퓨터가 이해할 수 있는 언어로 명령을 전달하기 위해 쓰입니다. 대표적인 프로그래밍 언어로는 HTML, CSS, JavaScript, Python, Java, C++ 등이 있습니다.
코드는 프로그램을 만들 때 사용하는 언어로 쓰인 글입니다. 프로그램을 만들려면 우리가 이해할 수 있는 언어로 명령을 내려야 하는데, 이를 컴퓨터가 이해할 수 있는 언어로 바꾼 것이 코드입니다.
버그는 프로그램에 있는 작은 실수로 인해 프로그램이 잘못 동작하는 것을 말합니다. 프로그램을 만들 때 실수를 하거나 명령을 잘못 내리면, 프로그램이 예상대로 동작하지 않을 수 있는데요. 이런 문제들을 버그라고 부르고, 버그를 고치는 일을 디버깅이라고 합니다.
알고리즘은 문제를 해결하기 위한 방법입니다. 예를 들어, 숫자를 크기 순서대로 정렬하는 방법이나 특정한 작업을 수행하는 방법 등을 말합니다.
변수는 값(숫자나 글자)을 저장하는 상자라고 이해하면 편합니다. 변수에는 어떤 값이든 넣을 수 있고, 그 값은 나중에 바꿀 수도 있습니다.
함수는 특정한 작업을 수행하는 코드의 모음입니다. 우리가 자주 사용하는 작업들을 함수로 묶어놓고, 그 함수를 호출해서 사용할 수 있습니다.
클래스는 비슷한 특징을 가진 것들을 모아놓은 설계도와 그 설계도에 따라 만들어진 물건이라고 생각하면 편합니다. 예를 들어, '사람'이라는 클래스에는 사람들의 공통된 특징이 있고, '영희'나 '철수'처럼 실제로 존재하는 사람은 객체입니다.
데이터베이스는 구조화된 데이터를 저장하고 검색할 수 있는 시스템입니다. SQL은 데이터베이스에서 데이터를 조작하고 쿼리하는데 사용되는 언어입니다.
프론트엔드는 사용자가 직접 보고 상호작용하는 웹 페이지나 애플리케이션의 부분을 말합니다. HTML, CSS, JavaScript를 사용하여 웹사이트의 사용자 인터페이스를 개발합니다. React, Angular, Vue.js 등을 활용하여 동적이고 사용자 친화적인 웹 애플리케이션을 구축합니다.
백엔드는 서버, 데이터베이스 등을 포함한 웹사이트나 애플리케이션의 '뒷단'을 의미합니다. 서버 쪽 작업을 담당하여 데이터를 처리하고 사용자에게 제공합니다. Java, Python, JavaScript(Node.js) 등의 언어를 사용하며, Spring, Django, Express.js 등의 프레임워크를 활용합니다.
HTML은 웹 페이지를 만들 때 사용하는 언어입니다. 웹 페이지의 내용을 구조화하여 표시하고, 링크를 설정하고, 이미지를 삽입하고, 텍스트 스타일을 지정하는 등의 작업을 할 때 사용됩니다.
CSS는 웹 페이지의 디자인과 레이아웃을 결정하는 언어입니다. 웹 페이지의 색깔, 글자 크기, 배치 등을 CSS로 지정할 수 있습니다.
JavaScript는 웹 페이지에 동적인 요소를 추가하기 위한 프로그래밍 언어입니다. 우리가 웹 페이지를 보면서 움직이는 이미지나 게임 같은 것들이 JavaScript로 만들어져 있습니다.
서버용 컴퓨터를 임대해 주는 서비스를 말합니다.
안드로이드 플랫폼을 위한 모바일 앱을 개발합니다. Java 또는 Kotlin 언어를 사용하여 안드로이드 앱을 개발하고, Android Studio 등의 통합 개발 환경을 사용합니다.
iOS 플랫폼을 위한 모바일 앱을 개발합니다. Swift 또는 Objective-C 언어를 사용하여 iOS 앱을 개발하고, Xcode 등의 통합 개발 환경을 사용합니다.
React Native는 JavaScript와 React를 사용하여 iOS 및 안드로이드 앱을 개발할 수 있는 Meta의 오픈 소스 프레임워크입니다.
Flutter는 Dart 언어를 사용하여 안드로이드 및 iOS용 네이티브 앱을 개발할 수 있는 Google의 오픈 소스 프레임워크입니다.
크로스 플랫폼 개발은 한 번의 코드 작성으로 iOS 및 안드로이드 용 앱에서 모두 작동되도록 구축하는 것을 말합니다. 이를 통해 앱 개발자는 더 적은 노력으로 더 많은 플랫폼에서 앱을 제공할 수 있게 됩니다. React Native와 Flutter는 대표적인 크로스 플랫폼 개발 도구입니다.
게임의 핵심 기능을 제공하는 소프트웨어 플랫폼으로, 그래픽 렌더링, 물리 엔진, 사운드 처리, 애니메이션, 인공지능 등의 기능을 포함합니다. Unity, Unreal Engine 등이 대표적인 게임 엔진입니다.
게임 내에서 사용되는 모든 요소를 말합니다. 예를 들어, 게임에서 사용되는 캐릭터 모델, 배경 이미지, 효과음, 배경 음악, 텍스처, 애니메이션 클립, 스크립트 파일 등이 모두 애셋에 해당합니다. 게임 엔진에서는 이러한 애셋들을 관리하고 로드하여 게임 실행 시에 사용할 수 있도록 지원합니다.
그래픽 엔진이 화면에 이미지를 그리는 과정을 말합니다. 2D 및 3D 렌더링이 있으며, 이는 다양한 기술과 알고리즘을 사용하여 수행됩니다.
게임에서 컴퓨터가 플레이어의 행동을 모방하거나 게임 내에서 동작할 수 있는 캐릭터의 지능을 구현하는 기술을 의미합니다.
다양한 데이터 소스로부터 데이터를 수집, 저장, 처리하고, 데이터 파이프라인을 구축하는 일을 말합니다.
컴퓨터가 데이터로부터 학습하고 패턴을 찾아내는 인공지능의 한 분야입니다. 이를 통해 컴퓨터는 데이터를 기반으로 스스로 학습하여 정확한 결과를 예측하거나 패턴을 인식할 수 있습니다. 프로그래밍 언어(주로 Python), 수학(선형대수, 확률론), 통계학, 데이터 전처리, 머신러닝 알고리즘, 데이터 시각화 등의 기본 스킬이 필요합니다.
딥러닝은 머신러닝의 한 종류로, 인공신경망을 사용하여 패턴을 학습하는 기술입니다. 딥러닝은 사람의 뇌가 작동하는 방식에서 영감을 받아 만들어진 것으로, 다양한 문제를 해결할 수 있습니다. 예를 들어, 이미지 인식, 음성 인식, 자연어 처리 등 다양한 분야에서 딥러닝 기술이 활용됩니다. 머신러닝 스킬에 더해 인공신경망, 딥러닝 프레임워크(TensorFlow, PyTorch), 컴퓨터 비전, 자연어 처리 등의 추가적인 스킬이 필요합니다.