드디어 ABAP 인생 첫 프로젝트를 마무리했습니다.(고생했다 진짜..ㅠㅠ)
아무래도 처음 프로젝트를 진행하다 보니 미숙한 실수들을 했었습니다. 앞으로는 하지 않을 실수들을 기록하여 다음 프로젝트에는 더 완벽하게 진행될 것 같습니다.
1. Domain Fixed Value
개발 중에는 흔하게 있는 상황으로 Input 데이터를 Domain Fixed Value 로 변화하여 Ootput 해야 되는 상황이 많이 있습니다. 저는 이때 Fixed Value 와 데이터의 자릿수가 맞는다면 Input 변수를 직접적으로 Fixed Valued로 변환하여 출력시켰었는데 이는 옳지 않는 방법이었습니다. 이와 같이 개발하면 데이터의 혼돈이 생기고 데이터 관리가 불편해진다는 문제가 있었습니다.
변수 1개를 변환하며 사용한다면 데이터 출력 후 이벤트 발생 시 데이터가 안맞는 상황이 생길 수 있고 출력만 하던 데이터를 추후에 DB에 저장하는 일이 생길 수 있다는 문제가 있을 수 있습니다.
그렇기 때문에 Input 변수와 Text 변수를 반드시 만들어 사용하해야 합니다.
< As-Is >
< To-Be >
추가적으로 Fixed Value 값을 읽을때는 Function을 사용하는 것보다 DD07T 데이터를 ITAB에 담아 사용하는 것을 권장합니다. Fixed Value 값을 얻기 위해서는 DB를 Select가 필요하므로 반복해서 사용한다면 프로그램의 성능저하를 일으킬 수 있기 때문입니다.
2. Hard Coding
이번 건은 실수는 아니라 개발 취향이라고 생각합니다. 저는 데이터를 입력할 때 문자를 직접 입력하여 개발을 했었던 적이 있습니다. 문자를 직접 입력하면 반복되는 문자를 다르게 입력하는 실수가 생길 수 있습니다. 특히 Hard Coding 한 문자는 디버깅 시 변경이 불가하다는 문제가 있습니다. 예를 들어 데이터가 잘못 들어가서 덤프가 나고 있다면 디버깅을 통해 데이터 입력값을 바꾸고 싶은데 Hard Coding 문자는 변경할 수 없기 때문에 제한이 생길 수 있습니다. 그렇기에 Constants 선언을 통해 데이터를 관리하는 것을 추천합니다.
< As-Is >
<To-Be>
3. Screen 변수 선언
ALV를 개발하다 보면 Screen을 생성하게 됩니다. 이때 PAI, PBO에 Module 선언을 통해 개발을 진행하게 되는데 이 Module 안에 데이터를 선언하면 안 됩니다. Module 안에 직접 선언하게 되는데 이 경우 Global로 선언되기 때문에 가급적 Module 선언 후 Perform문을 만들어 Coding 하는 것을 추천드립니다.
4. 변수 Clear
개발 시 변수가 Clear 되지 않아 오류가 나는 상황이 있었습니다. 그래서 왜 이런 실수가 나오는지 생각해 봤습니다.
저는 개발 시 Clear 구문을 변수를 다 사용하고 나서 사용했었는데 중간에 그 변수를 한번 더 사용하거나 하는 상황에서 Clear가 안 된 상태로 사용되거나 하는 문제가 발생되었습니다.
해결책으로는 데이터 입력할 때 Clear를 하는 것입니다. 데이터를 입력하는 곳 바로 위에서 Clear를 하면 데이터가 잘못입력된 상태로 로직이 적용되는 문제는 해결되는 점이 있었습니다. Clear 스타일은 사람마다 다르기 때문에 편한 방식으로 꼼꼼히 개발하면 될 것 같습니다.
5. CTS 정리
CTS를 정리하는 습관은 꼼꼼하게 하면 할수록 좋은 습관이 된다고 생각합니다. Standard를 개발하다 보면 개발자들 간의 CTS가 겹치는 경우가 있을 수 있고, 한 개의 프로그램에 CTS가 많이 생성되는 경우가 있습니다. 원활한 CTS 이관을 위해 CTS를 항상 기록해 두는 것을 추천드리고, Standard 프로그램을 개발 후 품질 서버로 이관했을 때는 운영서버에 이관하기 전까지 개발서버에서 다른 사용자의 접근을 알기 위해 개발 부분을 Lock을 잡아두시는 것을 추천드립니다.
품질서버로 CTS를 릴리즈하면 개발서버에 Lock 잡아둔 것이 모두 풀리기 때문에 다른 사용자의 접근이 풀립니다. 이때 서로 이관속도가 다르면 개발 버전이 꼬일 수 있기 때문에 운영서버에 이관하기 전까지 Lock을 잡아두는 것을 추천드립니다.
'SAP > ABAP' 카테고리의 다른 글
ABAP Secondary Key (0) | 2024.05.13 |
---|---|
[SAP] 번역 Object CTS이관(관리영역 메뉴 번역 이관) (1) | 2024.04.18 |
ABAP Class에 대해 알아보자 #1 (0) | 2023.05.15 |
FIeld-Symbol로 간편하게 코딩하기 / Loop ~ Field-Symbol (0) | 2023.03.28 |
LOOP AT GROUP BY 사용해보기 (0) | 2023.03.27 |