기본 개발용어 알아보기

디버깅(debugging)

  • 디버깅 = 디버그(debug)
  • 프로그램 개발 단계 중에 발생하는 시스템의 논리적인 오류나 비정상적 연산을 찾아내고 그 원인을 밝히고 수정하는 작업 과정(소프트웨어에 발생하는 문제의 원인을 찾는 것)
  • 개발 중인 상태를 나타내는 의미하기도 함
    • 배포와 비교하여
  • 유래 : 초창기 컴퓨터는 기계에 벌레가 들어가서 고장을 일으키곤 했는 이 벌레(bug)를 찾아 치우는 일에서 debugging이 유래되었다고 한다.

* 디버거(debugger) : 디버그를 돕는 도구

컴파일러와 인터프리터

  • 코드를 기계어 또는 중간언어로 바꾸는 데 언제 하느냐에 따라 달라진다.
    • 컴파일러 : 미리 해놓음 => 컴파일 언어 (예. 자바, C, C++ 등)
    • 인터프리터 : 그때그때함 => 인터프리터 언어, 스크립트 언어(예. 자바스크립트, 파이썬, 루비 등)

빌드

  • 작업하는 프로젝트 파일들을 출시하기 적합한 형태로 바꾸는 과정
  • 프로그램의 종류마다, 소프트웨어 종류마다 빌드 결과물의 형태가 다양하다
    • 하나의 형태로 압축
    • 더 적은 수의 파일들로 정리
    • 그냥 파일들의 형식과 내용만 바뀌는 경우
  • 목적
    • 윈도우의 .exe파일처럼, 사용자가 바로 실행할 수 있는 파일 하나로 제공하기 위함일 때
    • 프로그래밍 코드들을 압축해서 전체 크기를 줄이거나 다른 사람들이 가능한 코드를 못 알아보도록 난독화한 경우


(컴파일 언어로 만든 소프트웨어는 빌드에 컴파일 작업이 포함되어있다.)

배포

  • 코딩해서 빌드한 결과물을 사용자에게 전달하는 과정
  • 데스크탑 프로그램이면 다운받을 수 있는 곳에 업로드
  • 모바일 앱이면 플레이스토어나 앱스토어에 올리는 것
  • 웹 사이트라면 서버에 올린 다음 실행해서 사람들이 해당 사이트를 도메인으로 접근해서 볼 수 있도록 하는 작업

환경변수

  • 환경 : 소프트웨어가 동작하는 공간(흔히, 컴퓨터), 도커의 컨테이너 등 프로세스가 돌아가는 보다 세분화된 공간
  • 환경변수 : 그 공간마다 지정된 값
  • 용도
    • 내 컴퓨터 어디에 자바가 깔렸는 지를 환경변수에 적어서 어느 자바 프로그램이든 내 컴퓨터 어딘가에 설치된 자바를 문제 없이 찾아서 실행할 수 있도록 하는 거
    • 각 환경의 조건마다 어떤 동작을 시행할 지, 또는 어떻게 시행할 지를 정할 수 있다.(예. mode : dev(개발용), mode : prod(배포용))
    • 보안요소들이 직접 적히지 않기 위해서 환경변수로 설정해준다.

참고