잡다한코딩지식
기본 개발 용어 알아보기 - 디버깅, 컴파일러와 인터프리터, 빌드, 배포, 환경변수
개발하는 까꿍이
2021. 11. 23. 20:34
디버깅(debugging)
디버깅 = 디버그(debug)이다. 디버깅은 프로그램 개발 단계 중에 발생하는 시스템의 논리적인 오류나 비정상적 연산을 찾아내고 그 원인을 밝히고 수정하는 작업 과정으로 즉, 소프트웨어에 발생하는 문제의 원인을 찾는 것을 말한다. 문제가 발생했다는 것은 현재 개발 중인 상태를 나타내는 의미하기도 하다.
디버거(debugger) : 디버그를 돕는 도구
유래 : 초창기 컴퓨터는 기계에 벌레가 들어가서 고장을 일으키곤 했는 이 벌레(bug)를 찾아 치우는 일에서 debugging이 유래되었다고 한다.
컴파일러와 인터프리터
코드를 기계어 또는 중간 언어로 바꾸는 데 언제 하느냐의 시점에 따라 달라진다. 미리 해놓는 것은 컴파일 언어이고 그때그때 하는 언어는 인터프리터 언어이다.
컴파일 언어의 종류로는 C, C++, 자바 등이 있으며, 인터프리터 언어로는 자바스크립트, 파이썬, 루비 등이 있다.
빌드
빌드는 작업하는 프로젝트 파일들을 출시하기 적합한 형태로 바꾸는 과정을 말한다. 프로그램의 종류마다, 소프트웨어 종류마다 빌드 결과물의 형태가 다양하다
[빌드 결과물의 형태]
- 하나의 형태로 압축
- 더 적은 수의 파일들로 정리
- 그냥 파일들의 형식과 내용만 바뀌는 경우
[빌드의 목적]
- 윈도의. exe파일처럼, 사용자가 바로 실행할 수 있는 파일 하나로 제공하기 위함일 때
- 프로그래밍 코드들을 압축해서 전체 크기를 줄이거나 다른 사람들이 가능한 코드를 못 알아보도록 난독화한 경우(컴파일 언어로 만든 소프트웨어는 빌드에 컴파일 작업이 포함되어있다.)
배포
배포는 코딩해서 빌드한 결과물을 사용자에게 전달하는 과정을 말한다. 데스크톱 프로그램이면 다운로드할 수 있는 곳에 업로드, 모바일 앱이면 플레이스토어나 앱스토어에 올리는 것, 웹 사이트라면 서버에 올린 다음 실행해서 사람들이 해당 사이트를 도메인으로 접근해서 볼 수 있도록 하는 작업이다.
환경변수
환경 : 소프트웨어가 동작하는 공간(흔히, 컴퓨터), 도커의 컨테이너 등 프로세스가 돌아가는 보다 세분화된 공간
환경변수 : 그 공간마다 지정된 값
[환경변수의 용도]
- 내 컴퓨터 어디에 자바가 깔렸는 지를 환경변수에 적어서 어느 자바 프로그램이든 내 컴퓨터 어딘가에 설치된 자바를 문제없이 찾아서 실행할 수 있도록 하는 거
- 각 환경의 조건마다 어떤 동작을 시행할지, 또는 어떻게 시행할지를 정할 수 있다.(예. mode : dev(개발용), mode : prod(배포용))
- 보안요소들이 직접 적히지 않기 위해서 환경변수로 설정해준다.