icon안동민 개발노트

첫 웹 페이지 만들기


 이 절에서는 간단한 웹 페이지를 처음부터 끝까지 만드는 과정을 단계별로 살펴보겠습니다.

 HTML, CSS, 자바스크립트를 사용하여 기본적인 웹 페이지를 만들고, 웹 표준과 시맨틱 마크업의 중요성을 이해하며, 개발자 도구를 활용하는 방법을 배우게 될 것입니다.

1단계 : HTML 파일 생성 및 기본 구조 작성

 먼저, 텍스트 에디터(예: VS Code)를 열고 새 파일을 만들어 index.html로 저장합니다.

 기본적인 HTML5 구조를 작성합니다.

index.html
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>나의 첫 웹 페이지</title>
</head>
<body>
    <h1>환영합니다!</h1>
    <p>이것은 나의 첫 웹 페이지입니다.</p>
</body>
</html>
  • <!DOCTYPE html> : HTML5 문서임을 선언
  • <html lang="ko"> : 문서의 주 언어가 한국어임을 명시
  • <head> : 메타데이터와 문서 제목 포함
  • <meta charset="UTF-8"> : 문자 인코딩 설정
  • <meta name="viewport" ...> : 반응형 디자인을 위한 뷰포트 설정
  • <body> : 실제 콘텐츠가 들어가는 영역

2단계 : 시맨틱 마크업 적용

 웹 표준과 접근성을 고려하여 시맨틱 태그를 사용해 구조를 개선합니다.

<body>
    <header>
        <h1>환영합니다!</h1>
    </header>
    <nav>
        <ul>
            <li><a href="#about">소개</a></li>
            <li><a href="#contact">연락처</a></li>
        </ul>
    </nav>
    <main>
        <section id="about">
            <h2>소개</h2>
            <p>이것은 나의 첫 웹 페이지입니다.</p>
        </section>
        <section id="contact">
            <h2>연락처</h2>
            <p>이메일: [email protected]</p>
        </section>
    </main>
    <footer>
        <p>&copy; 2024 나의 웹사이트. All rights reserved.</p>
    </footer>
</body>

 시맨틱 태그(<header>, <nav>, <main>, <section>, <footer>)를 사용함으로써 문서의 구조를 명확히 하고, 검색 엔진 최적화(SEO)와 접근성을 향상시킵니다.

3단계 : CSS로 스타일 적용

 <head> 섹션에 <style> 태그를 추가하여 CSS를 적용합니다.

<head>
    <!-- 기존 메타 태그들 -->
    <style>
        body {
            font-family: Arial, sans-serif;
            line-height: 1.6;
            margin: 0;
            padding: 0;
        }
        header {
            background-color: #35424a;
            color: white;
            text-align: center;
            padding: 1rem;
        }
        nav {
            background-color: #003366;
            color: white;
        }
        nav ul {
            padding: 0;
            list-style-type: none;
            text-align: center;
        }
        nav ul li {
            display: inline;
            margin-right: 10px;
        }
        nav a {
            color: white;
            text-decoration: none;
        }
        main {
            padding: 20px;
        }
        footer {
            background-color: #35424a;
            color: white;
            text-align: center;
            padding: 10px;
            position: fixed;
            bottom: 0;
            width: 100%;
        }
    </style>
</head>

 이 CSS는 기본적인 레이아웃과 색상을 적용하여 페이지의 가독성과 시각적 매력을 향상시킵니다.

4단계 : 자바스크립트 기능 추가

 간단한 대화형 기능을 추가하기 위해 <body> 태그 종료 직전에 <script> 태그를 추가합니다.

<body>
    <!-- 기존 HTML 내용 -->
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            const h1 = document.querySelector('h1');
            h1.addEventListener('click', function() {
                alert('환영합니다! 첫 웹페이지 제작을 축하드립니다!');
            });
        });
    </script>
</body>

 이 스크립트는 페이지의 제목(h1)을 클릭하면 환영 메시지를 표시하는 간단한 기능을 추가합니다.

5단계 : 웹 페이지 확인 및 개발자 도구 활용

 1. 파일 탐색기에서 index.html 파일을 더블클릭하여 기본 브라우저에서 엽니다.

 2. 개발자 도구를 열어 (F12 또는 Ctrl+Shift+I) 다음을 확인합니다.

  • Elements 탭 : HTML 구조 검사
  • Console 탭 : 자바스크립트 오류 또는 로그 확인
  • Network 탭 : 리소스 로딩 상태 확인

 3. 반응형 디자인 테스트 : 개발자 도구의 디바이스 툴바를 사용해 다양한 화면 크기에서의 레이아웃 확인

일반적인 오류와 해결 방법

 1. 이미지가 표시되지 않음

  • 원인 : 파일 경로 오류
  • 해결 : 상대 경로를 정확히 지정하고 파일 이름/확장자를 확인

 2. CSS가 적용되지 않음

  • 원인 : CSS 선택자 오류 또는 우선순위 문제
  • 해결 : 개발자 도구에서 요소 검사, Styles 패널에서 적용된/덮어쓰인 스타일 확인

 3. 자바스크립트 오류

  • 원인 : 문법 오류 또는 존재하지 않는 요소 참조
  • 해결 : 콘솔에서 오류 메시지 확인, 코드 문법 및 요소 존재 여부 검증

 4. 크로스 브라우저 호환성 문제

  • 원인 : 특정 브라우저에서만 지원되는 기능 사용
  • 해결 : 다양한 브라우저에서 테스트, 필요시 폴리필 사용

웹 표준과 시맨틱 마크업의 중요성

  1. 접근성 향상 : 스크린 리더와 같은 보조 기술이 콘텐츠를 더 잘 해석할 수 있습니다.
  2. SEO 개선 : 검색 엔진이 페이지 구조와 콘텐츠의 의미를 더 잘 이해할 수 있습니다.
  3. 유지보수 용이성 : 명확한 구조로 인해 코드의 가독성과 유지보수성이 향상됩니다.
  4. 미래 호환성 : 웹 표준을 따르면 향후 기술 변화에 더 잘 대응할 수 있습니다.

결론

 이 과정을 통해 기본적인 웹 페이지를 성공적으로 만들었습니다. HTML로 구조를 정의하고, CSS로 스타일을 적용하며, 자바스크립트로 상호작용을 추가했습니다. 웹 표준과 시맨틱 마크업의 중요성을 이해하고, 개발자 도구를 활용하여 페이지를 검사하고 디버깅하는 방법도 배웠습니다.

 웹 개발은 지속적인 학습과 실습이 필요한 분야입니다. 이 기초를 바탕으로 더 복잡한 레이아웃, 고급 CSS 기술, 다양한 자바스크립트 기능 등을 학습하며 점진적으로 실력을 향상시켜 나갈 수 있습니다. 항상 웹 표준을 준수하고, 사용자 경험을 고려하며, 최신 트렌드와 기술을 학습하는 자세가 중요합니다.