프로필 페이지 제작

2025. 9. 2. 17:18·HTML&CSS/HTML&CSS 실습

📚 필수 과제

1. 프로필 전체 레이아웃 구성하기

더보기
더보기
더보기

1️⃣ 목적

  • HTML의 시맨틱 구조를 이해하고 구성한다.
  • <div>를 사용해 섹션을 나누는 구조를 익힌다.

2️⃣ 구현 내용

  • 총 4개의 <div> 를 활용해서 프로필 페이지의 전체 섹션 구조를 만들어보세요.
<div class="container">

            <div class="profile">
                <figure class="image">
                    <img src="myimage.jpeg" alt="서재원 미모티콘" />
                </figure>
                    <h2>서재원</h2>
                    <p>커머스 Spring 1기 수강생 서재원입니다.</p>
                    <p>백엔드 개발자를 꿈꾸며 웹개발 기초 과제를 수행하고 있습니다.</p>
                    <p>부족함은 많지만 노력만큼은 가장 넘치는 구성원이 되기 위해 노력하겠습니다!</p>
            </div>

            <div class="hobby section">
                <h3>취미</h3>
                <ul class="list">
                    <li><span class="chip">코딩</span></li>
                    <li><span class="chip">여행</span></li>
                    <li><span class="chip">운동</span></li>
                    <li><span class="chip">수영</span></li>
                    <li><span class="chip">게임</span></li>
                </ul>
            </div>    
                <h3>관심분야</h3>
                <ul class="list">
                    <li><span class="chip pink">Java</span></li>
                    <li><span class="chip pink">Javascript</span></li>
                    <li><span class="chip pink">Spring</span></li>
                    <li><span class="chip pink">Backend</span></li>
                    <li><span class="chip pink">Coding</span></li>
                </ul>

            <div class="footer">
                <p>📧 이메일 : <a href="mailto:stark77@naver.com">stark77@naver.com</a></p>
                <p>📗 Github : <a href="https://github.com/sjww0604/sparta" target="_blank">https://github.com/sjww0604/sparta</a></p>
                <p>📍 위치 : 서울 대한민국</p>
            </div>
        </div>

 

- container : 전반적인 큰 틀의 div 구역을 설정하여 내부에 들어가는 이미지 / 내용들을 정렬 및 정리하는 구조로 설정

- profile : 프로필 페이지에 노출되는 대표 이미지에 대한 div 태그 설정

- hobby section : 3번 & 4번 문항 기술 스택 및 관심분야 을 나열하는 과정에 대한 태그 설정

- footer : 소통 채널 정보 작성란 태그 설정 

 

+. 위 코드블럭은 <body> 내 포함되는 내용으로 HTML 관련 내용을 다루고 있음

+. <ul> / <li> 에 대해서는 아래 문항에 포함되는 내용으로 후술 예정

 

 

2. 프로필 이미지와 자기소개 문구 작성하기

더보기
더보기
더보기

1️⃣ 목적

  • 이미지와 텍스트 태그의 활용 방법을 익혀보세요.
  • 프로필에 어울리는 콘텐츠 구성을 연습해보세요.

2️⃣ 구현 내용

  • 프로필 이미지를 나타내는 <img> 태그를 사용해보세요.
  • 간단한 자기소개 문구를 함께 작성해보세요.
    <style>
        * {box-sizing: border-box;}

        .profile{
            overflow: auto;
        }

        figure.image {
            float: left;
            margin: 0 24px 8px 0;     /* 오른쪽·아래 여백 */
            width: 160px; height: 160px;
            border-radius: 50%;
            overflow: hidden;
            box-shadow: 0 8px 18px rgba(0,0,0,0.18);        
        }

        figure.image img { width: 100%; height: 100%; object-fit: cover; display: block;}

        .profile h2 { margin: 0 0 4px; line-height: 1.2; }
        .profile p  { margin: 6px 0; line-height: 1.6; }
    </style>
</head>    
    <body>
        <div class="container">

            <div class="profile">
                <figure class="image">
                    <img src="myimage.jpeg" alt="서재원 미모티콘" />
                </figure>
                    <h2>서재원</h2>
                    <p>커머스 Spring 1기 수강생 서재원입니다.</p>
                    <p>백엔드 개발자를 꿈꾸며 웹개발 기초 과제를 수행하고 있습니다.</p>
                    <p>부족함은 많지만 노력만큼은 가장 넘치는 구성원이 되기 위해 노력하겠습니다!</p>
            </div>

 

- CSS 구문에서 img 태그를 꾸미기 위해 figure.image , figure.image img 를 통해 구성

ㄴ 이미지 삽입 및 body 내 자기소개 문구를 구성함으로서 아래와 같은 결과물을 도출해 냄

 

3. 기술 스택 리스트 작성하기

더보기
더보기
더보기

1️⃣ 목적

  • 리스트 태그(<ul>, <li>)의 사용법을 익혀보세요.
  • 기술 정보를 구조적으로 표현하는 방법을 배워보세요.

2️⃣ 구현 내용

  • 본인의 기술 스택을 <ul>과 <li> 태그를 이용해 리스트 형태로 작성해보세요.
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>커머스 Spring 1기 서재원 프로필</title>

        .section {margin-top: 28px;}
        .section h3 {margin: 0 0 12px; font-size: 20px; border-left: 6px solid greenyellow; padding-left: 10px;}

        .list { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0;}
        .chip {
            display: inline-block; padding: 6px 12px;
            background: white; color: green; border: 1px solid lightgreen;
            border-radius: 9999px; font-size: 14px; font-weight: 600; user-select: none;
        }
    </style>
</head>    
    <body>
        <div class="container">

            <div class="hobby section">
                <h3>취미</h3>
                <ul class="list">
                    <li><span class="chip">코딩</span></li>
                    <li><span class="chip">여행</span></li>
                    <li><span class="chip">운동</span></li>
                    <li><span class="chip">수영</span></li>
                    <li><span class="chip">게임</span></li>
                </ul>
            </div>    

        </div>
    </body>
</html>

 

- CSS 구문의 border-radius 를 9999px; 로 부여함으로서 입력된 리스트 형태의 단어들을 알약 모양으로 구성함

취미 관련 내용은 .chip 으로 세부내용을 설정(초록색 계열의 알약모양)

 

<ul> : 비정렬 목록 태그로 순서가 중요하지 않은 목록을 나타낼 때 사용. 하나 이상의 <li>를 구성요소로 가지고 있어야 사용 가능

<li> : 목록 안의 아이템 항목의 개념

<span> : 문장 단위로 텍스트 영역을 지정

 

4. 관심 분야를 표 형태로 표현하기

더보기
더보기
더보기

1️⃣ 목적

  • 표 태그(<table>, <tr>, <td>)의 구조와 역할을 이해해보세요.
  • 관심 분야를 정리된 형태로 보여주는 방식을 학습해보세요.

2️⃣ 구현 내용

  • <table> 태그를 사용해서 본인의 관심 분야를 정리해보세요.
        /* CSS 구문 */
        .interest-table {
            width: 100%;
            table-layout: fixed;
            border-collapse: separate;
            border-spacing: 12px 12px;
            margin: 8px 0 20px;
        }

        .interest-table td {
            background : pink;
            border: 1px solid orange;
            border-radius: 14px;
            padding: 14px 16px;
            text-align: center;
            font-weight: 600;
            color: rgb(245, 107, 255);
            box-shadow: 0 2px 6px rgba(0,0,0,0.06);
            vertical-align: middle;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        
        /* HTML 구문 */ 
            <h3>관심분야</h3>
            <table class ="interest-table">
                <tr>
                    <td>Java</td>
                    <td>Javascript</td>
                    <td>Spring</td>
                </tr>
            
                <tr>
                    <td>Backend</td>
                    <td>Coding</td>
                </tr>
            </table>

 

.interest-table 를 통해 단순 표가 아닌 셀과 셀마다의 여백이 있어 보이는 형태로 테이블을 구성

td에 border-radius, box-shadow 등을 활용하여 취미 부분과 비슷하게 칩 형태로 구성하고자 함

table-layout을 fixed로 선언함으로서 테이블 내 셀 폭을 균등하게 배분

text-overflow를 ellpipsis로 선언함으로서 긴 텍스트에 있어서도 깨짐 없이 노출되게 함 

 

-> 리스트 태그와 테이블 태그의 차이는 표현하고자 하는 방식에서의 차이가 있을 뿐 노출되는 화면의 정도에는 큰 차이는 없는 정도

 

 

5. 소통 채널 정보 작성하기

더보기
더보기
더보기

1️⃣ 목적

  • 하이퍼링크(<a>) 태그의 기능과 사용 방법을 익혀보세요.
  • 외부 페이지로 연결되는 구조를 이해해보세요.

2️⃣ 구현 내용

  • 이메일, 블로그, SNS 등 소통 채널을 <a> 태그를 활용해 연결해보세요.
/* CSS 구문 */
        .footer {
            margin-top: 32px; padding-top: 16px; border-top: 1px solid whitesmoke;
            text-align: left; color: rgb(130, 130, 130); font-size: 14px;
        }
        
/* HTML 구문 */
            <div class="footer">
                <p>📧 이메일 : <a href="mailto:stark77@naver.com">stark77@naver.com</a></p>
                <p>📗 Github : <a href="https://github.com/sjww0604/sparta" target="_blank">https://github.com/sjww0604/sparta</a></p>
                <p>📍 위치 : 서울 대한민국</p>
            </div>

 

footer class를 선언함으로서 구분선 느낌의 모양을 확보하고 입력된 글자들을 정렬하는 과정을 거침

 

각 구문은 <p>, </p> 형태로 선언,  하이퍼링크 개념의 <a> 태그를 활용하여 소통 채널을 입력함

 

 


❤️‍🔥 도전 과제

1. 소통 채널 클릭 시 새 탭으로 열리도록 하기

더보기
더보기
더보기

1️⃣ 목적

  • <a> 태그의 target 속성을 이해하고 사용할 수 있어요.
  • 외부 링크 연결 시 사용자 경험을 고려한 새 창 열기 방식을 학습할 수 있어요.

2️⃣ 구현 내용

  • <a> 태그를 활용해 외부링크를 새창으로 열리도록 해보세요.

 

새 창으로 여는 경우 <a> 태그 내 target="_blank" 로 추가 옵션을 부여하여 기능을 구성 상기 기재한 필수과제 내 코딩 포함 되어있음

 

2. 동영상 포함하기

더보기
더보기
더보기

1️⃣ 목적

  • 웹 문서에 미디어를 삽입하는 방법을 익혀요.
  • <iframe> 또는 <video> 태그의 활용법을 이해할 수 있어요.

2️⃣ 구현 내용

  • 웹 개발과 관련한 유튜브 영상을 페이지에 포함해보세요.

 

/*CSS 구문*/
        iframe {
            display: block;
            margin: 20px 0;
        }
        
/*HTML 구문*/
            <iframe 
                src="https://www.youtube.com/embed/LsVtNqnI3Zk" 
                width="300" 
                height="300"
                title="YouTube video player"
                style="border: none;"
                referrerpolicy="strict-origin-when-cross-origin"
                allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
                allowfullscreen>
                iframe을 지원하지 않는 브라우저입니다.
            </iframe>

 

기존 구성했던 table 내용과 영상 태그의 여백이 부족하여 CSS 구문을 통해 윗 여백을 부여

 

iframe 태그를 사용함으로서 유튜브 영상을 끌어올 수 있었음.

- 단, 임베디드 링크로 연결해야 정상적으로 연결되기 때문에 해당 링크로 연결을 진행

 

3. 관심 분야 또는 기술 스택을 버튼으로 추가하기 (추가 학습 이후 진행 예정)

 

더보기
더보기
더보기

1️⃣ 목적

  • DOM 조작 및 이벤트 처리의 기본 개념을 체험해요.
  • 버튼 클릭 시 HTML 요소가 동적으로 추가되는 구조를 만들어볼 수 있어요.

2️⃣ 구현 내용

  • + 버튼을 만들고 클릭할 때마다 리스트 항목이 추가되도록 만들어보세요.

 


☠️ 트러블 슈팅

  • 이미지 삽입과 오른쪽 이름, 소개글을 구성하는데 지속적으로 연결된 형태로 구성되지 않는 상황 발생
    • 사용한 태그의 기본적인 한계인지에 대하여 검색
      • > float, Grid? 를 통한 화면 구성을 수정해 나아가며 나타내고자 하는 방향과 맞게 화면이 구성되는지 확인함
        Grid로도 구성 가능한 것으로 보여지지만 기존에 부여했던 margin 의 여백과 충돌되어 어디가 문제인지 정확하게 인지하지 못하는 상황이 있었음 

        float을 활용하여 왼쪽에는 프로필 이미지가 노출되게 하고, 오른쪽엔 자연스럽게 텍스트가 입력된 것처럼 보여지게 수정하여 적용 진행

  • 영상과 텍스트 간의 여백 조정이 필요
    • CSS에서 추가적인 디자인 조정을 해줘야 하는가?
    • 입력된 영상의 px 크기 조정을 통해 여백 효과를 볼 수 있는가? 
      • > iframe에 직접 margin을 부여하여 간단하게 위아래 여백을 추가해 실행되는 결과값의 구성을 변경 진행 함
  • 링크를 설정한 영상이 재생할 수 없다는 에러 결과창을 확인 
    • 왜 정상적으로 부여한 링크가 재생이 되지 않는가? 
      • 임베디드 링크로 연결이 되어야 Youtube 환경의 영상 첨부가 원활하게 가능하다는 점을 확인
  • 도전과제 구성 이후 새 탭으로 링크를 열 때 왜 콘솔 창에서 'Could not read source map for file' 문구가 노출되는가?
    • 페이지 동작이나 새 탭 열기에는 문제는 없으나, 소스맵 파일이 없거나 접근이 막혀 있는 경우 노출되는 알림 용도로 인지할 것

'HTML&CSS > HTML&CSS 실습' 카테고리의 다른 글

점메추 API Ajax 호출  (0) 2025.09.04
점심메뉴 추천기 API  (0) 2025.09.03
점심메뉴 추천기  (0) 2025.09.03
할 일 목록 만들기  (0) 2025.09.02
'HTML&CSS/HTML&CSS 실습' 카테고리의 다른 글
  • 점메추 API Ajax 호출
  • 점심메뉴 추천기 API
  • 점심메뉴 추천기
  • 할 일 목록 만들기
stark77
stark77
하마의 IT 자기개발 이모저모, 백엔드 개발자로 거듭나기
  • stark77
    하마의 개발자 성장일기
    stark77
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 컴퓨터구조와 운영체제
        • 컴퓨터구조
        • 운영체제
      • SQL 기초
      • Spring
        • 백엔드 기초
        • Spring 실습
      • JAVA
        • Java 실습
      • HTML&CSS
        • HTML&CSS 실습
      • Git&GitHub
        • Git&GitHub 실습
      • 내배캠 끄적끄적
        • Today I Learned
      • 유용한 툴 및 사이트 정리
      • 취미
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    Spriingboot
    프로세스와 쓰레드
    백엔드 기초다지기
    HTML&CSS
    다형성
    thymleaf
    for문
    algorithm
    Github
    jsp
    객체지향
    JPA
    Spring
    Til
    WebSocket
    객체지향프로그래밍
    Java 문법기초
    경합조건과 교착상태
    java
    Stomp
    MVC
    git
    SpringSecurity
    백엔드 기초
    웹소켓
    String.format
    BEAN
    RestTemplate
    네트워크 기초
    실시간 데이터 처리
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
stark77
프로필 페이지 제작
상단으로

티스토리툴바