Static과 Instance란?
SAP ABAP에서는 객체지향 프로그래밍을 사용할 때 두 가지 중요한 개념인 Static(정적)과 Instance(인스턴스)를 자주 접하게 됩니다. 각각의 변수와 메서드는 해당 클래스에 어떤 식으로 존재할 지를 정의할 수 있습니다. 은 클래스 자체에 속하는 것이며, 해당 클래스의 인스턴스를 생성하지 않고 직접 접근할 수 있습니다. 반면에, 는 특정 객체에 속하여 그 객체가 생성될 때만 접근할 수 있는 개념입니다.
예를 들어, 자동차(class)라는 클래스를 생각해 봅시다. 자동차의 색상은 인스턴스 변수로, 특정 자동차 객체가 생성될 때 그 색상이 무엇인지 결정됩니다. 하지만 자동차 제조 공장은 변경되지 않는 요소로, 같은 정보를 모든 자동차에 제공하므로 static으로 볼 수 있습니다.
Static 변수와 메서드
Static 변수나 메서드는 클래스 이름 자체를 통해 접근이 가능하며, 이는 프로그램 내 어디서나 접근할 수 있다는 장점을 제공합니다. 그러나 모든 인스턴스가 이 값을 공유하므로, 값의 변경이 모든 인스턴스에 영향을 미치게 됩니다. 이는 상태 정보를 저장하지 않고 공통의 상수 값을 유지할 때 유용합니다.
Static 변수 | Instance 변수 |
---|---|
모든 객체에 의해 공유됨 | 각 객체마다 별도로 유지됨 |
클래스 이름으로 접근 가능 | 객체를 생성한 후 접근 가능 |
Instance 변수와 메서드
Instance 변수는 각 객체별로 별도로 유지되는 변수를 의미합니다. 객체끼리 독립적으로 동작하게 하며, 객체 간의 데이터를 직접 공유하지 않도록 합니다. 인스턴스 메서드는 이러한 인스턴스 변수에 대한 동작을 정의하며, 객체가 생성되고나서만 사용할 수 있습니다.
예를 들자면, 자동차 객체에는 차량의 주행거리를 저장하는 인스턴스 변수가 있을 수 있습니다. 이 변수는 각 자동차마다 다르게 유지되고, 주행거리를 계산하는 메서드도 객체 내에서 개별적으로 동작합니다.
Static과 Instance의 활용 사례
Static과 Instance의 적절한 활용은 프로그램의 효율성을 높이는 데 중요한 역할을 합니다. 예를 들어, 특정 계산에 사용되는 상수나 고정적 데이터를 static 변수로 정의하면 메모리 사용을 최소화할 수 있습니다. 반대로, 고객 정보처럼 사용자별로 개별적인 데이터를 다뤄야 할 때는 인스턴스를 활용하는 것이 적절합니다.
장단점 비교
Static과 Instance에는 각각의 장단점이 있습니다. Static은 메모리를 적게 사용하고 명확한 구조를 보여주지만, 데이터 공유로 인해 예기치 않은 부작용이 발생할 수 있습니다. Instance는 독립된 데이터 관리가 가능하나, 메모리 사용량이 증가할 수 있습니다. 상요 환경에 따라 적절한 방식을 선택하는 것이 중요합니다.
ABAP에서 Static과 Instance의 예제 코드
ABAP에서 static과 instance를 사용한 간단한 예제를 살펴봅시다. 다음의 코드 스니펫은 클래스 생성 및 변수 선언을 보여줍니다.
위의 코드 예제는 static 변수와 인스턴스 변수가 각각 어떻게 선언되고 활용될 수 있는지를 보여줍니다. 되고, 인스턴스 변수는 객체를 생성 후 메서드를 통해 설정됩니다.