알아두면 좋은 영어 개발 용어
프로그래밍에서 특정 단어는 영어의 사전적 의미와는 비슷하지만 다른 의미로 쓰입니다.
프로그래밍을 시작하신지 얼마 안되었다면 이런 단어들을 처음 봤을 때 사전적 의미 그대로 해석하여 혼란스러우실 수 있는데요. 알아두면 좋을 개발 영어 용어 11개를 가져왔습니다 :)
1. Agnostic (사전적 의미: 불가지론의)
‘구애받지 않는 것’이라는 뜻을 가집니다. 대체로 어떤 것에 국한되지 않는 프로그램이나 기술을 표현할 때 사용됩니다. `Nestjs is platform-agnostic framework` 이라고 하면 nestjs는 express, fastify 등 특정 Nodejs 플랫폼에 국한되지 않고 사용할 수 있는 프레임워크을 의미합니다.
2. Buffer (사전적 의미: 완충기)
‘임시 데이터 저장 공간’입니다. 데이터를 전송하는 속도보다 데이터를 수신하는 서버의 처리 속도가 더 느리거나, 컴퓨터에서 요청을 처리할 때 처리되는 속도보다 더 잦게 실행되는 경우 부하가 생길 수 있습니다. 이런 문제를 방지하기 위해 프로그래밍에서는 버퍼라는 공간에 데이터를 임시로 저장해두고 전송하거나 처리합니다.
3. Throttle(사전적 의미: 목을 조르다)
목을 졸라서 강제로 숨 쉬는 양을 조절하듯이 ‘이벤트에 대한 반응의 횟수를 조절하는 행위’를 말합니다. 일정 시간 동안 발생한 이벤트에 모두 반응하지 않고 한번씩만 반응합니다.
프론트엔드에서는 사용자 입력에 대해 매번 반응하지 않고 덜 반응하고, 서버에서는 단기간의 많은 요청에도 정해놓은 최소 주기에 맞게 반응하도록 합니다.
예를 들어, 10초 동안 여러 번 API 요청을 하거나 화면에서 버튼을 여러번 눌러도 한번만 실행하여 부하를 방지하고 높은 성능을 유지합니다.
4. Debounce(사전적 의미: bounce의 반대, 튕기지 않는)
‘가장 마지막 입력만을 처리하는 것’을 말합니다. throttle과 뭐가 다를까요? throttle의 일반적 의미인 ‘목을 조르다’를 떠올리면 되는데, 숨은 꼭 한번 씩 들이마셔야 살기 때문에 throttle은 주기적으로 한번 씩 실행됩니다.
한편 debounce는 실행된 이후 특정 시간 안에 들어오는 요청은 모두 무시하고, 그 시간이 지나도 다시 실행하지 않습니다. 그 시간이 지난 후에야 들어오는 요청만 딱 한번 실행합니다.
5. Orchestration(사전적 의미: 지휘, 여러 요소에 대한 통제나 관리)
데브옵스 용어로, 컴퓨터 시스템 및 소프트웨어를 자동으로 구성하거나 조정하는 관리 방법을 의미합니다. Orchestration을 이용하면 인프라 구조를 자동으로 최적화하여 관리할 수 있습니다. 요청 혹은 CPU 부하량이 증가할 때, 서버 혹은 인스턴스나 이미지를 증설(스케일 아웃)하는 등의 작업을 기대할 수 있습니다.
6. Idempotent (사전적 의미: 멱등성 冪等性 )
멱등성은 '여러 번 같은 연산을 적용하여도 같은 결과를 내는 성질'이라는 뜻입니다. 프로그래밍에서 멱등성을 가진 함수나 API는 같은 데이터가 들어왔을 때 여러 번 실행하여도 같은 결과가 나와야 합니다. 함수나 API가 의도하지 않은 결과를 내지 않기 위해서는 멱등성을 지키는 게 중요합니다.
7. Lazy (사전적 의미: 게으른, 태만한)
'필요한 순간이 올 때까지 실행을 미룬다'는 의미를 가집니다. Lazy한 프로그래밍은 꼭 필요한 순간에 실행함으로써 컴퓨터 자원을 절약하고 프로그램을 빠르게 실행할 수 있도록 도와줍니다.
8. Dispatch (사전적 의미: 보내다, 신속히 해치우다)
‘어딘가에 무엇을 보내는 행위’ 또는 프로그램이 ‘어떤 메소드를 호출할 것인가를 결정하여 그것을 실행하는 과정’을 말합니다. 객체지향 프로그래밍에서의 메시지는 한 객체가 다른 객체에게 특정 데이터(인자)와 함께 특정 행위를 수행할 것을 요청하는 것입니다(다른 객체의 메서드를 호출한다고 생각하면 쉽습니다).
메시지가 왔을 때 어떤 메서드를 실행할지 결정하거나(method dispatch), redux에서는 dispatch(action)을 통해 특정 reducer를 실행하기도 합니다.
9. Hydrate (사전적 의미: 수분을 보충하다)
객체를 Hydrate 한다는 것은 아직 특정 데이터도 갖고 있지 않은 객체를 메모리에서 가져온 후, 그 데이터를 채우는 행위(Populate)를 말합니다. 이렇게 함으로써 데이터를 로드하거나 전송할 때 성능상의 이점을 가져올 수 있습니다. 특정 데이터를 ‘사용할 준비가 되도록 만드는 것’이라고 생각하면 이해하기 쉬울 것 같아요.
프론트엔드에서 서버사이드렌더링 시, 이미 서버가 HTML을 만들어 제공하기 때문에 굳이 렌더링을 할 필요가 없습니다. 하지만 정적인 페이지로만 그치기 때문에 이벤트에 반응하는 동적인 페이지로 만들어주기 위해서 Store, State 등을 채워주어야(Populate) 하는데 이런 과정을 Hydrate라고 합니다.
10. Immutable (사전적 의미: 불변하는)
객체지향 프로그래밍에서 불변 객체는 ‘생성 후 그 상태를 바꿀 수 없는 객체’를 말합니다. immutable은 함수형 프로그래밍에서도 강조하는 속성인데요. 메모리에 있는 특정 객체의 데이터를 변경하면 해당 객체를 사용하는 다른 코드에서 의도치 않은 결과가 발생할 수 있습니다.
함수형 프로그래밍에서는 이런 문제를 방지하기 위해 데이터의 불변성을 강조합니다. 이를 지키려면 순수함수(같은 입력이 들어오면 같은 출력을 내고, 불변성을 깨는 부수 효과가 없는 함수)를 작성해야 합니다.
11. Literal (사전적 의미: 말 그대로의)
‘고정된 값’을 의미합니다. 프로그래밍 언어는 integer, float, string, boolean과 같은 자료형을 가집니다. 이 자료형의 고정된 값을 리터럴이라고 합니다. 예를 들어 ‘hjsong’, ‘roseline’ 등은 문자열 자료형의 값이며 이 값 자체는 바뀌지 않고 고정적입니다. 보통 const a = 1 과 같이 변수나 상수를 초기화할 때 사용합니다.
참고하면 좋을 자료들
meotitda/Dictionary
moonsupport라는 분이 만든 개발 용어 사전 레파지토리입니다.
DICTIONARY는 아래의 풍부한 어휘력을 바탕으로 아래와 같은 목적을 이루기 위해 만들어졌어요.
1.
개발 문서 및 코드를 더 잘 이해하게 되고
2.
적절한 함수명을 작성할 수 있게 되며
3.
개발자들의 대화를 더 잘 이해하게 됩니다.
dictionary editor
ktword (한국어)
컴퓨터 관련 용어들을 풀이해놓은 사이트입니다. 6천 개의 해설들이 있어요.
dictionary처럼 예제나 친절한 설명까지는 아니지만 용어 해설 뿐만 아니라 해당 용어와 관련된 지식까지 알려줘서 좋은 것 같아요.
출처: ktword
hackterms (영어)
references
•
딕셔너리 레파지토리