프로그래밍에서 변수란 무엇인가요?
_____A1. 변수는 데이터를 저장하기 위해 이름을 붙인 메모리 공간입니다. 프로그램 실행 중 값이 변할 수 있는 저장소 역할을 하며, 그 이름(식별자)을 통해 값을 읽거나 쓸 수 있습니다.
Q2. 왜 변수가 필요한가요?
A2.
1) 가독성: 의미 있는 이름으로 데이터를 관리해 코드 이해를 돕습니다.
2) 재사용성: 한 번 선언한 변수를 여러 곳에서 사용해 코드 중복을 줄입니다.
3) 유지보수: 값 변경 시 변수 선언부만 수정하면 돼 유지보수가 쉬워집니다.
Q3. 변수 선언과 초기화는 어떻게 다른가요?
A3.
- 선언(declaration): 변수의 이름과 타입(또는 언어의 경우 자료형 미표시)을 알려 메모리를 할당하도록 컴파일러/인터프리터에 지시합니다.
- 초기화(initialization): 선언한 변수에 최초 값을 대입하는 과정입니다. 선언과 동시에 초기화할 수도 있고, 선언 후 따로 초기화할 수도 있습니다.
Q4. 변수명(식별자) 작성 규칙은 무엇인가요?
A4.
1) 영문자, 숫자, 밑줄(_) 사용(언어에 따라 한글 허용 여부 상이)
2) 숫자로 시작 불가
3) 공백·특수문자 금지(언어별 예약어도 사용 불가)
4) 관례: 소문자 카멜케이스(camelCase) 또는 스네이크(snake_case)를 사용해 가독성 유지
Q5. 자료형(type)과 변수는 어떤 관계인가요?
A5. 변수는 메모리에 데이터를 저장할 때 공간 크기와 해석 방법을 결정하기 위해 자료형을 사용합니다. 예를 들어 정수형(int)은 4바이트, 실수형(float)은 4바이트(또는 언어마다 상이)로 메모리를 할당합니다.
Q6. 스코프(scope)와 라이프타임(lifetime)이란 무엇인가요?
A6.
- 스코프: 변수에 접근할 수 있는 유효 범위입니다. 예) 로컬 변수는 함수 내부, 글로벌 변수는 전체 프로그램.
- 라이프타임: 변수가 메모리에 할당되어 존재하는 기간입니다. 예) 함수가 호출될 때 생성·종료될 때 소멸되는 로컬 변수.
Q7. 지역 변수(local variable)와 전역 변수(global variable)의 차이는?
A7.
- 지역 변수: 블록 또는 함수 내부에서 선언하며, 해당 범위를 벗어나면 메모리에서 해제됩니다. 충돌 위험이 적고 캡슐화에 유리합니다.
- 전역 변수: 프로그램 전체에서 접근 가능하며, 프로그램 시작 시 생성되어 종료 시 해제됩니다. 편리하나 이름 충돌·디버깅이 어려울 수 있습니다.
Q8. 상수(constant)와 변수의 차이는 무엇인가요?
A8.
- 변수: 실행 중 언제든 값 변경 가능
- 상수: 선언 시 초기화 후 값이 불변(immutable)
→ 상수를 사용하면 의도치 않은 값 변경으로 인한 버그를 막을 수 있습니다.
Q9. 동적 타이핑(dynamic typing)과 정적 타이핑(static typing)의 변수 선언 차이는?
A9.
- 정적 타이핑 언어(Java, C++ 등): 변수 선언 시 자료형을 명시해야 하며, 컴파일 시 타입 검사 수행
- 동적 타이핑 언어(Python, JavaScript 등): 선언 시 타입 명시 불필요, 런타임에 값의 타입이 결정되고 변경될 수 있음
Q10. 언어별 변수 선언 예시를 알려주세요.
A10.
- C
int count = 0;
- Java
String name = "Alice";
- Python
age = 30
- JavaScript
let price = 9.99; const TAX_RATE = 0.1;
Q11. 변수 사용 시 주의할 점은 무엇인가요?
A11.
1) 초기화하지 않은 변수 사용 금지(예상치 못한 값 참조 위험)
2) 스코프 관리: 불필요한 전역 변수 사용 자제
3) 의미 있는 변수명 사용: 목적과 역할이 드러나도록 네이밍
4) 메모리 낭비 방지: 필요 없는 변수는 제거
Q12. 변수의 메모리 동작 원리는 무엇인가요?
A12.
컴파일러/인터프리터는 변수 선언 시 메모리 영역(스택·힙 등)에 공간을 할당합니다. 값이 저장되면 해당 주소에 바이트 단위로 기록되며, 변수 이름은 주소를 가리키는 레이블(심볼 테이블)을 통해 내부적으로 매핑됩니다. 프로그램 종료 시 또는 범위 벗어날 때 메모리에서 해제됩니다.
작성자:
최유민 [비회원]
| 작성일자: 1년 전
2024-09-10 10:10:33
조회수: 138 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 138 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.