CS : 코딩 용어 모음

커비·5일 전
0

컴퓨터공학

목록 보기
9/9

🚨 알림

알고 있던 용어부터 처음 알게된 용어까지 모두 정리했고, 중요하고 생각되는 부분에 📣를 표시해놓았다.


크래커(Cracker)

: 블랙 해커
: 크래커를 먹을 때 잘게 잘게 부서진다는 추상적인 이미지에서 유래되어 컴퓨터 시스템을 뚫고 파괴하는 행위를 하는 사람

해커(Security hacker)

: 화이트 해커
: 컴퓨터와 프로그래밍에 대한 전문 지식을 가진 사람

인공지능(AI; Artificial Intelligence)

: 인공지능에는 머신러닝과 딥러닝이 있음
: 인간의 사고와 학습같은 지적 능력을 컴퓨터로 구현하는 기술

명령문(Command Statemen)

: 컴퓨터에 각종 지시를 내리는 문구

소스코드(Source code)

: 개발자가 작업하는 작업물로 주로 실행 프로그램을 만드는 과정을 입력하는 데 이용하는 텍스트 형태의 파일

주석(Comment)

: 각 코드가 어떤 내용인지 개발자가 쉽게 알아볼 수 있도록 설명하는 글

코딩(Coding)

: 프로그래밍 언어로 된 코드를 입력하는 작업 자체

프로그래밍(Programming)

: 컴퓨터가 할 일의 절차와 알고리즘을 설계하는 것

개발(Development)

: 소프트웨어를 설계, 구현, 운영, 관리하는데 필요한 전반적인 기술 과정

소프트웨어(Software)

: 프로그램과 라이브러리, 데이터 등으로 이뤄진 시스템

시스템 프로그램(System program)

: 운영체제의 일부로서 컴퓨터 이용 환경을 조성하느 소프트웨어

애플리케이션(Application)

: PC나 모바일 기기에서 사용자가 직접 사용하는 모든 프로그램

프로그램(Program)

: 사용자 명령에 따라 그 목적에 맞는 작업을 수행하는 일련의 명령어 모음

프로그래밍 언어 (Programming language)

: 컴퓨터와 소통하기 위해 만들어진 언어

고수준 언어(High-level language)

: 사람의 언어에 가까운 언어

기계어(Machine language)

: 컴퓨터가 이해할 수 있는 숫자인 0과 1로만 구성된 언어

어셈블리어(Assembly language)

: 기계어 바로 위 단계의 저수준 언어

📣 통합 개발 환경(IDE; Intergrated Devlopment Environment)

: IDE는 개발에 관련된 다양한 기능들을 제공하는 개발용 프로그램

🚧 여기서 잠깐!
그래서 InteliJ의 IDEA의 IDE가 이런 의미였구나! 싶은 생각이 들었다.

디버그(debug)

: 오류 수정 프로그램과 그 작업 자체를 의미
: 프로그램에서 문제를 찾아 제거하는 행동

빌드(Build)

: 프로그래밍한 소스 코드를 묶어 실행 가능한 파일을 만드는 것

배포(deploy)

: 소프트웨어를 사용자들에게 전달하는 것

📣 유지보수(Maintenance)

: 소프트웨어 제품 출시 이후 계속되는 문제 해결 및 각종 업데이트 작업

🚧 여기서 잠깐!
유지보수는 소프트웨어 개발에 중요하다!

📣 리팩토링(refactoring)

: 기능을 수정하지 않으면서 코드의 질을 높이는 것

코드리뷰(Code review)

: 서로의 코드를 확인하고 피드백을 주고 받는 과정

문서화(documentation)

: 소프트웨어와 그 소스 코드를 쉽게 파악할 수 있는 문서

규칙 기반 인공지능(rule-based artificial intelligence)

: 미리 정해진 규칙이나 조건을 기반으로 작동하는 인공지능 시스템

지도학습(supervised learning)

: 컴퓨터에게 입력 데이터와 그에 해당하는 정답을 함께 제공하는 방식

비지도 학습(unsupervised learning)

: 컴퓨터에게 레이블이 없는 데이터만 제공하고 스스로 제공된 데이터 내의 숨겨진 구조나 패턴을 찾아내는 방식

강화학습 (reinforcement learning)

: 알고리즘이 특정 환경 내에서 시도와 오류를 통해 목표를 달성하는 방법을 학습

빅데이터(big data)

: 방대한 양의 데이터

인공 신경망(artificial neural network)

: 인간의 뇌를 모방한 컴퓨터 시스템

이해(understanding)

: 컴퓨터가 인간의 언어를 인식하고 그 의미를 파악하는 과정

생성(generation)

: 컴퓨터가 인간이 이해할 수 있는 언어로 응답하거나 새로운 텍스트를 만드는 과정

자연어 처리(natural language processing)

: 컴퓨터가 인간의 언어를 이해하고 해석할 수 있도록 돕는 기술

트랜스포머(transformer)

: 데이터 처리를 비롯한 다양한 분야에서 사용되는 인공지능 모델

디스코드(discord)

: 텍스트와 음성 채팅뿐만 아니라 파일 공유도 가능한 채팅 메신저 프로그램

깃허브 코파일럿(github copilot)

: 깃허브에 게시된 수많은 코드 데이터를 학습하여 개발된 서비스

프롬프트(prompt)

: 사용자가 인공지능에게 말을 걸 때 쓰는 '시작 신호'

프롬프트 엔지니어링(prompt engineering)

: 인공지능이 역량을 발휘할 수 있도록 적절한 프롬프트를 작성하는 것

서버(server)

: 정보나 서비스를 제공하는 컴퓨터 (서버 🔁 클라이언트)

클라이언트(client)

: 서버가 제공하는 것을 받아 사용하는 컴퓨터

데이터 센터(DC; Data Center / IDC; Internet Data Center)

: 수많은서버를 한 곳에서 안정적으로 관리하는 시설

서버 호스팅(server hosting)

: 서버용 컴퓨터를 임대해 주는 서비스

온프레미스(on-premise)

: 호스팅을 외부 데이터 센터에 두기에 민감한 정보를 다루는 회사들이 사내 전산실에 서버를 갖추고 관리하는 것

클라우드 컴퓨팅 서비스(cloud computing service)

: 서버를 가상화하여 각종 편의 기능과 함께 필요한 만큼 사용할 수 있는 서비스

IaaS(Infrastructure as a Service)

: 클라우드를 이용해서 서버용 인프라, 즉 가상화된 서버 컴퓨터를 대여해주는 서비스

PaaS(Platform as a Service)

: 애플리케이션을 개발하고 서비스하기 위해 필요한 서버, 운영체제, 개발 환경 등을 자동으로 설치하고 제공함으로서 사용자가 애플리케이션 개발에만 집중할 수 있도록 플랫폼을 제공하는 서비스

SaaS(Sofeware as a Service)

: 소프트웨어가 이미 완성된 형태로 사용자에게 제공되는 클라우드 서비스

웹 브라우저(web browser)

: 웹 서핑에 사용되는 소프트웨어

HTML(HyperText Markup Language)

: 웹 페이지에 요소들을 '가져다 놓는' 마크업 언어

CSS(Cascading Style Sheets)

: HTML로 올려놓은 요소들을 '꾸미는' 스타일 언어

자바스크립트(Javascript)

: 웹 페이지에 기능들을 부여해 '일을 시키는' 프로그래밍 언어

웹사이트(web site)

: 단일 또는 다수의 웹 페이지로 구성

웹 서핑(web surfing)

: 바다에서 파도를 타듯 이지저리 움직이며 웹 구석구석을 둘러본다는 뜻

반응형 웹사이트(reponsive website)

: 하나의 웹 페이지 화면 크기에 따라 내부 요소도 변경되는 웹사이트

적응형 웹사이트(adaptive website)

: 화면의 크기별로 웹페이지를 따로따로 ㅁ나든 웹사이트

📣 쿠키(Cookie)

: 사용자의 브라우저에 저장되는 정보

📣 세션(Session)

: 서버가 사용자를 기억하고 있는 상태

📣 토큰(token)

: 서버가 기억해둘 필요 없이 사용자가 스스로를 증명할 수 있는 수단

캐시(cache)

: 다시 가져오지 않아도 되도록 데이터를 가까이 저장해두는 기술
: 메인 메모리 속 데이터에 보다 더 빠르게 접근할 수 있도록 CPU에 내장되는 형태

CDN(Content Delivery Network)

: 각지에 캐시 서버를 두어 부하를 분산시키는 기술

네이티브 앱(native app)

: 동작할 운영체제에 특화된 방식으로 제작된 앱

크로스 플랫폼(Cros platform)

: 하나의 소스코드로 안드로이드와 ios 양쪽에서 모두 동작하는 앱을 만들 수 있는 플랫폼

웹 앱(web app)

: 스마트폰의 브라우저에서 접속할 수 있는 모바일 웹사이트

📣 하이브리드앱(Hybrid app)

: 네이티브 앱 안에 웹 뷰로 웹 앱을 실행하여 양쪽 방식의 장점을 취할 수 있는 앱

프로그레시브 웹 앱 (progressive web apps)

: 진보된 브라우저 기능들을 활용하여 아이콘 추가 등 편의 기능을 더한 웹 앱

프론트엔드(Frontend)

: 웹사이트 구성 요소 중 클라이언트 컴퓨터의 브라우저에서 동작하는 부분

📣 타입스크립트(Typescript)

: 자유분방한 자바스크립트에 타입을 부여해서 코딩할 때 오류의 소지를 줄이고 자동 완성 기능을 더해 생산성을 향상시킨 언어

백엔드(backend)

: 웹사이트나 모바일 앱 등 온라인 애플리케이션의 구성요소 중 서버에서 돌아가는 프로그램

프레임워크(framework)

: 프로그램의 기본 골격이 갖춰져 있어 개발자가 원하는 제품을 수월하게 만들 수 있도록 출시된 개발 도구
ex) 이클립스, 인텔리제이, 안드로이드 스튜디오, 비주얼스튜디오, 엑스코드, 스위프트, 파이참

API(Application Programming Interface)

: 여러 소프트웨어의 특정 기능들을 요청하고 호출하기 위한 약속

XML (eXtensible Markup Language)

: 데이터를 저장하고 전달할 목적으로 구성된 표기형식

📣 JSON(Javascript Object Notation)

: 데이터를 저장하고 전달할 목적으로 구성된 표기형식

YAML(YAML Ain't Markup Language)

: XML이나 JSON파일이 프로그램 간 정보 전달에 목적이 있는 것과는 달리 주로 프로그램 설정 파일과 같이 개발자가 편리하게 읽고 작성하기 위한 용도로 사용

📣 AJAX(Asynchronous Javascript And XML)

: 웹사이트에 필요한 정보를 언제든 서버로부터 받아오는 기법

IP(Internet Protocol)

: 데이터 통신 규약

📣 IP주소(Internet Protocol Address)

: PC나 스마트폰 같은 기기의 네트워크 주소

🚧 여기서 잠깐!
IP주소에는 공인IP, 사설IP, 고정IP, 유동IP가 있다!

도메인(domain)

: 사람이 기억하기 쉽도록 문자로 만들어 특정 IP에 연결한 인터넷 주소

📣 DNS(Domain Name Server)

: IP주소와 이에 해당하는 도메인의 IP 정보를 갱신하며 특정 도메인에 대한 요청이 들어오면 IP주소를 찾아 알려주는 시스템

URL(Uniform Resource Locator)

: 네트워크 상에서 특정 자료가 어디에 있는가를 나타내는 주소

WWW (World Wide Web)

: 전 세계의 사람들이 정보를 공유하고 소통할 수 있는 인터넷 공간

하이퍼텍스트(Hyper Txxt)

: 한 문서에서 다른 문서로 즉시 접근할 수 있도록 비선형적으로 연결된 텍스트
: 꼭 전체 글자를 순서대로 읽지 않아도 되는 문서를 의미

HTTP

: 클라이언트의 요청과 서버의 응답으로 이뤄지는 통신 규약

HTTPS

: 보안기능을 추가하여 보다 안전하게 만든 통신 규약

데이터(data)

: 사실을 반영하며 정보로 가공되지 않은 자료로 프로그램을 실행하는데 필요한 기초 자료

데이터베이스(data base)

: 전산 상에 구축한 데이터 집합

데이터베이스 관리 시스템

: 데이터베이스를 구축하고 관리하는 프로그램

운영체제(OS, Operating System)

: 사람이 컴퓨터를 쉽게 사용할 수 있도록 해주는 소프트웨어

인터페이스(interface)

: 두 개 이상의 시스템이나 장치가 상호작용할 수 있는 접점(경계면)
: 사람과 사물 또는 프로그램 사이에서 의사소통하도록 돕는 것은 사용자 인터페이스

GUI

: 그래픽 요소를 사용하여 직관적이고 편리하게 구성한 인터페이스

CLI(Command Line Interface)

: 콘솔
: 명령어 줄을 입력하여 사용할 수 있는 인터페이스

커널(Kernel)

: 운영체제의 핵심 기능을 담당하는 핵심 요소

오픈소스

: 누구나 소스 코드를 볼 수 있고 개발에 참여할 수 있는 소프트웨어
: 라이센스에 따라 유료버전 파생 가능

주 기억 장치(main memory)

: 컴퓨터를 고를 때 사양에서 흔히 '램 용량'으로 표기되는 부품으로 컴퓨터의 메인 메모리

CPU

: 컴퓨터를 통제하고 주어진 작업을 수행하는 장치

코어(core)

: CPU 중에서도 가장 핵심이 되는 부품
: 코어의 개수에 따라 듀얼코어(2개), 쿼드코어(4개) 등으로 부른다.

스레드(thread)

: 프로그램상에서 하나의 프로세스 안에 돌아가는 하나 이상의 작업 단위
: CPU 상에서 스레드는 하나의 코어, 즉 하나의 로봇으로 두 대의 로봇이 일하는 듯한 효율을 낼 수 있도록 하는 기술

클럭(clock)

: 2.5GHz와 같이 기가헤르츠(GHz) 단위로 표시되는 정보로 코어의 속도를 표현함

메모리(memory)

: 컴퓨터의 작업에 사용되는 데이터를 일시적 또는 영구적으로 저장하는 장치

보조 기억 장치

: 데이터를 보관하는 부품

RAM(Random Access Memory)

: 메모리 어느 위치에 있는 데이터든지 같은 속도로 읽고 쓸 수 있다는 뜻
: 메인 메모리와 같은 뜻

휘발성 메모리

: 전기가 끊겼을 때 데이터가 날아가면 휘발성 메모리

비휘발성 메모리

: 전기가 끊겨도 데이터가 유지되면 비휘발성 메모리

입출력장치(I/O)

: 컴퓨터에 신호와 정보를 보내는 입력 장치와 컴퓨터의 연산을 결과로 내보내는 출력 장치

프로세스

: 프로그램이 메모리에 올려져 CPU에 의해 실행되는 상태

병렬 처리

: 실제로 여러 작업을 동시에 실행하는 방법

병행 처리

: 하나의 코어가 여러 프로세스를 돌아가면서 조금씩 처리하는 것

컨텍스트 스위칭

: 하나의 프로세스가 CPU를 사용중인 상태에서 또 다른 프로세스가 CPU를 사용할 수 있도록 하기 위해 이전 프로세스의 상태(문맥)을 보관하고 새로운 프로세스의 상태를 CPU에 적재하는 작업

비트(bit)

: 0과 1 두 값을 가지는 것으로 컴퓨터가 다루는 데이터의 최소 단위

바이트(byte)

: 비트가 8개 모인 것

불리언(boolean)

: true(참)과 false(거짓)을 갖는 값으로 보통 '예'를 나타나내는 이진수 1과 '아니오'를 나타내는 이진수 0으로 표현함

자료형(data type)

: 프로그래밍 언어에서 여러 종류의 데이터를 저장하는 방식

유니코드

: 전 세계에서 사용되는 대부분의 뭄ㄴ자를 포함한 문자열 셋

문자열 셋

: 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 숫자로 만든 것

문자 인코딩

: 사람이 사용하는 문자를 컴퓨터가 인지할 수 있는 숫자로 바꾸는 것

컴파일 언어

: 실행되기 전 다른 형식으로 번역되는 언어

인터프리터 언어

: 작성된 코드 그대로 통역되어 실행되는 언어

컴파일

: 코드를 실행하기 전에 기계어나 다른 코드로 먼저 번역하는 것

컴파일러

: 소스코드를 다른 언어나 형태로 번역해주는 프로그램

정적 타입

: 컴파일 언어처럼 자료형이 고정된 것

동적 타입

: 인터프리터 언어처럼 자료형이 고정되지 않은 것

절차지향 프로그래밍(procedural programming)

: 물이 위에서 흐르는 것처럼 소스 코드를 위에서부터 차례대로 읽고 실행하는 방법

객체지향 프로그래밍(OOP)

: 프로그램을 객체란 단위로 나누어 프로그래밍하는 방식

객체

: 구성요소를 묶는 단위

클래스

: 기능의 스펙을 정의하는 명세서

메소드

: 특정 작업을 수행하기 위한 명령문 집합

상속(inheritance)

: 상위 클래스의 기능을 하위 클래스가 물려받아 기존 클래스에 기능을 추가하거나 재정의하는 것

함수

: 프로그래밍 언어에서 기능을 표현한 것

함수형 프로그래밍

: 함수형 기능들을 활용하여 변수의 사용을 최소화하는 프로그래밍 방식

매니지드 언어

: 언어 자체에서 메모리를 관리해주는 언어

언매니지드 언어

: 개발자가 직접 메모리를 관리해야하는 언어

자바 가상 머신(JVM)

: 자바 운영체제 사이에 존재하는 가상머신으로 어떤 운영체제에서든지 자바 파일을 실행할 수 있도록 도와주는 것

컴파일 오류

: 소스 코드를 컴파일하는 과정에서 생기는 오류

구문 오류

: 프로그래밍 언어의 사용법에 맞지 않는 코드로 인해 발생하는 오류

런타임 오류

: 프로그램 실행 중에 생기는 오류

논리 오류

: 컴파일이나 실행 자체는 성공하지만 잘못된 결과를 반환하는 오류

예외 처리

: 오류 발생 시에더 프로세스를 지속시킬 수 있는 수단

메모리 누수

: 사용하지 않는 데이터가 비워지지 않고 메인 메모리 공간에 쌓여 있는 현상

가비지 컬렉션

: 메인 메모리 상에서 불필요한 데이터를 자동으로 치우는 기능

패키지 매니저

: 라이브러리의 설치, 업데이트, 삭제 등을 관리하는 소프트웨어 도구

환경 변수

: 프로그램이 작동할 환경에 지정된 변경 가능한 값

런타임 환경

: 프로그램이 동작할 수 있도록 해주는 소프트웨어

자바 런타임 환경(JRE)

: 자바로 작성한 소스 코드를 컴파일 했을 때 생성된 자바 바이트코드를 실행할 수 있도록 해주는 소프트웨어
: 자바 API와 JVM으로 구성됨

SDK (Software Development Kit)

: 특정 언어나 환경의 소프트웨어를 개발할 수 있도록 제공되는 도구

JDK (Java Development Kit)

: 자바 코드를 컴파일하고 테스트하는 기능을 포함하는 등 자바 언어로 프로그램을 개발할 수 있는 환경까지 갖춰주는 것

라이브러리

: 하나 이상의 프로그램에 활용될 수 있는 데이터와 명령어들의 집합
: 소스 코드에 가져다 쓸 수 있음

VCS (Version Control System)

: 프로젝트 변경 내역을 관리하는 소프트웨어

커밋

: 의미있는 변경 작업들을 저장소에 기록하는 것
: 커밋의 변경 내역을 알려주는 이력을 커밋 메세지라고 함

리셋

: 특정 시점의 커밋으로 되돌아가는 행위

리버트

: 되돌리고자 하는 커밋을 거꾸로 실행해서 해당 부분만 복구하는 행위

브랜치

: 커밋 사이를 가볍게 이동할 수 있는 포인터같은 것

깃 호스팅 서비스

: 프로젝트를 관리하는 깃에 공용 저장소를 제공하는 서비스

profile
전공은 컴퓨터공학, 복수전공은 해킹보안학, 직장은 방학(파워 구직중)

0개의 댓글