레이아웃 문제 해결 보고서
레이아웃 문제 해결 보고서
문제점 분석
1. 블로그 포스트 세로 박스 문제
- 원인: article.page 요소의 너비가 제대로 제한되지 않음
- 증상: 콘텐츠가 세로로 길게 늘어남
- 해결: max-width와 flex 속성 정확히 설정
2. 레이아웃 불일치
- 원인: 블로그와 강의 페이지가 다른 스타일 사용
- 증상: 페이지마다 다른 모양과 느낌
- 해결: 통일된 레이아웃 시스템 구축
3. 반응형 문제
- 원인: 미디어 쿼리 충돌
- 증상: 모바일에서 레이아웃 깨짐
- 해결: 명확한 브레이크포인트 설정
해결 방법
1. 새로운 레이아웃 시스템 (_reset-layout.scss)
주요 특징
- Flexbox 기반: 명확한 flex 속성으로 레이아웃 제어
- 고정 너비 사이드바: 280px (large), 300px (x-large)
- 유동 너비 콘텐츠: calc()를 사용한 정확한 너비 계산
- overflow 제어: 콘텐츠 넘침 방지
코드 구조
.layout--single {
#main {
display: flex !important;
flex-direction: row !important;
}
.sidebar {
flex: 0 0 280px !important; // 고정 너비
}
article.page {
flex: 1 1 auto !important; // 유동 너비
min-width: 0 !important; // flex 버그 수정
max-width: calc(100% - 280px - 2rem) !important;
}
}
2. 스타일 통일
색상 체계
- Primary: #5e72e4
- Background: #f5f7fa
- Border: #e5e5e5
- Text: #333
카드 디자인
- Border Radius: 12px
- Shadow: 0 2px 8px rgba(0,0,0,0.08)
- Padding: 2rem (mobile: 1.5rem)
3. 반응형 디자인
브레이크포인트
- Small: 600px
- Medium: 768px
- Large: 1024px
- X-Large: 1280px
모바일 우선
// 기본 (모바일)
flex-direction: column;
padding: 1rem;
// 데스크톱
@include breakpoint($large) {
flex-direction: row;
padding: 3rem;
}
수정된 파일
1. SCSS 파일
_sass/layout/_reset-layout.scss(신규)_sass/layout/_unified-single.scss(신규)assets/css/main.scss(수정)
2. 레이아웃 파일
_layouts/default.html(수정)_layouts/single.html(유지)
3. 포스트 파일
_posts/*.md- excerpt 추가
테스트 체크리스트
데스크톱 (1024px+)
- 사이드바 고정 위치
- 콘텐츠 영역 너비
- 스크롤 동작
- 호버 효과
태블릿 (768-1023px)
- 레이아웃 전환
- 터치 인터랙션
- 읽기 편의성
모바일 (<768px)
- 단일 컬럼 레이아웃
- 사이드바 숨김
- 터치 영역 크기
- 폰트 크기
주요 개선사항
1. 성능
- 불필요한 !important 제거
- CSS 중복 제거
- 선택자 최적화
2. 접근성
- 명확한 색상 대비
- 키보드 네비게이션
- 스크린 리더 지원
3. 유지보수
- 변수 기반 디자인
- 모듈화된 SCSS
- 명확한 주석
남은 작업
우선순위 높음
- 다크모드 완벽 지원
- 프린트 스타일 개선
- 이미지 최적화
우선순위 중간
- 애니메이션 효과
- 로딩 성능 개선
- PWA 기능
우선순위 낮음
- 배경 자바스크립트 효과
- 고급 인터랙션
- 실험적 기능
결론
레이아웃 시스템을 완전히 재구성하여:
- 일관성: 모든 페이지가 동일한 레이아웃 사용
- 안정성: 명확한 너비 제한과 overflow 제어
- 확장성: 새로운 페이지 타입 쉽게 추가 가능
이제 블로그 포스트가 정상적으로 표시되며, 모든 페이지가 통일된 디자인을 갖습니다.
