[NestJS] 조건부 삼항 연산자(Ternary Operator)

혜진·2024년 10월 7일
0

NestJS

목록 보기
6/12
post-thumbnail

조건부 삼항 연산자(Ternary Operator)

조건부 삼항 연산자(Ternary Operator)

자바스크립트와 타입스크립트에서 사용되는 간단한 조건문 표현식

조건 ? 참일 때 실행되는 코드 : 거짓일 때 실행되는 코드
  • 조건: 평가되는 논리식 또는 비교식
  • ?: 조건이 참일 때 실행할 코드를 지정하는 구분자
  • :: 조건이 거짓일 때 실행할 코드를 지정하는 구분자

삼항 연산자는 if-else와 비슷한 기능을 하지만, 더 짧고 간결한 코드 작성을 가능하게 한다.

NestJS에서의 사용

NestJS는 백엔드 프레임워크이지만, 조건부 로직을 간결하게 작성할 때 삼항 연산자를 자주 사용한다. 컨트롤러나 서비스 레이어에서 사용자의 역할이나 요청 조건에 따라 다른 로직을 적용할 때 유용하다.

📑 사용자 역할(Role)에 따른 접근 제어

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 
      ? '로그인되었습니다.' 
      : '로그인되지 않았습니다.';
  }
}

Svelte 삼항 연산자 사용

NestJS와 Svelte를 함께 사용할 경우, Svelte의 프론트엔드에서 삼항 연산자를 통해 UI를 동적으로 변경할 수 있다.

<script>
  let isLoggedIn = false;
</script>

<div>
  {isLoggedIn ? <p>로그인되었습니다.</p> : <p>로그인되지 않았습니다.</p>}
</div>

<button on:click={() => isLoggedIn = !isLoggedIn}>
  {isLoggedIn ? '로그아웃' : '로그인'}
</button>

조건부 삼항 연산자(Ternary Operator) 주의사항

  • 가독성: 조건부 삼항 연산자는 간결한 조건문을 처리하는 데 유용하지만, 너무 복잡한 로직을 담을 경우 코드의 가독성이 떨어질 수 있다.
  • 단순한 조건에 사용: 삼항 연산자는 단순한 조건을 처리할 때 적합하며, 복잡한 조건을 처리해야 한다면 if-else 문이 더 적합할 수 있다.

0개의 댓글