재 현
const의 위력 본문
전 회사에서 1년동안 회사 다니면서 가장 많이 보고 들었던 건 뭐였을까 생각해보았다.
하나가 떠올랐다. 바로 'const'다.
현업에서 일해보기 전에 혼자 프로젝트 한다고 개발할 때는 'const'의 중요성을 몰랐다. 물론 입사 초기에도..
쓰나 안 쓰나 프로그램은 잘 돌아가는데, 왜 여기 사람들은 'const'에 광적인 집착을 보일까 궁금했다.
그래서 알아보았던 const의 중요성
'const' 왜 중요한가? 같이 알아보자.
1. 'const'의 기본 개념
'const'는 변수를 상수로 선언하는 데 사용되며, 한 번 할당된 값이 변경되지 않도록 보장한다. 이를 통해 코드의 안정성과 가독성을 높일 수 있다.
const int age = 30;
// age = 31; // 오류 발생: 상수에 새로운 값 할당 불가
2. 안정성 향상
'const'를 사용하면 의도하지 않은 변수 값 변경으로 인한 버그를 사전에 방지할 수 있다. 변수의 값이 변경되지 않기 때문에, 코드의 다른 부분에서 의도하지 않은 값 변경이 일어나는 것을 막아준다.
const std::string apiUrl = "https://api.example.com";
// ... 중간 생략 ...
// apiUrl을 여러 곳에서 사용
// 의도하지 않은 다른 값을 할당해도 오류 발생
3. 함수 매개변수로 'const' 사용하기
'const'를 함수의 매개변수에 적용하면, 해당 변수가 함수 내에서 변경되지 않음을 보장할 수 있다. 이는 함수가 매개변수를 수정하지 않는다는 것을 명시적으로 나타내며, 코드를 이해하기 쉽게 만들어준다.
void printMessage(const std::string& message) {
// message = "Hi"; // 오류 발생: 함수 내에서 'message' 수정 불가
std::cout << message << std::endl;
}
4. 멤버 함수에서 'const' 사용하기
클래스의 멤버 함수에서 'const'를 사용하면 해당 함수가 멤버 변수를 수정하지 않음을 보장한다. 이는 상수 객체에서도 호출 가능하도록 하며, 더 많은 상황에서 사용할 수 있게 된다.
class MyClass {
public:
void display() const {
// memberVariable = 10; // 오류 발생: 상수 멤버 함수에서 멤버 변수 수정 불가
std::cout << memberVariable << std::endl;
}
private:
int memberVariable;
};
5. 반환 값으로 'const' 사용하기
함수가 객체를 반환할 때, 해당 객체를 상수로 반환하고 싶은 경우 'const'를 사용하여 반환 값의 상수성을 보장할 수 있다.
const MyClass getObject() {
return MyClass();
}
int main() {
const MyClass obj = getObject(); // 반환 값은 상수로 저장 가능
// obj.display(); // 오류 발생: 'obj'는 상수 객체이므로 상수 멤버 함수만 호출 가능
return 0;
}
마무리
'const'는 코드를 안전하고 가독성 높은 형태로 작성하는 데 큰 도움을 주는 중요한 요소다. 변수를 상수로 선언하여 재할당을 방지하고, 함수 매개변수와 멤버 함수에서 'const'를 사용하여 의도하지 않은 변경을 방지할 수 있다. 또한 반환 값으로 'const'를 사용하여 상수 객체를 반환할 수 있다. 'const'를 적극적으로 활용하여, 더 안정성있고 가독성이 높은 코드로 작성하자.
'Development' 카테고리의 다른 글
파이브 라인스 오브 코드 읽기(1) (0) | 2023.10.30 |
---|---|
주식 자동 매수/매도 프로그램 만들기 후기 (0) | 2023.08.02 |
우아한 객체 지향 - 의존성 (0) | 2023.08.02 |
이슈 받았을 때 (0) | 2023.07.27 |
아마존의 글쓰기 (0) | 2023.07.23 |