의미: 코드에서 발생한 오류(bug)를 찾아내고 수정하는 작업입니다.
어원: 벌레(bug)를 제거(remove)한다는 뜻에서 유래
방법:
에러 메시지를 통해 원인 분석
브레이크포인트(breakpoint)를 설정하여 코드가 실행되는 과정을 한 단계씩 살펴보며 문제 파악
사용 도구 예시:
IDE 디버거 (IntelliJ, Eclipse, Visual Studio, VSCode 등)
📝 한 줄 요약:
버그(오류)를 찾고 고치는 과정
의미: 개발자가 작성한 소스코드를 실행 가능한 형태(실행파일, 배포가능한 패키지 등)로 만드는 과정입니다.
과정 포함:
소스코드 컴파일
필요한 라이브러리, 의존성 모으기
실행 가능한 형태로 묶기
대표적 빌드 도구:
Java: Maven, Gradle
JavaScript: Webpack, Parcel
C/C++: Make, CMake
📝 한 줄 요약:
소스코드를 실행 가능한 파일로 만드는 작업
의미: 자주 사용하는 기능을 미리 구현해놓은 코드 모음입니다.
특징:
코드의 재사용을 높임
개발 효율성 향상
예시:
Python: pandas(데이터 분석), requests(HTTP 요청)
JavaScript: Lodash(편의 기능), Axios(네트워크 요청)
Java: Apache Commons(범용 기능)
📝 한 줄 요약:
필요한 기능을 모아 놓은 코드 모음
의미: 개발자가 작성한 소스코드를 기계어(컴퓨터가 이해할 수 있는 언어)로 바꿔주는 도구입니다.
특징:
컴파일 과정에서 문법 오류나 문제를 미리 발견 가능
컴파일 이후 프로그램 실행 시 빠름
예시:
Java의 javac, C/C++의 gcc, g++
📝 한 줄 요약:
소스코드를 기계어로 바꿔주는 도구
의미: 개발한 프로그램을 사용자가 실제로 사용할 수 있게 서버 또는 서비스에 올리는 작업입니다.
과정 포함:
서버에 파일 업로드
데이터베이스 설정
서비스 환경 설정
예시:
웹 사이트 배포 → AWS, Netlify 등
모바일 앱 배포 → Google Play Store, Apple App Store
📝 한 줄 요약:
개발한 프로그램을 사용자에게 제공하는 작업
의미: 소스코드를 기계어로 변환하지 않고, 코드 한 줄씩 바로 실행하는 프로그램입니다.
특징:
별도의 컴파일 과정 없이 바로 실행
실행 속도는 컴파일러 언어보다 느릴 수 있음
실행 중에 발생하는 오류를 바로 파악할 수 있음
📝 한 줄 요약:
코드를 한 줄씩 즉시 해석해서 실행하는 도구
의미: 운영체제(OS)에서 프로그램이 실행될 때 필요한 설정 정보(경로, 옵션 등)를 저장하는 변수입니다.
활용:
OS가 실행 환경을 설정하는 데 사용
프로그램에서 자주 바뀌는 설정이나 비밀 정보(비밀번호 등)를 저장할 때 유용
예시:
PATH: 프로그램 실행 경로를 저장하는 환경변수
JAVA_HOME: Java의 설치 경로를 저장하는 환경변수
개발 시 DB 비밀번호, API 키 등 민감 정보를 저장하기도 함.
한 줄 요약:
OS에서 프로그램 설정 정보를 저장하는 변수
의미: 특정 문제를 해결하기 위한 구조를 이미 만들어 놓은 소프트웨어 뼈대 또는 틀입니다.
특징:
개발자가 프레임워크에서 정한 구조와 규칙대로 구현함
프레임워크가 코드의 흐름을 관리하며, 개발자는 필요한 부분만 작성하면 됨
예시:
웹 개발: React, Vue, Angular (프론트엔드), Spring, Django, Express (백엔드)
모바일 앱 개발: Flutter, React Native
라이브러리와 차이점:
라이브러리는 개발자가 호출해서 사용하는 도구(수동적)이며,
프레임워크는 코드의 흐름을 프레임워크가 주도하고 개발자가 그 안에 기능을 추가하는 구조(능동적)입니다.
📝 한 줄 요약:
특정 개발 구조를 미리 잡아놓은 소프트웨어 틀
