반응형

전체 글 20

ABAP 클린 코드 - METHOD 메서드 (메서드 바디) [10-6]

“하나의 메서드는 한 가지만을 수행하라“는 객체지향 설계에서 단일 책임 원칙(Single Responsibility Principle, SRP)을 강조하는 지침입니다. 이 원칙은 메서드가 단 하나의 명확한 책임을 가져야 하며, 하나의 작업만을 수행해야 한다는 것을 의미합니다. 이는 코드의 가독성, 유지보수성, 테스트 용이성을 향상시키기 위해 중요한 원칙입니다. 단일 책임 원칙(SRP)의 중요성  1. 가독성 향상메서드가 하나의 작업만 수행하면, 메서드의 목적이 명확해지고 코드가 더 읽기 쉬워집니다. 이는 코드 작성자뿐만 아니라, 다른 개발자가 코드를 이해하고 수정하는 데에도 큰 도움이 됩니다. 2. 유지보수 용이성책임이 명확한 메서드는 변경이 필요할 때 수정 범위를 좁게 유지할 수 있습니다. 한 가지 일..

ABAP Clean Code 2024.08.29

ABAP 클린 코드 - METHOD 메서드 (파라미터 초기화) [10-5]

“EXPORTING 참조 파라미터를 초기화하거나 덮어쓰기하라“는 ABAP에서 EXPORTING 파라미터를 참조(reference)로 전달받을 때, 해당 파라미터가 초기화되지 않았거나, 이전 상태를 그대로 유지한 채로 전달되는 상황을 피하기 위한 설계 지침입니다. 이 지침은 데이터 일관성과 예측 가능한 동작을 유지하고, 코드에서 예상치 못한 동작을 방지하기 위한 것입니다. EXPORTING 참조 파라미터의 문제점 참조로 전달되는 EXPORTING 파라미터는 함수나 메서드가 호출되기 전의 상태를 유지할 수 있으며, 그 상태를 의도하지 않게 사용하는 경우 문제가 발생할 수 있습니다. 특히, 함수나 메서드 내부에서 해당 파라미터를 수정하지 않는다면, 파라미터의 상태가 예상치 못한 방식으로 전달될 수 있습니다. ..

ABAP Clean Code 2024.08.28

ABAP 클린 코드 - METHOD 메서드 (파라미터 유형) [10-4]

“EXPORTING보다 RETURNING을 사용하라“는 ABAP 코딩 스타일 가이드에서 권장하는 지침으로, 메서드나 함수가 단일 값을 반환할 때는 EXPORTING 파라미터 대신 RETURNING 파라미터를 사용하라는 의미입니다. 이는 코드의 간결성, 가독성, 일관성을 높이기 위해서입니다. RETURNING과 EXPORTING의 차이점 RETURNING단일 값을 반환할 때 사용됩니다.메서드나 함수 호출 결과를 바로 할당할 수 있어 코드가 더 간결해집니다.보통 핵심적인 반환값이 있는 경우에 사용되며, 메서드나 함수가 값을 반환하는 의도가 명확해집니다.* RETURNING 사용METHOD calculate_sum. RETURNING VALUE(rv_sum) TYPE i. rv_sum = iv_num1 +..

ABAP Clean Code 2024.08.27

ABAP 클린 코드 - METHOD 메서드 (파라미터 개수) [10-3]

“IMPORTING 파라미터를 3개 이하로 조정하라“는 메서드나 함수의 IMPORTING 파라미터 개수를 가급적 3개 이하로 유지하라는 코딩 스타일 지침입니다. 이는 메서드나 함수가 너무 많은 인수를 받지 않도록 제한하여, 코드의 가독성과 유지보수성을 높이고, 더 나은 설계를 추구하는 것을 목표로 합니다. 왜 IMPORTING 파라미터를 3개 이하로 제한해야 하는가?  1. 가독성너무 많은 파라미터를 전달하면 메서드의 목적이 모호해질 수 있고, 메서드 호출부가 복잡해지며 이해하기 어려워집니다. 3개 이하의 파라미터로 제한하면 메서드가 수행하는 작업의 범위가 더 명확해지고, 코드가 더 직관적으로 보일 수 있습니다. 2. 유지보수성많은 파라미터를 가진 메서드는 변경에 취약할 수 있습니다. 파라미터가 많아지면..

ABAP Clean Code 2024.08.26

ABAP 클린 코드 - METHOD 메서드 (객체 지향 메서드) [10-2]

“정적 메서드보다 인스턴스를 사용하라“는 객체지향 프로그래밍에서 정적 메서드(static methods)를 남용하지 말고, 인스턴스 메서드(instance methods)를 사용해 객체의 상태와 행동을 관리하라는 지침입니다. 이 지침은 객체지향 원칙을 잘 따르기 위한 설계 원칙으로, 코드의 유연성과 재사용성을 높이는 데 중점을 둡니다. 정적 메서드와 인스턴스 메서드의 차이점 정적 메서드정적 메서드는 클래스에 속한 메서드로, 객체를 생성하지 않고도 클래스 이름으로 직접 호출할 수 있습니다.정적 메서드는 주로 상태를 가지지 않으며, 외부에서 전달된 인수만을 사용하여 작업을 수행합니다.정적 메서드는 특정 기능(예: 유틸리티 함수)을 수행할 때 유용하지만, 클래스와 객체의 상태를 관리하는 데는 적합하지 않습니다..

ABAP Clean Code 2024.08.25

ABAP 클린 코드 - METHOD 메서드 (호출) [10-1]

“절차적인 콜(procedural call)보다 펑션콜(functional call)을 사용하라”는 지침은 절차적 프로그래밍 방식보다 함수형 프로그래밍의 스타일을 선호하라는 의미입니다. 이는 코드의 가독성, 유지보수성, 테스트 용이성을 높이기 위한 설계 원칙 중 하나로, 특히 상태를 변경하는 부작용(side effect)을 최소화하고, 명확한 입력과 출력을 가진 함수들을 사용하는 것이 좋다는 것을 강조합니다. 함수형 패턴 적용의 필요성함수형 프로그래밍에서는 함수가 입력을 받아 출력을 반환할 뿐, 외부 상태를 변경하지 않습니다. 이러한 함수형 접근법은 코드의 가독성을 높이고, 디버깅 및 테스트를 쉽게 만들어 줍니다.함수형 프로그래밍 방식으로 코드를 리팩토링하면, 코드의 의도를 더 명확히 표현할 수 있으며,..

ABAP Clean Code 2024.08.24

ABAP 클린 코드 - Class 클래스 (생성자) [9-3]

“CREATE OBJECT 대신에 NEW를 사용하라”는 최신 ABAP 문법에서 객체 생성 시 더 간결하고 직관적인 방법인 NEW 키워드를 사용하라는 지침입니다. NEW는 SAP NetWeaver 7.4 이후부터 도입된 구문으로, CREATE OBJECT를 대체하는 역할을 하며, 코드 가독성을 높이고 간결하게 만드는 데 도움이 됩니다. CREATE OBJECT와 NEW의 차이점 CREATE OBJECT객체를 생성할 때 사용되는 전통적인 구문입니다. CREATE OBJECT는 명시적으로 객체를 생성하고, 오류 처리(RAISE EXCEPTION)를 통해 객체 생성 시 발생할 수 있는 오류를 처리할 수 있습니다.* CREATE OBJECTDATA: lo_object TYPE REF TO lcl_class.CRE..

ABAP Clean Code 2024.08.23

ABAP 클린 코드 - Class 클래스 (범위) [9-2]

“기본적으로 전역 클래스를 사용하고 적절한 경우에만 로컬 클래스를 사용하라”는 조언은 주로 클래스의 가시성과 유지보수성에 관한 것이다. 1. 전역 클래스 (Top-Level Class)란?전역 클래스는 패키지 레벨에서 정의되는 클래스입니다. 자바에서는 하나의 .java 파일 안에 여러 개의 클래스가 있을 수 있지만, 이 중 하나의 전역 클래스만이 public으로 선언될 수 있습니다. 대부분의 클래스는 전역 클래스로 정의됩니다. 장점가시성: 전역 클래스는 다른 클래스나 패키지에서 쉽게 접근 가능하며, 코드의 구조와 가독성이 높습니다.유지보수성: 코드가 전역 클래스에 존재하면, 파일이나 패키지 구조를 따라 쉽게 찾아볼 수 있습니다. 이는 코드 관리와 유지보수에 유리합니다.재사용성: 전역 클래스는 다른 클래스..

ABAP Clean Code 2024.08.22

ABAP 클린 코드 - Class 클래스 (객체 지향 클래스) [9-1]

“정적인 클래스보다 오브젝트를 사용하라”는 지침은 객체지향 프로그래밍(OOP)에서 정적인(static) 클래스나 정적 메서드를 사용하는 것보다는 객체를 생성하고 인스턴스 메서드를 활용하는 것이 더 바람직하다는 의미입니다. 객체지향 원칙을 잘 활용하면 코드의 유연성과 재사용성을 높일 수 있으며, 유지보수하기 쉬운 구조를 만들 수 있습니다. 정적 클래스와 인스턴스 클래스의 차이점 정적 클래스정적 클래스나 정적 메서드는 객체를 생성하지 않고도 클래스 레벨에서 직접 호출할 수 있습니다.일반적으로 정적 클래스는 상태를 가지지 않고, 유틸리티 메서드나 공통 함수 모음에 자주 사용됩니다.* 정적 클래스CLASS lcl_util DEFINITION. PUBLIC SECTION. CLASS-METHODS: cal..

ABAP Clean Code 2024.08.21

ABAP 클린 코드 - 정규식 [8]

“정규식 대신에 간단한 메서드를 사용하라”는 지침은 복잡하고 가독성이 떨어질 수 있는 정규 표현식(Regular Expression) 대신, 간단하고 명확한 메서드를 활용하여 문제를 해결하라는 의미입니다. 정규 표현식은 강력하지만, 잘못 사용하면 코드의 복잡도가 높아지고, 다른 개발자들이 이해하기 어려운 코드가 될 수 있습니다. 따라서 간단한 작업을 수행할 때는 정규식을 사용하기보다는 명확한 메서드로 대체하는 것이 더 나은 선택이 될 수 있습니다. 정규식의 문제점복잡성: 정규 표현식은 특정 패턴을 처리하는 데 강력하지만, 매우 복잡해질 수 있습니다. 특히, 정규식을 잘 모르는 개발자들에게는 해독하기 어려운 코드가 될 수 있습니다.가독성 저하: 정규 표현식은 코드의 가독성을 떨어뜨릴 수 있습니다. 정규식 ..

ABAP Clean Code 2024.08.20
반응형