2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

formatString

작성: sangseek | 게시 날짜: 2025/12/22 | 조회수: 64
[ 편집불가 ]

'formatString'는 프로그래밍에서 "형식화된 문자열" 또는 "형식 지정 문자열"을 뜻합니다. 즉, 고정된 텍스트와 변수 값을 섞어 출력하거나 특정 형식(숫자 자릿수, 소수점 자리, 정렬 등)으로 표현하기 위해 사용되는 문자열 템플릿입니다. 포맷 문자열은 리터럴 텍스트와 함께 자리표시자(placeholder)나 서식 지정자(format specifier)를 포함하고, 런타임에 그 자리표시자가 주어진 값으로 대체되며 지정된 방식으로 포맷됩니다. 주요 특징과 개념 - 자리표시자/서식 지정자: %s, %d, %f (C 스타일) 또는 {}(Python 스타일), {name} 같은 명명된 플레이스홀더 등. 이들이 실제 값이 들어갈 위치와 형식을 지정한다. - 서식 옵션: 폭(width), 정렬(alignment), 채움(fill), 정밀도(precision), 진법, 부호 표시 등 세부 포맷을 제어할 수 있다(예: "%05d", "%.2f", "{:>10}", "{:.2f}"). - 언어별 문법 차이: C의 printf 계열, Java의 String.format, Python의 str.format()/f-strings, JavaScript의 템플릿 리터럴 등 각각 문법은 다르지만 역할은 동일. - 명명된 자리표시자: 위치 기반 대신 이름으로 값을 넣어 순서가 바뀌어도 안전하게 사용 가능(예: "Hello {first}, {last}" 또는 "%(name)s" 형태). - 지역화(i18n) 관련: 언어별 문장 구조 차이 때문에 이름 기반 플레이스홀더를 쓰는 것이 번역 시 유리함. 간단한 예 - C: printf("User %s has %d points\n", name, points); - Python: "{} has {:.2f} USD".format(name, amount) 또는 f"{name} has {amount:.2f} USD" - Java: String.format("File size: %,d bytes", size); 보안상 주의점 (포맷 스트링 취약성) - 포맷 문자열을 외부(사용자 입력 등)에서 직접 받아서 그대로 사용하면 취약점이 발생할 수 있음. 특히 C의 printf 계열에서는 임의 메모리 접근이나 프로그램 충돌, 원격 코드 실행으로 이어질 수 있음. - 안전한 사용법: 사용자가 제공한 값을 포맷 인자(argument)로 전달하되, 포맷 문자열 자체는 하드코딩하거나 검증된 템플릿만 사용. 가능하면 고수준 언어의 안전한 포맷 API(명명된 플레이스홀더 등)를 사용. 요약 formatString은 데이터(숫자, 문자열 등)를 사람이 읽기 좋은 형태로 표현하기 위해 자리표시자와 서식 옵션을 포함한 문자열 템플릿이며, 언어별 문법과 서식 옵션, 보안 주의사항을 이해하고 사용하는 것이 중요합니다.
내용이 부정확하다면 싫어요를 누르세요.