!img[얄팍한 코딩 사전 - 기본 개발 용어 알아보기](http://img.youtube.com/vi/GYmuQJiPeM4/0.jpg)
출처-> 유튜브 : 얄팍한 코딩 사전 - 기본 개발 용어 알아보기
디버그, 디버깅
- 프로그래밍에 쓰이는 시간의 80% 이상은 디버깅을 하는 데 소모된다.
- 디버깅은 소프트웨어에 발생하는 원인을 찾는 것이다.
- 모든 코드가 원하는 형태로 동작하는 것이 아니기에 대부분의 시간이 디버깅하는 데 쓰이는 것이다.
- 디버그는 배포와 대비되는 개념이기도 해서 개발하는 중이라는 의미를 내포하고 있기도 하다.
- 초창기 컴퓨터에 벌레가 들어가 고장을 일으키곤 했는데 이에 유래하여 나온 단어가 디버깅이다.
- 프로그밍이 복잡할수록 디버깅하는 방식도 다양해진다.
- 코드의 특정 단계들마다 상태를 확인하도록 해서 어느 시점에 오류가 있는지 확인해야 한다.
- 이 작업은 보통 엄청난 시간과 에너지를 소모하기에 디버깅을 도와주는 툴들고 꾸준히 발전해왔다.
- 예를 들어, VS code, visual code studio, intellij 등이 있다.
인터프리터 VS 컴파일러
- 사람이 알아볼 수 있게 코드를 짜면 컴퓨토는 기계어만 이해할 수 있기에 알 수 없다.
- 그래서 이를 번역해주거나 그대로 보내 그때그때 번역해주는 것이 컴파일러나 인터프리터다.
- 인터프리터를 사용하는 언어는 컴파일러를 사용하는 언어보다 느리다.
- 그 이유는 인터프리터는 코드를 그때그때 번역해주는 반면, 컴파일러는 모든 코드를 바로 번역해 컴퓨터에게 알려주기 때문이다.
빌드
- 개발자가 작업하는 프로젝트는 일반적으로 수십, 수백개가 넘는 폴더와 파일들로 이뤄져 있다.
- 이것들을 출시할 때 압축하거나 변형하여 내보내는데 이를 빌드라고 한다.
배포
- 빌드한 결과물을 사용자에게 전달하는 것을 배포라고 한다.
- 예를 들어, 웹은 다운받을 수 있는 사이트, 앱은 플레이스토어, 애플 스토어 등이 있다.
- 웹 개발 업계에서 배포란 사람들이 보는 웹 사이트에 작업한 바를 반영한다는 의미라고 기억해라.
환경변수
- 환경이란 소프트웨어가 동작하는 공간을 말한다.
- 환견변수란 컴퓨터마다 지정된 값이다.
- 개발할 때는 보통 개발용, 배포용이라는 의미의 dev, prod 등의 환경변수가 사용된다.
- 이렇게 나누는 이유는 소프트웨어 개발 시 개발자가 디버깅을 쉽게 하기 위해 화면에 개발과정에 관련된 특정 정보들이 뜨게 할 수 있는데 이것이 사용자들에게 배포된 코드에도 뜨면 곤란하기 때문이다.
- 환경이란 컴퓨터 뿐만 아니라 도커의 컨테이너 등 프로세스가 돌아가는 보다 세분화된 공간을 의미하기도 한다.
라이브러리 VS 프레임워크
- 건축할 때 전문업체가 만든 자재를 활용하듯 프로그래밍에서도 기업 등 누군가가 코드로 잘 짜둔 기능을 활용할 수 있는 대상을 라이브러리하고 한다.
- 이것뿐만 아니라 본인 전용 라이브러리도 존재한다.
- 소프트웨어의 기초 설계가 프로그래밍되어 있고 이를 다운받아 응용하여 원하는 프로그램을 만들 수 있게 하는 것을 프레임워크라고 한다.
- 예를 들어, 스프링, 장고, .NET, 라라벨, Express, Vue 등이 있다.
- 내가 어떤 것 위에다 뭔가를 만든다, 어떤 것 안에서 그것의 규칙에 따라 뭘 만든다면 프레인워크이고, 어떤 것을 가져다 만든다면 라이브러리라고 생각하면 된다.