'26/11/14 UPDATE
NOT IN 서브쿼리에 NULL이 하나 섞이면 왜 결과가 0건일까
바깥 행을 참조하지 않는 서브쿼리에 NULL이 한 행만 있어도 NOT IN은 어떤 행도 남기지 않습니다. SQLite 3.54.0과 PGlite 0.5.10(PostgreSQL 18.6)에 같은 문장을 보내 이유를 참·거짓·NULL로 따져 보고, 세 가지 고침과 NOT EXISTS로 바꿀 때 결과가 달라지는 경우를 실제 출력으로 살펴봅니다.
SAP 현장에서 ABAP을 치고, 그 일을 에이전트에 넘겨 보는 개발자의 기록입니다. 미술·여행·경제·책은 옆방에 있습니다.
TODAY'S LINE-UP · 11.15 SUN
오늘 쉬는 상자: ART · BOOK (화·목·토에 엽니다)
2026.11.15 한국 시간 기준
'26/11/14 UPDATE
바깥 행을 참조하지 않는 서브쿼리에 NULL이 한 행만 있어도 NOT IN은 어떤 행도 남기지 않습니다. SQLite 3.54.0과 PGlite 0.5.10(PostgreSQL 18.6)에 같은 문장을 보내 이유를 참·거짓·NULL로 따져 보고, 세 가지 고침과 NOT EXISTS로 바꿀 때 결과가 달라지는 경우를 실제 출력으로 살펴봅니다.
'26/11/14 UPDATE
cat 파일 | while read로 센 줄 수가 macOS의 /bin/bash 3.2.57에서는 0, zsh 5.9에서는 3이었습니다. bash가 파이프의 각 명령을 서브셸에서 돌려 루프가 바꾼 변수가 사라지는 과정을 실제 실행으로 확인하고, bash 3.2에 없는 lastpipe 대신 done < 파일과 < <(명령)으로 고치는 방법을 정리했습니다.
'26/11/14 UPDATE
같은 도안인데 먹구름의 아랫선이 장마다 다르고, 네 장 가운데 한 장에만 배 두 척이 있다. 메트와 클리블랜드의 사진을 나란히 놓고 판목에 새겨진 것, 찍을 때 달라질 수 있는 것, 사진으로는 가릴 수 없는 것을 나눈다. 두 장을 놓고 볼 세 곳도 정리한다.
'26/11/14 UPDATE
SUM이 끝나도 S/4HANA의 데이터 이전(SDMI)은 시스템을 쓰는 동안(업타임) 클라이언트마다 계속 돌고, 기술 사용자가 없는 클라이언트에서는 시작조차 하지 않습니다. SDM_USER·SM37·SDM_MON에서 무엇을 어떤 순서로 보고 어느 상태여야 끝났다고 할 수 있는지, 릴리스를 건너뛸 때 무엇이 달라지는지 정리합니다.
'26/11/13 UPDATE
키와 STATUS만 넣은 작업 영역으로 UPDATE … FROM을 실행하면 sy-subrc는 0인데 나머지 칼럼이 초기값으로 덮입니다. FROM 작업 영역이 행 전체를 바꾸는 이유, sy-subrc와 sy-dbcnt가 알려 주지 않는 것, SET·INDICATORS(7.55 이상)·먼저 읽고 쓰기·MODIFY 가운데 무엇을 고를지 가상 예로 정리합니다.
새로 도착
cat 파일 | while read로 센 줄 수가 macOS의 /bin/bash 3.2.57에서는 0, zsh 5.9에서는 3이었습니다. bash가 파이프의 각 명령을 서브셸에서 돌려 루프가 바꾼 변수가 사라지는 과정을 실제 실행으로 확인하고, bash 3.2에 없는 lastpipe 대신 done < 파일과 < <(명령)으로 고치는 방법을 정리했습니다.
같은 도안인데 먹구름의 아랫선이 장마다 다르고, 네 장 가운데 한 장에만 배 두 척이 있다. 메트와 클리블랜드의 사진을 나란히 놓고 판목에 새겨진 것, 찍을 때 달라질 수 있는 것, 사진으로는 가릴 수 없는 것을 나눈다. 두 장을 놓고 볼 세 곳도 정리한다.
SUM이 끝나도 S/4HANA의 데이터 이전(SDMI)은 시스템을 쓰는 동안(업타임) 클라이언트마다 계속 돌고, 기술 사용자가 없는 클라이언트에서는 시작조차 하지 않습니다. SDM_USER·SM37·SDM_MON에서 무엇을 어떤 순서로 보고 어느 상태여야 끝났다고 할 수 있는지, 릴리스를 건너뛸 때 무엇이 달라지는지 정리합니다.
바깥 행을 참조하지 않는 서브쿼리에 NULL이 한 행만 있어도 NOT IN은 어떤 행도 남기지 않습니다. SQLite 3.54.0과 PGlite 0.5.10(PostgreSQL 18.6)에 같은 문장을 보내 이유를 참·거짓·NULL로 따져 보고, 세 가지 고침과 NOT EXISTS로 바꿀 때 결과가 달라지는 경우를 실제 출력으로 살펴봅니다.
키와 STATUS만 넣은 작업 영역으로 UPDATE … FROM을 실행하면 sy-subrc는 0인데 나머지 칼럼이 초기값으로 덮입니다. FROM 작업 영역이 행 전체를 바꾸는 이유, sy-subrc와 sy-dbcnt가 알려 주지 않는 것, SET·INDICATORS(7.55 이상)·먼저 읽고 쓰기·MODIFY 가운데 무엇을 고를지 가상 예로 정리합니다.
2026년 6월 말 순대외금융자산은 640억 달러로 3월 말보다 6,895억 달러 줄었습니다. 같은 분기 경상수지는 1,166.3억 달러 흑자였습니다. 표 한 장으로 거래와 평가 변화를 나누고, 외국인 주식 잔액이 왜 부채로 잡히는지, 나라 빚과 무엇이 다른지 봅니다.
Python 함수는 바깥 이름을 만들 때가 아니라 부를 때 읽습니다. CPython 3.9.6, 3.11.17, 3.12.14에서 lambda와 def, 컴프리헨션, 스레드가 마지막 값을 쓰는 것을 실행해 보고, 기본 인자, 팩토리 함수, partial로 고치는 방법과 각각의 함정을 정리합니다.
1640년 도머르의 초상에서는 얼굴과 흰 주름 깃이, 1653년 아리스토텔레스에서는 흉상과 손과 소매가 한 덩어리로 밝다. 메트의 렘브란트 네 점에서 빛과 그림자가 어디서 묶이는지 보고, 로제 드 필의 ‘포도송이’로 그 이유를 읽는다.
READ TABLE은 못 찾으면 sy-subrc 4를 남기고 다음 줄로 가지만, 같은 읽기를 itab[ ] 테이블 식으로 바꾸면 CX_SY_ITAB_LINE_NOT_FOUND 예외가 나고 잡지 않으면 덤프로 끝납니다. 옛 sy-subrc·sy-tabix 검사가 무엇을 보게 되는지, 예외 잡기·OPTIONAL/DEFAULT·line_exists·ASSIGN 중 무엇을 고를지 가상 예로 정리합니다.
10월 소비자물가와 두 근원지수가 모두 2.8%였습니다. 식료품및에너지제외지수와 농산물및석유류제외지수가 각각 어떤 품목을 빼는지 공표 정의로 비교하고, 보도자료의 지수로 세 개의 2.8%와 8월의 3.4%·3.1%를 다시 계산합니다.
JavaScript의 length는 글자가 아니라 UTF-16 코드 유닛을 셉니다. Node.js v24.21.0에서 같은 입력을 코드 유닛, 코드 포인트, 그래핌, UTF-8 바이트로 세고 Python 3.9.6, 3.12.14의 len()·UTF-8 바이트와 견주어, slice()로 자른 문자열이 어디서 깨지는지와 단위를 고르는 기준을 정리합니다.
머리를 슬리퍼보다 쳐주지 않는다는 1868년 토레의 평을 마네의 그림 네 점에서 시험하고, 얼굴이 빛과 색, 붓질 가운데 무엇을 차지했는지 나누어 보는 법을 정리한다.