#6 메모 내용 줄바꿈 처리하기

2026. 6. 11. 23:36·Project/Memo Evolution

 

이번에는 메모 내용을 입력하면서 생긴 작은 문제를 수정했다.

문제는 textarea에서는 줄바꿈이 잘 입력되는데, 메모 목록에 출력하면 줄바꿈이 사라지는 것이었다.

예를 들어 메모 내용을 이렇게 입력했다.

첫 번째 줄
두 번째 줄
세 번째 줄

하지만 메모 카드에서는 다음처럼 한 줄로 보였다.

첫 번째 줄 두 번째 줄 세 번째 줄

처음에는 JavaScript에서 입력값을 잘못 가져오는 문제라고 생각했다.
하지만 확인해보니 입력값 자체가 사라진 것은 아니었다.

문제는 메모 내용을 출력하는 HTML 태그의 기본 동작에 있었다.

 

문제 원인

현재 메모 내용은 <p> 태그 안에 출력하고 있었다.

memoCard.innerHTML = `
    <h3>${memo.title}</h3>
    <p>${memo.content}</p>
    <button type="button">삭제</button>
`;

textarea에서는 엔터를 누르면 줄바꿈이 그대로 보인다.
하지만 그 값을 <p> 태그 안에 넣으면 브라우저는 줄바꿈을 그대로 보여주지 않는다.

예를 들어 HTML에 이렇게 작성해도,

<p>
첫 번째 줄
두 번째 줄
</p>

화면에서는 보통 다음처럼 보인다.

첫 번째 줄 두 번째 줄

일반 HTML 텍스트 요소는 여러 공백과 줄바꿈을 하나의 공백처럼 처리하기 때문이다.

즉, 이번 문제는 다음과 같이 정리할 수 있다.

textarea에서 줄바꿈이 사라진 것이 아니다.
JavaScript가 값을 잘못 가져온 것도 아니다.
p 태그가 기본적으로 줄바꿈을 그대로 보여주지 않는 것이다.

 

해결 방법

이번에는 <p> 태그를 그대로 사용하고, CSS에서 줄바꿈을 유지하도록 처리했다.

.memo-card p {
    white-space: pre-wrap;
}

white-space: pre-wrap;을 사용하면 사용자가 입력한 줄바꿈을 화면에 반영할 수 있다.

그래서 현재 구조는 그대로 유지했다.

memoCard.innerHTML = `
    <h3>${memo.title}</h3>
    <p>${memo.content}</p>
    <button type="button">삭제</button>
`;

대신 CSS에 다음 코드를 추가했다.

.memo-card p {
    white-space: pre-wrap;
}

이렇게 수정하니 textarea에서 입력한 줄바꿈이 메모 카드에서도 그대로 보였다.

 

pre 태그와의 차이

다른 방법으로는 <pre> 태그를 사용할 수도 있다.

memoCard.innerHTML = `
    <h3>${memo.title}</h3>
    <pre>${memo.content}</pre>
    <button type="button">삭제</button>
`;

pre 태그는 기본적으로 줄바꿈과 공백을 유지한다.

다만 pre 태그는 일반 문단이라기보다는 코드나 서식이 있는 텍스트를 보여주는 느낌이 강하다.
메모장 본문에는 일반 문단처럼 보이는 <p> 태그를 유지하고, CSS로 줄바꿈만 처리하는 방식이 더 자연스럽다고 판단했다.

'Project > Memo Evolution' 카테고리의 다른 글

#8 메모 수정 기능 구현  (0) 2026.06.13
#7 localStorage로 메모 저장하기  (0) 2026.06.13
#5 메모데이터를 배열로 관리  (0) 2026.06.11
#4 입력한 메모를 화면에 추가하기  (0) 2026.06.10
#3 JavaScript 연결하고 버튼 클릭 감지  (0) 2026.06.10
'Project/Memo Evolution' 카테고리의 다른 글
  • #8 메모 수정 기능 구현
  • #7 localStorage로 메모 저장하기
  • #5 메모데이터를 배열로 관리
  • #4 입력한 메모를 화면에 추가하기
sqaxe1
sqaxe1
woojoo-devlog 님의 블로그 입니다.
  • sqaxe1
    Woojoo's Devlog
    sqaxe1
  • 전체
    오늘
    어제
    • 분류 전체보기 (148)
      • Backend (9)
        • Servlet (7)
        • Spring (2)
      • Frontend (1)
      • CS (0)
      • Book (33)
        • 자바 웹 프로그래밍 Next Step (30)
        • 테스트 주도 개발: 고품질 쾌속개발을 위한 TDD.. (1)
        • 성공과 실패를 결정하는 1%의 네트워크 원리 (2)
      • Engineering (0)
        • Testing (0)
      • Infra (6)
        • AWS (6)
      • Java (4)
      • Network (1)
      • 김영한 (28)
        • 자바 입문 (8)
        • 실전 자바 - 기본편 (6)
        • 실전 자바 - 중급편 (10)
        • 실전 자바 - 고급편 (4)
      • Web (39)
        • Web Basics (39)
      • Project (24)
        • NeoSquare (0)
        • Memo Evolution (24)
      • 정보처리기사 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java
    aws
    개발서적
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
sqaxe1
#6 메모 내용 줄바꿈 처리하기
상단으로

티스토리툴바