250x250
반응형
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

재 현

const의 위력 본문

Development

const의 위력

본명은이점례 2023. 7. 31. 22:44
728x90

전 회사에서 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'를 적극적으로 활용하여, 더 안정성있고 가독성이 높은 코드로 작성하자.

 

728x90

'Development' 카테고리의 다른 글

파이브 라인스 오브 코드 읽기(1)  (0) 2023.10.30
주식 자동 매수/매도 프로그램 만들기 후기  (0) 2023.08.02
우아한 객체 지향 - 의존성  (0) 2023.08.02
이슈 받았을 때  (0) 2023.07.27
아마존의 글쓰기  (0) 2023.07.23