프로그래밍 논리 연산자(AND, OR, NOT)의 개념과 진리표, 단축 평가까지 정리합니다.
| 확실하게 알고 넘어가는 논리 연산자 |

코드를 작성하다 보면 가장 흔하게 사용하는 것이 논리 연산자입니다. 워낙 자주 쓰다 보니 익숙하지만, 정확한 동작(특히 단축 평가)을 모르면 의도치 않은 버그로 이어지기도 합니다. 이 글에서는 논리 연산자의 개념과 진리표, 실제 예제, 그리고 꼭 알아야 할 단축 평가와 우선순위까지 정리하겠습니다.
목차
논리 연산자란
논리 연산자는 참(true)과 거짓(false)을 판단하는 연산자입니다. 결과가 불리언(boolean) 형태로 반환되기 때문에, 조건문(if)이나 반복문(while)에서 조건을 조합할 때 핵심적으로 쓰입니다.
주요 논리 연산자
| 이름 | 연산자 | 의미 |
| AND | && (또는 AND) | 둘 다 참이어야 참 |
| OR | || (또는 OR) | 하나라도 참이면 참 |
| NOT | ! (또는 NOT) | 참과 거짓을 뒤집음 |
* C·Java·JavaScript 등은 &&, ||, ! 기호를 쓰고, Python·SQL 등은 and, or, not 키워드를 씁니다.
진리표로 보기
각 연산자가 입력에 따라 어떤 결과를 내는지 정리한 표를 진리표라고 합니다.
| A | B | A && B | A || B | !A |
| 참 | 참 | 참 | 참 | 거짓 |
| 참 | 거짓 | 거짓 | 참 | 거짓 |
| 거짓 | 참 | 거짓 | 참 | 참 |
| 거짓 | 거짓 | 거짓 | 거짓 | 참 |
예제로 보기
const age = 25;
const hasTicket = true;
// AND: 두 조건이 모두 참일 때만 입장
if (age >= 19 && hasTicket) {
console.log("입장 가능");
}
// OR: 둘 중 하나만 참이어도 할인
const isStudent = false;
const isSenior = true;
if (isStudent || isSenior) {
console.log("할인 대상");
}
// NOT: 조건을 뒤집기
if (!hasTicket) {
console.log("티켓이 없습니다");
}
꼭 알아야 할 단축 평가(Short-circuit)
논리 연산자에는 '단축 평가'라는 중요한 특성이 있습니다. 결과가 이미 정해지면 뒤쪽 조건은 아예 실행하지 않는 것입니다.
- AND(&&) – 앞 조건이 거짓이면, 뒤는 보나 마나 거짓이므로 뒤를 평가하지 않습니다.
- OR(||) – 앞 조건이 참이면, 뒤는 보나 마나 참이므로 뒤를 평가하지 않습니다.
이 특성은 단순한 최적화를 넘어, 오류를 막는 데 유용하게 쓰입니다. 예를 들어 객체가 존재할 때만 속성에 접근하도록 안전장치를 만들 수 있습니다.
// user가 null이면 user.name 접근 자체를 시도하지 않음 → 에러 방지
if (user && user.name) {
console.log(user.name);
}
연산자 우선순위
여러 논리 연산자가 함께 쓰이면 NOT → AND → OR 순으로 먼저 계산됩니다. 즉 !가 가장 먼저, ||가 가장 나중입니다. 의도가 헷갈릴 수 있으므로, 복잡한 조건은 괄호로 묶어 명시하는 것이 안전합니다.
// 우선순위 때문에 헷갈리는 예
true || false && false // && 가 먼저 → true || (false) → true
// 괄호로 의도를 분명히
(true || false) && false // → true && false → false
마무리
논리 연산자 AND, OR, NOT을 진리표와 예제, 단축 평가, 우선순위까지 정리해 봤습니다. 특히 단축 평가는 에러를 막는 안전장치로 자주 활용되니 꼭 기억해 두시면 좋습니다.
궁금한 점이 있으면 댓글로 남겨 주세요. 답변드리겠습니다!