쿼카러버의 기술 블로그

[개발 상식] 간단하게 정리하는 개발 용어 5가지 - 1탄 본문

깨알지식 - 개발

[개발 상식] 간단하게 정리하는 개발 용어 5가지 - 1탄

quokkalover 2022. 1. 29. 16:09

컴파일러

  • 컴파일러는 번역가 역할을 하는 하나의 소프트웨어 프로그램이다.
  • 컴파일러는 프로그래머가 작성한 코드를 기계가 이해할 수 있는 기계어로 바꾸어 준다.
  • 예를 들어 컴파일러는 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

  • 오픈소스 소프트웨어란 말 그대로 소프트웨어의 코드가 모두에게 공개된 소프트웨어를 의미한다.
  • 아무나 다 코드를 열람할 수 있고, 수정하고(물론 제안 뒤 허락을 받아야 하지만), 검사할 수 있다.
  • 일반적으로 우리가 사용하는 소프트웨어의 코드는 컴파일돼서 어떻게 코딩된 것인지 볼 수 없다. (카카오톡 소스 코드 본 사람 없는 것처럼)
Comments