본문 바로가기
스터디/혼공학습단 11기 - 얄팍한코딩지식

혼공얄코 - 디버깅? 빌드? 배포? 비슷하지만 완전 다른 용어 살펴보기

by 찌노오 2024. 1. 10.

 

 

선택미션

주차 진도 선택 미션
2주차
(1/8 ~ 1/14)
Chapter 01 Ch.01(01-4) 디버깅과 빌드 강의 듣고 개념 정리하기

 

 

https://www.youtube.com/watch?v=IFSgZ4nelcM&list=PLpO7kx5DnyIFyl_Kt4ejvVF6cv2K9XaRU&index=2

 

#️⃣ 소프트웨어 개발 단계 구현과 테스트

지난 주에 공부했던 소프트웨어의 개발 프로세스를 다시 살펴보면 디버깅, 빌드, 배포는 구현 및 테스트 단계이다.

 

1️⃣디버그(Debug)

정의

  • 프로그래밍(코드 작성) 중 발생하는 오류들을 찾아내고 이를 수정하는 과정, 이를 디버깅(Debugging)이라고 부름
  • 프로그램과 소프트웨어 개발은 사람의 노력과 기여에 의해 이뤄지며, 코드 작성과정에서 여러 오류가 발생할 수 있음
  • 버그라는 용어는 초기 컴퓨터 시대에 발생한 오류들을 찾아 고치는 과정에서 유래하였으며, 프로그램 에러의 다양한 형태를 나타냄

💡잠깐, 왜 버그(bug)라는 어원을 가지게 되었나요?

1947년 9월 9일, 하버드 대학교의 컴퓨터가 갇힌 나방이 인해 오작동하였고, 이것이 세계 최초의 컴퓨터 버그였다고 한다.

여기서 유래하여 컴퓨터의 오작동을 일으킨 현상을 버그(Bug)라고 부르며, 이를 찾아내는 행위를 디버깅(Debugging)이라고 부르게 되었다.

 

https://education.nationalgeographic.org/resource/worlds-first-computer-bug/

 

World’s First Computer Bug

On September 9, 1947, a team of computer scientists reported the world’s first computer bug—a moth trapped in their computer at Harvard University.

education.nationalgeographic.org

 

디버깅은 어떻게 하나요?

  • 코드의 양과 설계의 복잡성에 따라 다르나, 오류를 빠르게 찾거나 직접 실행하여 문제를 파악하는 과정이 필요함
  • 특정단계마다 상태를 확인하여 문제 발생 지점을 찾는 디버깅이 중요함
  • 코딩 툴의 발전으로 비주얼 스튜디오, 이클립스, 인텔리J 등 IDE에서 효율적인 디버깅과 코드 작성을 지원함

 

 

2️⃣빌드(Build)

정의

  • 빌드(Build)는 파일을 변형하거나 압축하여 소프트웨어를 완성하는 과정을 의미함
  • 다양한 목적을 가지고 진행되는데 사용자에게 실행 파일을 제공하거나 코드를 압축하여 크기를 줄이는 목적도 있음
  • 윈도우의 exe 파일과 같이 사용자가 쉽게 실행할 수 있는 형태로 프로그램을 제공하는 경우가 있음

 

어떤 과정으로 빌드하나요?

  • 코드 컴파일(Complie) :  소스코드를 컴파일하여 기계어나 중간 언어로 변환하는 과정(Assemble)을 거친다.
  • 링킹(Linking) : 컴파일의 결과물들을 연결해주는 작업을 통해 하나의 형태로 만들어준다.
  • 라이브러리 및 의존성 관리 : 프로젝트에 사용된 외부 라이브러리 및 의존성을 관리하고, 필요한 라이브러리를 포함한다.

 

3️⃣배포(Release)

정의

  • 빌드한 프로젝트를 서버에 올리고 실행하여 도메인을 통해 웹사이트를 공개하는 작업
  • 개발자들 사이에서 가장 흔히 사용되는 배포는 웹사이트를 도메인으로 접근할 수 있도록 서버에 올린다.
  • 웹 개발이 많이 이루어지는 환경에서 배포는 웹사이트의 변경사항을 반영하는 중요한 작업이다.
  • 바로 배포하지 않고 내부에서 배포하여 QA나 테스트를 거치기도 한다.

 

💡잠깐, 배포된다고 끝이 아닙니다.

아무리 디버깅, QA, 빌드 테스트 등을 거쳐도 항상 예상하지 못한 일이 벌어질 수 있다.

그래서 배포 후 어떤 문제가 발생할지 모니터링을 하면서 대응을 한다.

 

농담반 진담반으로 개발팀과 개발자는 즉각적인 대응이 어려운 금요일에 배포하지 않는다는 나름의 룰이 있다고 한다.

 

금요일에 배포하면 널 찾아서 죽여버리겠다.

 


IT 소프트웨어 산업에서 일을 한다면 비개발자라 하더라도 꼭 알아두면 좋을 3가지 개념을 혼공얄코와 함께 정리해봤다.

다시 한번 느끼지만, 비전공자의 눈높이에서 이렇게 잘 설명한다는 얄코님을 보니 대단하다는 생각이 들었다.

 

 

** 사실과 다른 내용이 있을 수 있습니다. 언제든지 피드백 부탁드립니다!

 

 

반응형

댓글