사내 SAP ERP 시스템 운영 업무를 수행하며, 학부생 시절 전혀 접해보지 못했던 ABAP를 사용하기 시작했다.
아무래도 사내 시스템을 개발하고, 유지보수 하는 데에 특화되었고, SAP 생태계에 특화된 프로그래밍 언어이다 보니까
우리가 흔히 알고 있는 프로그래밍 언어(Java, python, javascript)와 다르게 ABAP 만이 가진 특이한 점들이 많았다.
그래서 이번 기회에 ABAP만이 가진 특징들을 정리하여 공유해보려고 한다!
ABAP에서 사용되는 특별한 자료구조들이 많은데, 그 중에서도 가장 인상 깊었던 자료구조 4개를 소개해보고자 한다.
바로 도메인(Domain), 데이터 딕셔너리(Data Dictionary), 트랜스페어런트 테이블(Transparent Table), 내부 테이블(Internal Table)이다.
아무튼 ABAP에서 이런 특이한 자료구조들이 있는 이유는 ABAP이 위에서 이야기한 SAP 시스템의 특성과 목적에 맞게 만들어졌기 때문이다.
SAP 시스템은 기업의 다양한 비즈니스 프로세스를 통합하고 효율적으로 관리하기 위해 설계되었으며,
ABAP은 이러한 목적을 충족시키기 위해 독자적인 특징을 갖고 있다.
내가 위에서 짚은 데이터 딕셔너리와 투명 테이블과 같은 개념들은 SAP 시스템의 데이터 관리와 통합에 중요한 역할을 수행하며,
이는 다른 프로그래밍 언어에서는 주로 볼 수 없는 특징이다.
ABAP은 SAP 소프트웨어와 강력하게 통합되어 SAP 시스템의 다양한 모듈과 컴포넌트와 상호 작용할 수 있다.
SAP의 모듈화 기능은 ABAP 언어를 사용하여 코드를 모듈화하고, 특정 기능을 수행하는 재 사용 가능한 단위로 분할하는 데 쓰인다.
이를 통해 개발자는 함수 모듈, 클래스, 모듈 풀 등을 사용하여 재 사용 가능하고 유지 보수가 용이한 코드를 작성할 수 있으며,
실제로 유지 보수할 때 모듈 별로 로직을 수정하는 데에 많이 쓴다.
트랜잭션 코드(T-code)는 SAP 시스템에서 특정 기능 또는 프로그램에 접근하기 위한 약어이다.
예를 들어, SAP의 MM 모듈에서 재고 조회를 위해 사용되는 트랜잭션 코드는 'MB51'이다.
(사내 시스템마다 사용하는 주로 T code가 다 다르다.
이를테면, 제조업이 아닌 업계에서 SAP ERP 시스템을 사용한다면 재고를 볼 일이 없으니까 MM 모듈을 쓸 일이 없다.)
각 트랜잭션 코드는 특정 모듈이나 프로그램으로 연결되어 사용자가 해당 기능을 실행할 수 있도록 한다.
이를테면, 사용자가 SAP GUI 또는 SAP Logon 화면에서 트랜잭션 코드를 입력하고 실행 버튼을 클릭하여 특정 기능을 실행할 수 있다.
예를 들어, 'MB51'을 입력하면 해당 트랜잭션의 실행 화면으로 이동한다.
이러한 트랜잭션 코드와 연계된 모듈은 사용자가 SAP 화면에서 특정 기능에 빠르게 접근할 수 있도록 해주어 사용자 경험을 향상시다.
그 외에 타 IDE에 비해 아주 강력한 디버깅 기능을 가지고 있다던가,
72자를 넘거나 변수명이 8글자를 넘으면 컴파일 오류를 띄운다던가
(…물론 전자의 경우 프로그램이 새로 생성될 때 해당 글자를 넘으면 안 된다는 가이드라인 비스무리한 게 있긴 하다)
심미적으로 완벽하지는 않지만 GUI 환경이 통합되어 있어 프론트 단과 백 단을 통합한 상태로 개발할 수 있다는 특징들을 가지고 있으나
위에서 꼽은 3가지가 현재 내게 있어 가장 특이한 점인 듯하여 적어보았다.