쿼카러버의 기술 블로그
[개발 상식] 간단하게 정리하는 개발 용어 5가지 - 1탄 본문
컴파일러
- 컴파일러는 번역가 역할을 하는 하나의 소프트웨어 프로그램이다.
- 컴파일러는 프로그래머가 작성한 코드를 기계가 이해할 수 있는 기계어로 바꾸어 준다.
- 예를 들어 컴파일러는 high-level언어인(사람이 더 이해하기 쉬운) 파이썬과 같은 코드를 low-level언어(기계가 더 이해하기 쉬운)언어로 바꾼
object code
를 만들어낸다.
Cache(캐슁)
- Cache란 하드웨어적이든 소프트웨어적이든 상관없이 '잠정적으로(temporarily)`데이터를 저장하는 저장소이다.
- 일반적으로 비싼 메모리라 하는데, 그 이유는 사용할 수 있는 용량 대비 가격이 실제로 비싸기 때문
(하드웨어로 얘기하자면 현재기준 램 16GB=10만원 HDD 1TB = 5만원) - 하드웨어적으로 예를 들자면 CPU에서 빠른 연산을 위해 가장 자주 사용되는 위치에 데이터를 두고 사용하는 크기는 작지만 빠른 메모리
- 소프웨어적으로 설명하자면 redis같은 캐쉬 DB를 사용해서 데이터를 하드웨어에 두지않고 in-memory에 보관하여 비교적 더 빠르게 데이터를 로딩할 수 있다.
API
- 레스토랑의 메뉴를 떠올려보자. 메뉴를 보고 음식을 시키면, 레스토랑은 음식을 준다. 어떻게 요리했는지 우리는 모른다.
- API는 서버 입장에서의 메뉴다. 내 서버에 어떤 요청을 보낼지에 대한 메뉴가 API고 API대로 나한테 주문(요청)을 하면 서버는 그에 맞는 음식(응답)을 준다.
IDE
- IDE는 integrated development environment의 약자다.
- IDE는 개발자가 어플리케이션을 개발하기 위해 사용하는 소프트웨어다. 조금 편하게 코딩할 수 있게 GUI(Graphical User Interface)를 제공한다.
- IDE에는 code 에디어, 디버그 툴 등 프로그래머가 조금 더 편하게 개발할 수 있도록 해주는 툴들을 제공한다(linter, language server 등)
Open Source Software
- 오픈소스 소프트웨어란 말 그대로 소프트웨어의 코드가 모두에게 공개된 소프트웨어를 의미한다.
- 아무나 다 코드를 열람할 수 있고, 수정하고(물론 제안 뒤 허락을 받아야 하지만), 검사할 수 있다.
- 일반적으로 우리가 사용하는 소프트웨어의 코드는 컴파일돼서 어떻게 코딩된 것인지 볼 수 없다. (카카오톡 소스 코드 본 사람 없는 것처럼)
'깨알지식 - 개발' 카테고리의 다른 글
[Web] Web Server란? Application Server란? (개념 정리) (0) | 2022.03.26 |
---|---|
[개발 팁] Camel case, Kebab case, Snake case, Pascal case등 표기법 예시 및 쉬운 정리 (0) | 2022.02.21 |
[Web] favicon이란? (파비콘이란? facvion.ico) (0) | 2022.01.23 |
Physical CPU와 Logical CPU의 차이 (processor, cpu, thread 개념) (1) | 2021.09.29 |
폴링(polling)이란? (comet) (2) | 2021.09.25 |
Comments