and or같은 논리연산자가 boolean이 아니라 expression을 반환하는 이유가 있었네