Compose 기본2026년 01월 18일· 8 min read

Text 컴포넌트 완전 정복

Jetpack Compose Text 컴포넌트 완전 정복 - 기초 단계. Compose 기본 카테고리의 실전 가이드.

Text 컴포넌트 완전 정복

Text 컴포넌트 완전 정복

한 줄 요약

Jetpack Compose의 Text 컴포넌트를 사용하여 화면에 글자를 쉽게 표시할 수 있습니다.

들어가며

텍스트는 우리 삶의 많은 부분에서 중요한 역할을 합니다. 스마트폰을 사용하면서 가장 많이 접하는 것이 바로 문자죠. 친구에게 메시지를 보내거나, 뉴스를 읽거나, 앱의 버튼을 누를 때 모두 텍스트가 사용됩니다. 그래서 앱 개발에서도 텍스트를 어떻게 다루는지가 매우 중요해요.

Jetpack Compose에서는 Text 컴포넌트를 사용하여 화면에 글자를 쉽게 표시할 수 있습니다. 이 컴포넌트를 잘 활용하면 앱의 사용자 경험을 크게 향상시킬 수 있습니다. 오늘은 Text 컴포넌트가 어떻게 동작하는지, 그리고 어떻게 활용할 수 있는지를 자세히 알아보겠습니다.

목차

  • Text 컴포넌트란?

  • 파라미터 완전 정복

  • 실제 사용 예제

  • 자주 하는 실수

  • 실전 응용

  • 심화: Text를 활용한 실전 프로젝트 구현

Text 컴포넌트란?

Text 컴포넌트는 스마트폰 화면에 글자를 띄워주는 도구야. 카카오톡 메시지 읽을 때 보이는 그 글자들? 다 이런 식으로 만들어진 거야. Jetpack Compose에서는 이 Text 컴포넌트를 사용해서 손쉽게 앱에 문자를 추가할 수 있어.

Compose로 만들어진 텍스트

파라미터 완전 정복

Text 컴포넌트는 다양한 파라미터를 제공하여 글자의 스타일과 위치를 조정할 수 있어. 각 파라미터가 어떻게 동작하는지 살펴보자.

파라미터타입설명기본값
textString화면에 표시할 글자필수
colorColor글자 색상Color.Unspecified
fontSizeTextUnit글자 크기TextUnit.Unspecified
fontWeightFontWeight글자 두께FontWeight.Normal
textAlignTextAlign글자 정렬TextAlign.Start

각 파라미터 상세 분석

text

@Composable
fun Text(
    text: String,
    color: Color = Color.Unspecified,
    fontSize: TextUnit = TextUnit.Unspecified,
    fontWeight: FontWeight = FontWeight.Normal,
    textAlign: TextAlign? = null,
    ...
)
  • 역할: 화면에 표시할 텍스트
  • 내부 처리: 사용자가 입력한 문자열을 안전하게 String으로 변환

color

val resolvedColor = color.takeOrElse { Color.Black }
  • 역할: 글자 색상을 지정
  • 내부 처리: 지정하지 않으면 기본값(검정색) 사용

fontSize

val resolvedFontSize = fontSize.takeOrElse { 14.sp }
  • 역할: 글자 크기를 결정
  • 내부 처리: 기본값으로 14.sp 사용, 화면 크기에 맞게 조절

실제 사용 예제

Text 컴포넌트를 활용한 간단한 예제를 통해 사용 방법을 알아보자.

import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.sp
import androidx.compose.ui.graphics.Color

@Composable
fun showGreeting() {
    Text(
        text = "안녕하세요",  // 화면에 표시할 글자
        fontSize = 20.sp,    // 글자 크기
        color = Color.Blue,  // 글자 색상
        fontWeight = FontWeight.Bold  // 글자 두께
    )
}

위 코드는 화면에 "안녕하세요"라는 글자를 파란색으로 표시하고, 글자 두께는 Bold로 설정합니다. 크기는 20sp로 설정되어 있어요.

자주 하는 실수

실수 1: 잘못된 색상 설정

  • 😵 문제: 색상 값을 잘못 설정하면 오류 발생
  • 🤔 원인: Color 클래스의 값을 잘못 참조
  • ✅ 해결: Color.Red 같은 사전 정의된 색상 사용

실수 2: 글자 크기 설정 오류

  • 😵 문제: sp 대신 다른 단위 사용
  • 🤔 원인: TextUnit을 잘못 이해
  • ✅ 해결: 항상 sp 단위 사용

실수 3: 텍스트 정렬 오해

  • 😵 문제: 텍스트 정렬이 예상과 다르게 표시
  • 🤔 원인: TextAlign 설정 실수
  • ✅ 해결: TextAlign.Center 등 정확히 지정

실전 응용 예제

Text 컴포넌트는 다양한 상황에서 활용될 수 있어. 몇 가지 실전 예제를 살펴보자.

  • 로그인 화면: "비밀번호를 입력하세요"와 같은 안내문구
  • 쇼핑 앱: 상품 가격 표시
  • 메시지 앱: 상대방에게 보낸 메시지

이런 상황에서 Text 컴포넌트를 적절히 사용하면 앱의 사용자 경험을 크게 개선할 수 있어.

심화: Text를 활용한 실전 프로젝트 구현

1단계: 타이핑 애니메이션이 있는 텍스트 만들기

import androidx.compose.animation.core.*
import androidx.compose.runtime.*
import androidx.compose.material.Text

@Composable
fun TypingText(text: String) {
    val displayedText = remember { mutableStateOf("") }
    LaunchedEffect(text) {
        text.forEachIndexed { index, _ ->
            displayedText.value = text.substring(0, index + 1)
            delay(150)  // 각 글자마다 딜레이를 줘서 타이핑 효과
        }
    }
    Text(displayedText.value)
}

2단계: 그라데이션 텍스트 만들기

import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.style.TextAlign

@Composable
fun GradientText(text: String) {
    Text(
        text = text,
        style = TextStyle(
            brush = Brush.linearGradient(
                listOf(Color.Red, Color.Blue)
            ),
            textAlign = TextAlign.Center
        )
    )
}

3단계: 클릭 가능한 하이퍼링크 텍스트 만들기

import androidx.compose.foundation.clickable
import androidx.compose.material.Text
import androidx.compose.ui.platform.UriHandler
import androidx.compose.runtime.Composable

@Composable
fun HyperlinkText(text: String, url: String) {
    val uriHandler = LocalUriHandler.current
    Text(
        text = text,
        modifier = Modifier.clickable { uriHandler.openUri(url) },
        color = Color.Blue
    )
}

이렇게 다양한 기능을 Text 컴포넌트를 활용해 구현할 수 있어. 실제 앱에서 이런 기술을 활용하면 사용자에게 더욱 풍부한 경험을 제공할 수 있지!

다음 시간 예고

다음 시간에는 Button 컴포넌트의 종류와 스타일링 방법에 대해 알아볼 거야. 오늘 배운 Text 컴포넌트와 함께 사용하면 훨씬 더 멋진 UI를 만들 수 있을 거야.

Photo by Florian Olivo on Unsplash

관련 글

Text 컴포넌트 완전 정복
Compose 기본2026.01.18

Text 컴포넌트 완전 정복

Jetpack Compose Text 컴포넌트 완전 정복 - 기초 단계. Compose 기본 카테고리의 실전 가이드.