조건부 삼항 연산자(Ternary Operator)
자바스크립트와 타입스크립트에서 사용되는 간단한 조건문 표현식
조건 ? 참일 때 실행되는 코드 : 거짓일 때 실행되는 코드
삼항 연산자는 if-else와 비슷한 기능을 하지만, 더 짧고 간결한 코드 작성을 가능하게 한다.
NestJS는 백엔드 프레임워크이지만, 조건부 로직을 간결하게 작성할 때 삼항 연산자를 자주 사용한다. 컨트롤러나 서비스 레이어에서 사용자의 역할이나 요청 조건에 따라 다른 로직을 적용할 때 유용하다.
import { Controller, Get, Req } from '@nestjs/common';
import { Request } from 'express';
import { UserRole } from './user-role.enum';
@Controller('users')
export class UserController {
@Get('profile')
getUserProfile(@Req() request: Request) {
const user = request.user;
return {
profile: user.role === UserRole.Admin
? '관리자 정보'
: '일반 사용자 정보',
};
}
}
user.role이 Admin일 경우 '관리자 정보'를, 그렇지 않을 경우 '일반 사용자 정보'를 반환한다.
import { Injectable } from '@nestjs/common';
@Injectable()
export class AuthService {
checkLoginStatus(isLoggedIn: boolean): string {
return isLoggedIn
? '로그인되었습니다.'
: '로그인되지 않았습니다.';
}
}
NestJS와 Svelte를 함께 사용할 경우, Svelte의 프론트엔드에서 삼항 연산자를 통해 UI를 동적으로 변경할 수 있다.
<script>
let isLoggedIn = false;
</script>
<div>
{isLoggedIn ? <p>로그인되었습니다.</p> : <p>로그인되지 않았습니다.</p>}
</div>
<button on:click={() => isLoggedIn = !isLoggedIn}>
{isLoggedIn ? '로그아웃' : '로그인'}
</button>