나의 친한 친구중 한명이 링크드인에 “게이름의 결과는? (What Laziness leads to?)” 라는 제목을 가진 단 4줄짜리 글을 쓴적이 있습니다.
게으름의 결과는 무엇인가?
자동화
자동화의 후유증은 무엇인가?
더 게으르고 더 많이 번다
짧은글 경연이 있었다면, 내 친구의 글은 분명히 상위권에 랭크되었리라 생각합니다. 아밥퍼로서 우리는 메일 반복되는 일을 많이 하고 있습니다. 예를들어, 모든 프로그램에 프로그램개요 주석박스를 입력해야 하고, 모든 프로그램에 이벤트를 선언해야 하고, 모든 프로그램에 셀렉션 스크린을 만들어야 합니다, 등등.. 복사하기 & 붙여넣기는 컴퓨터 과학자가 발명한 최고의 발명품입니다. 대부분 컴퓨터 사용자들은 사용하는 플랫폼에 관계없이 모두 Ctrl + C , Ctrl + V 기능을 사용하고 있습니다.
최근 몇년사이 ABAP 에디터도 많이 진화했습니다. 지루한 파란 화면에서 각자 화면색상/배경색상을 선택 가능하도록 변화했습니다. GUI에서 이클립스로, 아밥과 아밥퍼는 큰 도약을 한 셈입니다. 최근에는 아법퍼가 자바스크립트, SQL, UI 프로그래밍도 합니다. 하지만 (나처럼) 올드 아밥퍼나 아직 새로운 영역에 업무를 접할 기회가 없었던 사람들은 대략 90 퍼센트 정도의 업무를 ABAP 워크벤치/에디터에서 하고 있습니다.
스마트한 아밥퍼로써 기존 ABAP 에디터에서 사용할 수 있는 유용한 단축키와 도움기능를 살펴 봅시다.
1. 한줄 복사하기 (복제: duplicate)
단축키 Ctrl + D 를 누르면 한줄을 동일하게 아래줄에 복제하여 만들어 줍니다.
2. 여러줄의 한컬럼을 복사하여 붙여넣기하는 방법. 전체 컬럼이 아니라 한컬럼입니다(전체컬럼 복사는 쉽지요).
여러줄의 한컬럼을 복사하는 방법은 Alt 키를 누른채 드래그하는 겁니다.
아밥 에디터에서 한컬럼만 복사할 수 있습니까? 네, 가능합니다.
아래 그림을 보세요. 상수 lc_tab 만 선택하였고 다른 컬럼은 선택하지 않았습니다.
컬럼 시작시점에서 Alt 키를 누른채 드래그하여 끝나는 지점까지 드래그합니다.
이제 Ctrl + C 를 눌러 복사하고 붙이고 싶은 곳으로 이동합니다.
붙이고 싶은 곳에서도 같은 방법으로 드래그를 합니다. 아래 그림을 보세요. 붙여넣기 할 공간을 드래그하는 동안 Alt 키를 계속 누르고 있어야 합니다.
선택한 공간에 붙여넣기(Ctrl + V)하면 복사된 것을 볼 수 있습니다.
이 기능은 여러줄에 동일한 단어를 반복할때 상당히 유용합니다. 위의 예는 탭으로 구분된 상수 사용이였습니다. 다른 예를 들어, BEGIN OIF TYPE 선언을 사용할때 TYPE을 여러줄에 입력해야 할겁니다. SE11에서 필드명과 타입을 복사하여 에디터에 붙여넣기 하고 Alt + 드래그를 이용하여 TYPE을 한꺼번에 입력할 수 있습니다.
처음에는 컬럼선택하기가 힘들겠지만 연습하면 나아집니다 :)
이 글도 참고해 보세요: Back to Basics
3. 줄 분리선 또는 코드 분리선 (Separators)
코드 중간에 분리선을 넣는 경우가 있습니다. 주로 코드 내용을 쉽게 구분하기 위해서, 모듈화를 위해서, 또는 단지 코드를 이쁘게 보이려고 하기도 합니다. '*' 나 '"' 를 입력하고 '-'를 줄의 끝까지 입력하시나요? ***** 별표만으로 구성할때 마찬가지로 '*'를 줄의 끝까지 입력합니까?
SAP에 있는 코드 완료(자동완성, code completion) 기능을 이용해 보세요. 단지 '*--'까지만 입력하면 추천해줍니다. 비슷하게 '***'을 입력해도 추천이 나옵니다. 이때 탭키를 누르기만 하면 한줄이 끝까지 완성됩니다.
개발자라면 IF-ELSE, DO-ENDO, LOOP ENDLOOP, CASE ENDCASE 자동 완성을 이용해 보았을 겁니다. 그런데 IF ELSE ENDIF의 경우는 어떻습니까? 있습니다. 바로 ife를 입력하면 추천해줍니다. 게다가, SAP의 자동완성 기능은 사용자가 필요에 따라 마음대로 새로 만들 수도 있습니다.
이런 자동완성은 모두 어디에 저장되어 있을 까요?
에터더 화면의 오른쪽 아래 구석에 있는 작은 옵션 아이콘을 클릭합니다. 코드 완료(Code Completion)에서는 시간 및 여러 옵션을 조정할 수 있습니다. 코드 템플릿(Code Template) 부분이 바로 탭을 눌러서 코드 자동완성을 입력하는 내용이 있는 곳입니다.
자신만의 코드 자동완성을 만들고 관리 할 수 있습니다.
이렇게도 할 수 있습니다: Are you an ABAP Coder or a Programmer?
4. 프로그램 템플릿
새로운 프로그램을 만들때 대부분은 항상 필요한 공통의 코드가 있기 마련입니다. 프로그램개요 주석박스, 수정 로그, 셀렉션 스크린, 프로그램 이벤트 등등. 보통은 다른 프로그램을 템플릿으로 참고하여 복사하여 시작합니다.
보시죠. 지금 신규 프로그램 작성을 시작하고 있습니다. 아무것도 없이 ZZ_TEMPLATE를 입력하였습니다. 자동완성 추천되는게 보입니다. 이제 '탭'키를 누르면, 전체 프로그램 뼈대가 완성됩니다.
여기에는 항상 필요한 공통의 코드를 가지고 있습니다. 프로그램개요 주석박스, 수정 로그, 셀렉션 스크린, 프로그램 이벤트. 템플릿을 생성했으면, 단지 프로그램 이름, 설명, 로그를 약간 변경해주면 됩니다. 그리고 셀렉션 스크린에 필드를 입력합니다. 만약 체크박스나 라디오버튼이 필요없다면, 지우면 됩니다.
지난 프로젝트중에는 이런 템플릿 목적으로 커스텀 패턴을 사용한 적이 있습니다.
시간이 지나고 알게 되었지만, SAP는 커스텀 패턴을 사용하지 않고도 템플릿을 만드는 스마트한 방법을 제공합니다(커스텀 패턴은 개발오브젝트이기 때문에 개발전송을 하거나 로컬오브젝트로 만들어야 함). 이번에도 오른쪽 아래의 작은 옵션 아이콘을 클릭합니다. 코드 템플릿 -> 추가 -> 이름과 내역 입력 -> 확인 (Code Templates ->Add -> Give the name & description -> OK).
템플릿 코드를 붙여넣고 저장 하세요. 각자 템플릿을 활용하여 일을 빨리 끝낼 수 있어요. :)
Note : 자주 사용하는 어떤 작업에도 템플릿을 만들 수 있습니다. 예를 들어, 셀렉션 스크린 코드, 파일 검증 코드, F4 서치헬프 코드, MODIF 관련 코드 등등. 문법을 잘 기억하지 못하는 경우 이런 것도 템플릿으로 만들어 두면 좋습니다. 어려운 문법대신 내가 만든 템플릿 아이디만 기억하면 됩니다. :)
만약 이 템플릿이 마음에 든다면 다운로드 받아서 사용해 보세요. Template File.
아마 대부분 프로젝트에서는 각각 다른 프로그램개요 박스 템플릿을 가지고 있을테니, 각자 프로젝트에 맞춰서 템플릿을 저장해두세요.
이 글도 참고해 보세요: Do all ABAPers know Fixed Point Arithmetic?
5. 코드를 PDF 파일로 다운받기
코드를 백업받아야 할 경우가 있습니다. 보통은 메모장에 복사 붙여넣기 하거나 메뉴 유틸리티에서 다운로드 기능을 이용합니다. 색상 표시를 그대로 유지하여 PDF 파일로 다운받는 기능이 있습니다.
이번에도 오른쪽 아래의 작은 옵션 아이콘을 클릭합니다. 키보드 옵션으로 가서 File.ExportPDF 를 찾고 단축키를 지정합니다. 저의 경우 Shift + P 로 하였습니다. PDF저장 기능에 사용할 단축키는 원하는대로 다른 키를 지정할 수 있습니다.
PDF 저장을 원하는 프로그램으로 이동합니다. 단축키 Shift + P (또는 당신이 지정한 키)를 누릅니다. 저장할 위치를 묻는 창이 뜨면 원하는 곳에 저장하세요.
PDF 로 보는 코드는 훨씬 보기 좋습니다 그렇죠? :)
6. 일할때 시간을 가장 오래 지내는 에디터를 꾸며봅시다.
당신 삶의 소소한 즐거움이 될 것입니다. 에디터의 푸르딩딩한 화면을 처다보는게 지겹다면, 가독성을 높이기 위해 글꼴과 색깔을 변경하고 싶다면, 재미로 다른 색깔을 쓰고 싶다면, 눈을 편하게 화면을 조정하고 싶다면, 그렇다면 아래 그림을 보세요.
이건 현재 내가 사용하는 에티터의 모습입니다.
에디터를 꾸미고 싶다면 이번에도 오른쪽 아래의 작은 옵션 아이콘을 클릭합니다. 글꼴 및 색상(Fonts and Colors)을 선택합니다. 아래 그림처럼 해보세요. 내가 사용하는 셋팅입니다.
이글에서 우리는 이 작은 옵션 아이콘으로 부터 무엇을 할 수 있는지 배웠습니다. 이글을 보신 분들은 이제 옵션 아이콘을 놓치고 가는 일은 없을 것으로 믿습니다.
혹시 더 좋은 아이디어 나 흥미로운 생각이 있으면, 공유 하도록 합시다. 우리 모두를 더욱 스마트하게/게으르게 할 무언가가 있을지도 모릅니다. 그렇다면 더욱 더 환영합니다. :)
구독을 하시면 이런 유용한 글을 이메일로 바로 받아 볼 수 있습니다. 당신의 개인정보는 잘 보호해 드립니다. (번역글에는 없습니다. 원본글을 찾아가세요)
이글이 마음에 든다면, 공유 버튼을 눌러주세요(번역글에는 없습니다. 원본글을 찾아가세요). 그리고 facebook.에 좋아요 부탁합니다.
감사합니다.
참, 아래 튜토리얼도 한번 읽어보세요.
Web Dynpro ABAP
SAP ABAP for HANA
이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
https://www.zapyard.com/lazy-and-smart-abapers/