본문 바로가기

전체 글

(53)
[SAP ABAP] HEADER LINE HEADER LINE 실무 개념 정리✅ HEADER LINE개요ABAP에서 WITH HEADER LINE은 내부 테이블 선언 시 한 줄짜리 구조체(워크 에어리어)를 함께 생성하는 구식 문법이다.이로 인해 내부 테이블과 해당 구조체를 동일한 변수명으로 접근하게 되어, 코드가 암묵적으로 동작하고 유지보수 시 혼란이 발생할 수 있다.SAP ABAP Style Guide에서는 WITH HEADER LINE을 비권장(deprecated) 문법으로 분류함구조체인지 테이블인지 명확하지 않아 가독성 저하객체지향 개발 방식과 호환되지 않으며, 최근 SAP 시스템에서는 사용 자체가 제한됨표준 함수, 메서드, 클래스 내에서는 대부분 사용 불가HEADER LINE의 정의DATA: it_customer TYPE STANDARD..
[SAP ABAP] FIELD-SYMBOLS vs. DATA FIELD-SYMBOLS vs. DATA 실무 개념 정리✅ FIELD-SYMBOLS요약메모리 내 특정 데이터를 참조(pointer) 하는 변수. 복사 없이 원본을 직접 다룰 수 있음.왜 중요한가?대용량 루프 처리 시 성능 향상MODIFY, DELETE 가능**앞으로 어떻게 적용할까루프 내에서 데이터를 수정해야 할 경우 반드시 ASSIGNING 로 처리ASSIGN ... TO 후에는 IS ASSIGNED 체크 필수FIELD-SYMBOLS: TYPE zcustomer.LOOP AT lt_customer ASSIGNING . -flag = 'X'. "원본 직접 수정됨"ENDLOOP.IF IS ASSIGNED. "ASSGIN 여부 확인 WRITE: -name.ELSE. WRITE: '해당 고객이 존재..
[SAP ABAP] LOOP AT vs. READ TABLE LOOP AT vs. READ TABLE 실무 개념 정리✅ LOOP AT요약내부 테이블을 순서대로 반복전체 데이터 반복 처리왜 중요한가?MODIFY, DELETE 가능FIELD-SYMBOL 사용 🔍 FIELD-SYMBOL이란? 실제 데이터를 복사하지 않고, 메모리 주소를 참조해 원본 데이터에 직접 접근하는 포인터 개념의 변수앞으로 어떻게 적용할까?전체 데이터를 순회하며 조건에 맞는 데이터를 가공/플래그 처리할 때 사용루프 내에서 데이터를 수정해야 할 경우 반드시 ASSIGNING 로 처리LOOP AT lt_customer INTO ls_customer. IF ls_customer-country = 'KR'. ls_customer-flag = 'X'. MODIFY lt_customer FRO..
[SAP ABAP] READ TABLE WITH BINARY SEARCH READ TABLE WITH BINARY SEARCH 실무 개념 정리✅ READ TABLE WITH BINARY SEARCH요약이진 탐색이진 탐색이란 정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘. 중간값을 찾고자하는 값과 크고 작음을 비교하며 찾는 방식. 이진 탐색 참고(https://hcr3066.tistory.com/23)왜 중요한가?정렬된 데이터에서 탐색 시 빠름(log₂N 탐색)앞으로 어떻게 적용할까?내부 테이블의 데이터가 많고 정렬된 경우 사용정렬이 모호한 경우 단발 조회의 경우 READ TABLE WITH KEY 이 나을 수 있지만, 반복 조회 시 SORT를 통해 정렬 후 binary search 사용SORT lt_customer BY customer_id. " 정렬 필수!READ TA..
[SAP ABAP] SELECT SINGLE vs. SELECT ... UP TO 1 ROWS SELECT SINGLE vs SELECT ... UP TO 1 ROWS 실무 개념 정리✅ SELECT SINGLE요약조건에 딱 맞는 레코드 한 건 조회키 값이 명확한 단건 조회 시 사용왜 중요한가?별도의 정렬(ORDER BY)를 지원하지 않음인덱스 활용(PK 중심) > 속도 향상내가 겪었던 사례WHERE 조건이 PK가 아닌데 SELECT SINGLE을 사용하여 예상과 다른 데이터가 나왔음(실제 결과는 다건인데 단건으로 표시됨)앞으로 어떻게 적용할까?조건 필드가 PK인지 반드시 확인SELECT SINGLE name INTO lv_name FROM zcustomer WHERE customer_id = 'C001'.✅ SELECT ... UP TO 1 ROWS요약조건을 만족하는 첫 번째 행 조회최신/혹..
[SAP ABAP] FOR ALL ENTRIES vs. JOIN FAE vs JOIN 실무 개념 정리✅ FOR ALL ENTRIES (FAE)요약 내부 테이블의 데이터를 조건으로 하여 DB에서 관련 데이터를 조회하는 방식. 일종의 WHERE ... IN (...)처럼 동작함.왜 중요한가? 내부 테이블 기반 동적 조건 사용 가능 BADI, EXIT, LOOP 내 등에서 JOIN 사용이 제한적일 때 대용량 테이블에서 조건 필터가 명확하지 않을 경우 SQL 집계 (COUNT(*), GROUP BY) 불가내가 겪었던 사례 배치 마스터 조회 시, 대용량 테이블 × 대용량 내부 테이블 조합에서 성능 과부하 발생 FAE 조건 누락으로 전체 테이블 조회되는 실수 발생 → IS NOT INITIAL 미사용앞으로 어떻게 적용할까? IS NOT INITIAL 반드시 체크..
[python] programmers - 부대복귀 https://school.programmers.co.kr/learn/courses/30/lessons/132266?language=python3 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krSOLUTION 📝 - sources들을 개별적으로 보는 것이 아닌 도착점에서 갈 수 있는 지점/거리 체크- graph에 미리 특정 지점에서 갈 수 있는 위치들을 확인하여 roads를 반복하여 확인하지 않도록 함- dictionary.get(x, y) 함수의 사용: 두 개의 인자 사용 가능 => x는 찾고자 하는 값, y는 return 값이 없을 때 반환할 값- 차후 공부 대상 : 유사 딕셔너리(defaultdict) ..
[python] programmers - 성격 유형 검사하기 https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SOLUTION 📝 - 선택한 성격 유형 점수의 누적합을 저장 - 만일 성격 유형으로 선택되지 않은 값이 있다면 0으로 초기화 - 비교 세트 성격 유형에서 해당 점수가 더 높거나 혹은 같다면 사전 순으로 빠른 값을 answer에 추가 CODE 📌 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ..