문자열로 변환
문제 설명
정수 n이 주어질 때, n을 문자열로 변환하여 return하도록 solution 함수를 완성해주세요.
제한사항
입출력 예
| n | result |
|---|
| 123 | "123" |
| 2573 | "2573" |
입출력 예 설명
입출력 예 #1
- 123을 문자열로 변환한 "123"을 return합니다.
입출력 예 #2
- 2573을 문자열로 변환한 "2573"을 return합니다.
1. 가장 명확한 방법 — String(n)
function solution(n) {
return String(n);
}
왜 이 방식이 좋은가?
- 의도가 가장 분명하다. “숫자를 문자열로 변환한다”는 목적이 코드만 보아도 명확하게 드러난다.
- 암묵적 변환을 피한다. 협업 환경에서는 암묵적 타입 변환이 버그를 유발할 여지가 있으므로, 명시적 변환이 권장된다.
- 변환 대상이 무엇이든 안정적이다.
null, undefined 등 특수 값도 명시적으로 문자열로 바뀐다.
2. 템플릿 리터럴 사용 — 백틱 기반 문자열 결합
function solution(n) {
return `${n}`;
}
장점
- ES6 이후 가장 많이 사용되는 문자열 생성 방식.
- 내부적으로 문자열 연산이 보장되므로 자연스럽게 문자열 타입 변환이 이루어진다.
단점
"문자열을 만들기 위해 템플릿 문법을 사용한다"는 점에서 약간의 과잉 표현.
- 목적은 "변환"인데 "포매팅" 문법을 쓴 것처럼 보일 수 있다.
3. 문자열 덧셈 — 전통적인 방식
function solution(n) {
return n + "";
}
평가
- 자바스크립트 초창기부터 존재하던 방식.
- 암묵적 타입 변환에 의존하기 때문에 오늘날에는 선호되지 않는다.
- 코드 리뷰 시 “의도가 불명확하다”는 지적을 받을 여지가 있다.
4. toString() 메서드 사용
function solution(n) {
return n.toString();
}
장점
주의 사항
null이나 undefined에 사용하면 에러를 발생시킨다.
- 이 문제는 입력이 항상 유효하므로 문제는 없지만, 방어적 프로그래밍 관점에서는
String(n)이 더 안전하다.
📌 최종 권장 풀이
function solution(n) {
return String(n);
}
선택 이유
- 명시적이고 안전하며 협업 환경에서 예측 가능한 패턴.
- 타입 변환이라는 본래 의도를 가장 직관적으로 드러낸다.