안녕하세요.
그동안 현업에서 MM/PP/SD를 직접 사용하는 사용자였습니다만,
우연한 좋은 기회에 SAP ABAP을 전문적으로 배울 수 있는 팀으로 이동하게 되었습니다.
저는 문과 출신에 기본적인 프로그램 언어도 경험이 없는 문외한이라 이동이 기쁘기는 하지만 어려움이 많을 것 같습니다.
최근 이지아밥 / ABAP/4 2권을 보고 있는데 이지아밥책은 문법 내용 위주라서 이해하는데 좀 어려움이 있고,
그니마 ABAP/4는 ABAP에 대해서 잘 모르는 제가 봤을 때 ABAP이라는 건 전반적으로 어떤 내용이다 라는 감을 잡게 해주는 것 같습니다.
기본적인 개념은 ABAP/4 교제를 통해서 알 수 있을 것 같은데, 주어진 예제에 맞게 문제를 같이 따라해보고 문제를 풀어보는 와중에 문법에 대해서는 이해를 못 하겠습니다.
기본적인 IF 라던지, CASE 라던지, WHEN, WHERE, WRITE 등이 왜 여기에 쓰였고 왜 문법이 이렇게 되었는지..
그냥 막연히 이 상황에서는 이걸 쓰고 문법은 이렇다 라고 외우면 될까요?
(예문)
DATA : it_01 TYPE c lengh 6.
이런 건 인터널 테이블 01번이 문자열이며 길이는 6이다. 이렇게는 알겠는데 파라미터1과 2로 DATA를 선언 했을 경우
(예문)
CASE pa_op(1)
when '+'
result = pa_int1 + pa_int2
그냥 문맥상 pa_op라는 연산자가 + 일때는 pa_int1 + pa_int2를 더해라 라는 것 같은데 저때 왜 CASE를 쓰는지, pa_int1이라는 변수는 왜 저렇게 쓰는건지?
변수를 pa_01 이라고 표현하면 안되는것인지?
저 위에 내용들은 교제에 있는걸 발췌한거고 문법 내용을 이해하면서 문제를 같이 풀어가는 와중에 이해가 안가서 조언을 구하고자 글을 써봅니다.
그리고 문법 'a LIKE b' 처럼 a의 속성을 b의 속성과 동일하게 한다거나, 'FROM READ a' a의 내용을 읽어서 가져올 것이다 처럼 의미를 정리한 혹시 서적이나 교제 같은 내용이 있을까요?
이제 막 배운 초보가 궁금증이 있어 글을 올려 봅니다..
댓글 4
-
이종
2019.05.13 10:08
-
죠죠
2019.05.14 18:07
정말 좋은 조언 감사 드립니다.
어떻게 공부해야할지 막막했는데 님 덕분에 어느정도 방향이 잡힐 것 같습니다^^
말씀처럼 Q&A 검색해보고 2번, 5번, 12번 먼저 보도록 하겠습니다.
고맙습니다.
-
josch
2019.05.14 01:25
ABAP은 다른 프로그램 언어와 달리 거의 모든 언어의 장점을 다 섞어 놓은 프로그램언어입니다. 한번에 만들어서 릴리즈한 언어가 아니고 1970년대부터 계속 발전 보완된 언어입니다. 다른 언어처럼 일관된 철학이 없으며 일관된 규칙도 없습니다. 지금 ABAP 4로도 거의 1980년대 식 프로그램을 짤 수도 있고, 2020년대식 프로그램을 만들 수도 있습니다. 즉, 라틴어부터 중세 언어, 최신 언어까지 다 섞여 있습니다. 중복되는 기능도 다른 표현으로 많습니다. 최근에는 Java에서 괜찮은 기능은 많이 가져와서 새로운 구문으로 많이 생성해놨습니다. 일단 의문점이 생기는 건 당연합니다. 일관된 철학이 없으니까요. 일단 외국어 문법을 배우듯이 프로그램 언어의 문법을 외우시고, 익숙해지시는게 좋습니다. 저같은 경우에는 책을 한가지만 보는 것보다는 여러 책들을 반복해서 읽었습니다. 같은 기능도 다른 식으로 다른 책에서는 표현하니 이해하기가 쉽습니다. 한국어로 된 책도 많으나, 더 잘 이해하시려면, SAP press의 책을 영어로 읽으시는 것을 추천합니다. 프로그램을 이해하는 데는 왕도는 없습니다. 자기 손가락으로 많이 쳐보는 수 밖에.... 그리고 가능한 많은 예제를 스스로 풀어보는 것 밖에는 ....
-
죠죠
2019.05.14 18:09
넵, 역시 많은 연습과 보는게 왕도인가보네요..
좋은 정보 감사합니다. 우선 이지이밥과 아밥4 2가지를 먼저 공부해보고 추가로 원문도 봐보도록 해볼께요.
감사합니다.
이지아밥 책 맨 뒤에 인덱스를 보시면 됩니다.
IF, CASE-WHEN, FOR, WHERE 등의 기초문법은 생김새가 다를지라도 동작 자체는 거의 유사합니다.
또한 궁금한 명령어에 커서를 대고(혹은 드래그를 한 채로) F1키를 누르면 SAP에서 제공하는 help documentation이 있습니다.
명령어마다 참고해보심이 좋을 것 같습니다.
help doc은 외국어 사전과 같습니다. 읽는 법을 알아두어야 나중에 필요할 때 써먹을 수 있습니다.
질문하신 내용에 대해 몇가지만 짚어 드리자면
1. it_01은 위 선언에서는 CHAR타입의 길이6짜리 단일값으로 선언되었습니다. 테이블이 아닙니다.
2. CASE에 대한 help doc을 참고하세요. 또한 easyabap의 187페이지에 개념이 간단하게 설명이 되어있네요.
3. 이름은 뭘로 선언해도 상관없습니다. 다만 남과 내가 알아보기 쉽게 일종의 규칙을 만들어 놓는거죠.
파라미터라면 PA_로 시작하게 만들어 놓으면 알아보기 편하고, int는 숫자를 뜻하는 integer의 앞자입니다.
더하기 위한 숫자1과 숫자2니 위처럼 표현해 놓은거겠죠.
4. 비전공자의 입장에서 공부한 경험을 토대로 말씀드리면..
easyabap의 챕터2, 5, 12 부터 먼저 보시는걸 추천해요.
모르는 부분이 나오면 그때 그 부분을 이지아밥 내에서 찾아보는 식으로 보세요.
A를 이해하려면 B가 필요하고, B를 이해하려면 C가 튀어나오는 경우가 많아 처음에는 혈압오를 때가 많았습니다.
이럴때는 B와 C는 '우선은' 전체적인 개념만 알고 있으면 됩니다. 세부적인 내용은 끝도 없으니까요.
또한 책 마지막의 INDEX도 매우 잘 구성되어 있는 편입니다.
좋은 책이에요. 태어나서 500p가 넘는 책중에 유일하게 처음부터 끝까지 읽은 책입니다.
5. 예제는 결과가 정상적으로 나오는지가 중요한게 아니고, 이 예제가 왜 나왔냐가 더 중요합니다.
대개의 경우, 예제에서 'WRITE:' 문을 사용하는 이유는 데이터 오브젝트에 값이 제대로 들어갔는지를 눈으로 확인하기 위함입니다.
왜 이런 값이 이 순간에 들어가게 되었는지 아는게 중요해요.
열공하시고, 모르는게 있으면 여기 Q&A 게시판이 보유한 자료가 엄청납니다. 대개는 다 있을겁니다. 힘내세요