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