채용 사이트 '로켓펀치'에서 지원 내역을 확인 중, 신경 쓰이는 UI 문제를 발견했습니다.

작성하는 글은 문제를 분석하고 해결하는 방법에 관한 내용이며, 문제를 분석하고 단순히 눈에 보이는 현상을 넘어 더 구조적인 해결책을 고민하고 적용한 글 입니다.


문제 : 스크롤과 함께 사라지는 핵심 기능들

로켓펀치의 '지원 내역' 모달은 지원 현황을 한눈에 볼 수 있어 편리하였으나, 지원 내역이 많아지면 아래와 같은 문제가 발생합니다.

개인정보를 위해 지원 내용은 삭제하였습니다.

모달이 상단의 필터 버튼과 하단의 메뉴 버튼이 화면 밖으로 사라집니다.


위와 같은 상황은 사용자 관점에서 강력한 불편함으로 이어집니다.

  • 모달 위쪽의 기능을 확인할 수 없으며, 모달을 닫을 수 없습니다.
  • 아래의 버튼은 가려져서 알아보기 어렵습니다.

문제 해결을 위해 개발자 도구로 styles의 css 부분 하나하나 확인하였고, 다음과 같은 문제를 찾았습니다.

이 외에도 모달을 감싸는 가장 바깥쪽 배경(Overlay) 요소에 height: 100% 스타일이 적용되어 있었습니다. 이는 모달의 높이를 현재 보이는 브라우저 화면 높이에 완전히 고정시킵니다. 그러나, 모달 내부에 표시될 '지원 내역' 콘텐츠의 양이 많아지면서, 콘텐츠의 실제 높이가 고정된 100%를 초과하게 되었습니다.

이후, 내용물이 틀을 넘쳤을 때 어떻게 처리할지에 대한 overflow 속성이 정의되어 있지 않았습니다. overflow의 기본값은 visible이므로 콘텐츠는 틀 밖으로 빠져나가 화면에 잘립니다.


해결 방법

간단한 해결책은 모달 자체의 높이 제한 입니다. 개발자 도구를 열어 모달의 최상위 컨테이너에 height 속성을 적용 했습니다.

화면 높이를 90%로 제한

 

    height: 90vh; // 화면 높이의 90%로 제한

이 한 줄의 입력으로 모달이 화면 밖으로 벗어나는 문제는 해결 가능합니다.


추가 설명 : overflow 속성

height: 90vh로 모달 컨테이너의 크기를 강제로 제한하면 그보다 내용물이 많은 모달 콘텐츠는 overflow의 기본값인 visible에 따라 컨테이너 밖으로 넘치게 됩니다.

이 콘텐츠가 흘러넘치게 되면 모달이 아닌 페이지 전체의 높이가 길어지는 문제가 생길 수 있습니다. 따라서, 이 방법은 모달에 스크롤을 만든 것이 아닌 페이지 전체에 스크롤이 생기도록 만든 것 입니다.

이러한 경우, 배경 스크롤이라는 또 다른 UX 문제가 생깁니다. 모달 위에서 스크롤할 때 그 뒤의 페이지 본문까지 함께 움직이는 현상은 사용자에게 큰 불편을 줄 수 있습니다. 따라서,  눈앞의 문제만 고치는 것이 아닌 명확하게 제어되는 UI를 만들어야 합니다.


근본적인 해결 : Flexbox를 이용한 레이아웃 재설계

가장 이상적인 UI는 "헤더와 푸터는 고정, 콘텐츠 영역만 스크롤" 되는 것입니다. 이를 위해 CSS Flexbox를 도입하여 모달의 구조를 재설계 해야합니다.

HTML 구조 개선

평평한 모달 내부 구조를 header, main, footer의 의미 있는 구조로 개선해야 하며, 견고한 HTML은 안정적인 CSS에 있어서 중요합니다.

// 기존 내용
<div class="modal-box">
  <button>헤더 버튼</button>
  <div>콘텐츠 카드</div>
  <button>푸터 버튼</button>
</div>

// Header, Body, Footer 분리
<div class="modal-box">
  <header class="modal-header">
    <button>헤더 버튼</button>
  </header>
  <main class="modal-content">
    <div>콘텐츠 카드</div>
  </main>
  <footer class="modal-footer">
    <button>푸터 버튼</button>
  </footer>
</div>

CSS Flexbox 적용

개선된 HTML 구조에 각 영역의 역할을 명확히 정의하는 Flexbox 스타일을 적용해야 합니다.

// 모달 전체를 감싸는 Flex 컨테이너
.modal-box {
  display: flex;
  flex-direction: column; // 아이템을 세로로 배치
  height: 90vh; // 전체 높이 제한
  overflow: hidden; // 자식 요소의 둥근 모서리 유지를 위함
}

// 고정될 헤더와 푸터
.modal-header,
.modal-footer {
  flex-shrink: 0; /* 공간이 부족해도 절대 줄어들지 않도록 고정 */
}

// 스크롤될 콘텐츠 영역
.modal-content {
  overflow-y: auto;   // 내용이 넘칠 경우, 해당 영역만 스크롤
}
  • .modal-box : flex 컨테이너로 되어 내부 아이템들의 배치 기준을 세웁니다.
  • .modal-header, .modal-footer : flex-shrink: 0을 이용해 자신의 크기를 유지하며 뷰포트 내에 고정됩니다.
  • .modal-content : overflow-y: auto를 이용하여 내용이 많을 때 내부에서 흘러넘치지 않게 합니다.

결과

버그가 고쳐진 모달

헤더와 푸터는 화면에 고정되어 중앙의 콘텐츠 목록만 부드럽게 스크롤됩니다.

사용자는 긴 지원 내역을 스크롤 하면서도 언제든지 상단의 필터와 하단의 메뉴 버튼에 즉시 접근할 수 있습니다. 따라서, 사용자 경험이 향상하는 UI가 됩니다.


정리

문제를 해결하며 느낀 점을 적어보았습니다.


눈앞에만 보이는 것을 넘어서 그 더 깊게 원리를 파고들면 견고한 코드를 만들 수 있습니다.
논리적이고 의미 있는 HTML 구조는 CSS를 단순하고 예측 가능하게 만드는 가장 확실한 방법입니다.
개발자의 목표는 단순히 버그를 수정하는 것이 아니라, 더 나은 사용자 경험을 만드는 것입니다. '작동한다'에서 멈추지 않고 '어떻게 하면 더 편리할까?'를 깊게 고민하는 것이 문제 해결에 중요하다는 것을 느꼈습니다.

작은 불편함에서 시작했으나 문제를 넘기지 않고 깊게 파고들어 더 나은 해결책을 찾아가는 과정이 좋은 경험이 되었습니다. 이러한 경험이 사용자의 입장에서 생각하고 문제를 해결하는 것에 큰 귀감이 되었습니다.

728x90

'Study' 카테고리의 다른 글

검색 엔진 최적화(SEO)란?  (0) 2025.07.06
웹 개발과 개발 용어에 대한 이해(2)  (0) 2024.10.17
웹 개발과 개발 용어에 대한 이해(1)  (1) 2024.09.05

SEO(검색 엔진 최적화)

검색 엔진 최적화라고 불리는 SEO(Search Engine Optimization)는 내 웹사이트나 콘텐츠가 구글이나 네이버 같은 검색 엔진의 검색 결과 상단에 노출되어 많은 사람들이 찾아오게 만드는 것을 의미합니다.


SEO가 중요한 이유

SEO는 내 웹사이트를 검색 엔진이 가장 먼저 발견하고 '해당 웹사이트가 검색에 걸맞는 사이트'라고 판단하여 추천하게 만드는 기술입니다.

지속적인 무료 트래픽: 잘 최적화된 페이지는 한번 상위에 노출되면 24시간 내내 광고비 없이 잠재 고객을 데려오는 자동화된 마케팅 채널이 됩니다.
높은 신뢰도와 권위: 사용자들은 일반적으로 유료 광고 영역보다 자연 검색 결과를 더 신뢰합니다. 상위 노출은 해당 분야의 전문가라는 인식을 심어줍니다.
높은 투자 대비 효과(ROI): 초기 최적화에 시간과 노력이 필요하지만, 장기적으로는 광고보다 훨씬 높은 투자 대비 효과를 가져옵니다.
정확한 타겟팅: 특정 정보를 검색하는 사용자는 이미 그 주제에 대한 명확한 관심과 필요가 있으므로, 구매나 회원가입 등 원하는 행동으로 이어질 확률이 높습니다.


SEO의 핵심 구성 요소

SEO는 온페이지 SEO, 오프페이지 SEO, 테크니컬 SEO 세 가지로 나눌 수 있습니다. 이 세 가지가 조화를 이룰 때 가장 좋은 효과를 냅니다.

온페이지 SEO (On-Page SEO): 내 웹사이트 내부 콘텐츠 최적화

웹사이트 내부의 콘텐츠와 HTML 소스 코드를 최적화하여 검색 엔진과 사용자 모두에게 페이지의 주제와 내용을 명확하게 전달하는 작업입니다.

  • 고품질 콘텐츠 : 사용자의 검색 의도를 파악하여 그에 대한 가장 만족스러운 답변을 제공하는 유용한 콘텐츠를 만드는 것이 모든 SEO의  중요한 요소입니다.

  • 핵심 키워드 리서치 및 배치: 사용자가 검색할 만한 핵심 키워드를 찾아 페이지의 제목, 소제목, 본문 등에 자연스럽게 배치합니다.

  • HTML 태그 최적화
    <title> 태그: 검색 결과에 직접 보이는 페이지의 제목으로, 가장 강력한 SEO 신호 중 하나입니다.
    <meta name="description"> 태그: 페이지 내용을 요약한 설명문으로, 검색 결과에서 사용자의 클릭을 유도하는 중요한 역할을 합니다.
    헤더 태그 (<h1>, <h2> 등): 콘텐츠의 계층 구조를 명확히 하여 검색 엔진이 글의 구조와 핵심 주제를 파악하도록 돕습니다.
    URL 구조: 페이지의 내용을 알아보기 쉽게, 짧고 의미 있는 단어로 URL을 구성합니다.

오프페이지 SEO (Off-Page SEO)

웹사이트 외부에서 다른 사이트와의 관계를 통해 사이트의 평판과 신뢰도를 높이는 활동입니다.

  • 백링크 (Backlinks): 다른 신뢰도 높은 웹사이트에서 내 웹사이트로 연결되는 링크를 받는 것을 의미합니다. 검색 엔진은 이를 '온라인상의 추천' 또는 '투표'로 간주하여, 많은 양질의 백링크를 받은 사이트를 권위 있는 사이트로 평가합니다.

  • 소셜 미디어 신호: 페이스북, 트위터, 인스타그램 등 소셜 미디어에서 콘텐츠가 활발히 공유되고 언급되는 것도 사이트의 인지도와 관련성을 높이는 긍정적인 신호가 될 수 있습니다.

  • 브랜드 언급: 다른 웹사이트, 뉴스, 포럼 등에서 내 브랜드나 웹사이트가 언급되는 것 자체만으로도 인지도와 권위를 쌓는 데 도움이 됩니다.

테크니컬 SEO (Technical SEO)

검색 엔진 로봇이 내 웹사이트를 원활하게 탐색하고, 정보를 수집(크롤링)하며, 저장(인덱싱)할 수 있도록 기술적인 환경을 최적화하는 작업입니다.

  • 사이트 속도 및 성능: 웹사이트 로딩 속도는 사용자 경험과 검색 순위에 직접적인 영향을 미칩니다. (구글의 Core Web Vitals 지표 참고)

  • 모바일 최적화: 모든 사용자가 스마트폰에서 불편함 없이 사이트를 이용할 수 있도록 반응형 웹 디자인은 필수입니다. 구글은 모바일 버전을 기준으로 사이트 순위를 매깁니다.

  • 크롤링 및 인덱싱 관리
    sitemap.xml (사이트맵): 내 웹사이트의 전체 페이지 목록을 담은 지도를 검색 엔진에 제출하여 모든 페이지를 빠짐없이 발견하도록 돕습니다.
    robots.txt: 검색 엔진 로봇에게 어떤 페이지는 수집하고, 어떤 페이지는 수집하지 말아야 할지 규칙을 알려주는 파일입니다.

  • 보안 (HTTPS): 웹사이트 전체에 'https://' 보안 프로토콜을 적용하는 것은 필수입니다.

  • 구조화된 데이터 (Structured Data): 검색 엔진에게 페이지의 콘텐츠가 '레시피'인지, '상품'인지, '이벤트'인지 명확하게 알려주는 특별한 코드를 추가하는 것입니다. 이는 검색 결과에 평점, 가격 등 더 풍부한 정보(Rich Snippets)가 표시되도록 도와줍니다.

정리

SEO는 한 번의 설정으로 끝나는 작업이 아닌 변화하는 검색 엔진 알고리즘과 사용자 행동에 맞춰 지속적으로 웹사이트를 개선해나가는 장기적인 과정입니다.

728x90

웹 작동 방식

URL 입력 > 인터넷 상에 있는 원격 컴퓨터(서버)에 연결 요청) > 코드 명령어 송신 > 화면상의 컨텐츠 표출

위의 순서로 작동되며,  브라우저를 통해 코드의 형태로 전송되어 사용자에게 컨텐츠화 된다.

 

웹  개발에 필요한 3가지 언어

1. HTML(HyperText Markup Language)

 실제 웹사이트의 내용과 구조를 만드는 데에 사용되며 이는 문단, 제목, 데이터 표 등을 정의하거나 페이지에 

2. CSS(Cacading Style Sheets)

 표현된 페이지와 위의 콘텐츠를 꾸며주는 데에 사용된다.

3. Javascript

버튼 등의 상호작용에 사용된다.

728x90

'Study' 카테고리의 다른 글

'로켓 펀치' 웹사이트 버그 수정  (1) 2025.07.11
검색 엔진 최적화(SEO)란?  (0) 2025.07.06
웹 개발과 개발 용어에 대한 이해(1)  (1) 2024.09.05

웹 개발이란?

사용자들이 클라이언트에서 보지 못하는 코드를 작성하며 이 코드는 사용자들이 보는 것에 영향을 끼친다.

웹 서비스 또는 웹사이트 라고 불리는 서비스를 구축하는 일

 

 

웹 개발자란?

 HTTP(Hyper Text Transfer Protocol)프로토콜을  매체로 사용하는 웹 페이지, 웹 사이트 등의 소프트웨어 개발자,

소프트웨어 엔지니어를 말한다.

 

웹개발자들은 웹 디자인, 사용자 인터페이스 설계, 프로젝트 관리, 웹 서버 및 데이터베이스 관리,

웹페이지 코딩 및 프로그래밍 관련 기술을코딩을 통하여 웹 사이트를 만드는 일을 한다.

인터넷을 통해 WWW(World Wide Web)와 관련된 웹사이트를 개발하는 을 한다.

 

HTTP란 ?

하이퍼텍스트 전송 프로토콜(HTTP)은 월드 와이드 웹의 토대이며 하이퍼텍스트 링크를 사용하여 웹 페이지를 로드하는 데 사용된다. HTTP는 네트워크 장치 간에 정보를 전송하도록 설계된  프로토콜이다.

 

브라우저에 자동으로 추가되는 원격 컴퓨터와 통신하는 데에 사용되는 기본 프로토콜이다.

HTTP를 통한 흐름에는 클라이언트 시스템에서 서버에 요청한 다음 원격 서버에서 응답 메시지를 보내는 작업이 포함된다.

 

 

 웹사이트 방문의 경우 브라우저를 사용하며 클라이언트 시스템에서 서버에 요청한 다음 원격 서버에서 응답 메시지를 보내는 작업이 포함되는데, 이는 상호작용 한다.

 

 

웹 작동 방식: URL 입력하면 인터넷 상에 있는 원격 컴퓨터(서버)에 대한 방문 요청하고 코드 명령어를 송신하여

브라우저를 통해 코드의 형태로 클라이언트에 전송되여 컨텐츠화되며 표출된다.

WWW(World Wide Web) : 사용자 친화적인 방법으로 인터넷을 통해 공유하는 것이 가능하게 하는 정보시스템

HTTP(Hyper Text Transfer Protocol) : http는 www의 기반이며 하이퍼텍스트 링크를 이용하여 웹페이지들을 로드하는데 사용된다.

728x90

'Study' 카테고리의 다른 글

'로켓 펀치' 웹사이트 버그 수정  (1) 2025.07.11
검색 엔진 최적화(SEO)란?  (0) 2025.07.06
웹 개발과 개발 용어에 대한 이해(2)  (0) 2024.10.17