프로그래밍에서 논리 연산자 이해하기
목차
논리 연산자 소개
논리 연산자는 여러 조건을 결합하여 이러한 조건이 참인지 거짓인지에 따라 코드를 실행할 수 있게 합니다. 우리가 다룰 주요 논리 연산자는 다음과 같습니다:
- AND (
&&
) - OR (
||
) - NOT (
!
)
이들 연산자는 보다 정확하고 유연한 조건문을 구성하는 데 도움을 주어, 다양한 상황에서 코드가 의도한 대로 작동하도록 보장합니다.
AND 연산자 (&&
)
AND 연산자는 두 조건이 모두 참인지 확인할 수 있게 해줍니다. 두 조건이 모두 참으로 평가되면, 결합된 조건도 참이 되고, 그렇지 않으면 거짓이 됩니다.
예제 시나리오: 비밀번호 검증
사용자의 비밀번호를 두 가지 기준에 따라 검증하고 싶다고 가정해봅시다:
- 비밀번호 길이는 8자 이상이어야 합니다.
- 비밀번호 길이는 20자 이하이어야 합니다.
이것을 구현하기 위해 AND 연산자를 사용하여 두 조건이 모두 충족되었는지 확인할 수 있습니다:
1 2 3 4 5 |
if (password.length >= 8 && password.length <= 20) { console.log("Password is valid."); } else { console.log("Password is not valid."); } |
이 예제에서는:
- 비밀번호 길이가 8자에서 20자 사이일 경우, “비밀번호가 유효합니다.”라는 메시지가 표시됩니다.
- 그렇지 않으면, “비밀번호가 유효하지 않습니다.”라는 메시지가 표시됩니다.
명확성을 위한 괄호 사용
여러 조건을 결합할 때, 특히 두 개 이상일 경우 각 조건을 명확하게 구분하기 위해 괄호를 사용하는 것이 좋은 습관입니다. 이는 가독성을 높이고 올바른 평가 순서를 보장합니다.
1 2 3 |
if ((password.length >= 8) && (password.length <= 20)) { console.log("Password is valid."); } |
OR 연산자 (||
)
OR 연산자는 결합된 조건이 참이 되기 위해서는 조건들 중 적어도 하나가 참이어야 할 때 사용됩니다.
예제 시나리오: 유효하지 않은 비밀번호 길이 감지
비밀번호 검증을 계속해서, 비밀번호가 너무 짧거나 너무 긴 경우 메시지를 표시하고 싶다고 가정해봅시다.
1 2 3 4 5 |
if (password.length < 8 || password.length > 20) { console.log("Password length is not valid."); } else { console.log("Password length is valid."); } |
여기서는:
- 비밀번호가 8자 미만 또는 20자 초과인 경우, “비밀번호 길이가 유효하지 않습니다.”라는 메시지가 표시됩니다.
- 어느 조건도 참이 아니면, 비밀번호 길이가 유효한 범위 내에 있다는 의미이며, “비밀번호 길이가 유효합니다.”가 표시됩니다.
NOT 연산자 (!
)
NOT 연산자는 피연산자의 불리언 값을 반전시킵니다. 조건이 참인 경우, !
을 적용하면 거짓이 되고, 그 반대도 마찬가지입니다.
예제 시나리오: 특정 문자가 포함되지 않은 비밀번호 보장하기
비밀번호에 %
문자가 포함되지 않도록 보장하고 싶다고 가정해봅시다. 이 조건을 확인하기 위해 NOT 연산자를 사용할 수 있습니다.
1 2 3 4 5 |
if (password.length >= 8 && password.length <= 20 && !password.includes('%')) { console.log("Password is valid."); } else { console.log("Password is invalid."); } |
이 경우:
- 비밀번호는 8자에서 20자 사이 이어야 하며 유효하다고 간주되기 위해
%
문자를 포함하지 않아야 합니다.
복잡한 조건을 위한 논리 연산자 결합
논리 연산자는 더 복잡한 시나리오를 처리하기 위해 결합될 수 있습니다. 조건을 논리적으로 그룹화하고 명확성을 유지하기 위해 괄호를 사용하는 것이 필수적입니다.
예제 시나리오: 고급 비밀번호 검증
비밀번호 검증을 향상시켜 여러 가지 검사를 포함시켜 봅시다:
- 비밀번호 길이는 8자에서 20자 사이여야 합니다.
- 적어도 하나의 특수 문자(예:
@
)를 포함해야 합니다. %
문자를 포함하지 않아야 합니다.
구현:
1 2 3 4 5 6 7 8 9 |
if ( (password.length >= 8 && password.length <= 20) && (password.includes('@')) && (!password.includes('%')) ) { console.log("Password is valid."); } else { console.log("Password is invalid."); } |
여기서는:
- 비밀번호는 유효하다고 간주되기 위해 세 가지 모든 조건을 만족해야 합니다.
- 괄호를 사용하면 각 조건을 명확하게 정의하는 데 도움이 되며, 논리적 흐름을 쉽게 따를 수 있도록 보장합니다.
요약
논리 연산자는 개발자가 복잡한 조건문을 작성할 수 있게 해주는 강력한 도구입니다. AND (&&
), OR (||
), 그리고 NOT (!
) 연산자를 이해하고 효과적으로 사용함으로써, 보다 견고하고 유연한 코드를 작성할 수 있습니다. 조건을 그룹화하기 위해 괄호를 사용하여 가독성을 높이고 올바른 평가 순서를 보장하는 것을 기억하세요.
비밀번호 검증과 같은 실용적인 예제로 이러한 개념을 적용하면 이해를 강화할 뿐만 아니라 논리 연산자가 일상적인 프로그래밍 작업에서 얼마나 중요한 역할을 하는지 보여줍니다. 다양한 조건과 조합을 실험하여 코드에서 논리 연산자를 사용하는 방법을 숙달해 보세요!