Dseok의 실전 예제로 웹개발 한방에 끝내기

웹개발, 혼자 하려니 막막하고 힘드시죠? 저 또한 그렇습니다. 힘든 웹개발... 실전 예제를 통해 함께 공부해요!!!!😁📕

Javascript

[Dseok의 코딩스터디] JavaScript로 랜덤 얼굴 생성기 구현하기

Dseok 2025. 3. 3. 09:03
반응형
SMALL

완성된 UI

📌 개요

HTML, CSS, JavaScript를 활용하여 클릭할 때마다 랜덤한 얼굴(이모지, 아이콘, SVG 등)을 생성하는 기능을 구현합니다.

이 기능을 통해 랜덤한 표정, 얼굴형, 액세서리 등을 조합하여 다양한 얼굴을 생성할 수 있습니다.

 

여기서는 Math.floor(Math.random()) 함수가 핵심입니다.

 

아래 MDN을 한번 보세요!

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/random

 

Math.random() - JavaScript | MDN

Math.random() 정적 메서드는 0보다 크거나 1보다 작은 부동 소수점 의사 난수를 반환하며, 해당 범위에서 거의 균일한 분포를 가지므로 원하는 범위로 확장할 수 있습니다. 구현체는 난수 생성 알고

developer.mozilla.org

 

 

📌 구현 기능

  1. 버튼을 클릭하면 랜덤한 얼굴(이모지) 생성
  2. 랜덤한 표정, 액세서리, 얼굴형 조합
  3. 사용자가 원하는 스타일을 적용할 수 있도록 CSS 스타일링
  4. JavaScript의 Math.random()을 활용하여 랜덤 요소 선택

📌 HTML 구조

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>랜덤 얼굴 생성기</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            text-align: center;
            margin-top: 50px;
            background-color: #f4f4f4;
        }
        .face-container {
            font-size: 50px;
            margin: 20px auto;
            padding: 20px;
            display: inline-block;
            background: white;
            border-radius: 10px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        }
        button {
            padding: 10px 15px;
            font-size: 16px;
            border: none;
            background: #007bff;
            color: white;
            border-radius: 5px;
            cursor: pointer;
        }
        button:hover {
            background: #0056b3;
        }
    </style>
</head>
<body>
    <h2>🎭 랜덤 얼굴 생성기</h2>
    <div class="face-container" id="faceContainer">😀</div>
    <br>
    <button id="generateFace">랜덤 얼굴 생성</button>
    
    <script>
        document.addEventListener("DOMContentLoaded", () => {
            const faceContainer = document.getElementById("faceContainer");
            const generateButton = document.getElementById("generateFace");
            
            // 얼굴 요소 배열
            const faces = ["😀", "😁", "😂", "😃", "😄", "😆", "😅", "😇", "😎", "😍", "😜", "😡", "😱", "😴", "🤔", "😷", "🤠", "👻", "👽", "🤖"];
            
            // 랜덤 얼굴 생성 함수
            function generateRandomFace() {
                const randomIndex = Math.floor(Math.random() * faces.length);
                faceContainer.textContent = faces[randomIndex];
            }
            
            // 버튼 클릭 이벤트
            generateButton.addEventListener("click", generateRandomFace);
        });
    </script>
</body>
</html>
 

📌 코드 설명

1. HTML & CSS 구성

  • face-container: 현재 표시되는 얼굴 이모지를 보여주는 영역
  • button: 클릭 시 새로운 랜덤 얼굴을 생성하는 버튼
  • CSS를 활용하여 버튼 스타일링 및 얼굴 표시 컨테이너 스타일링 적용

2. JavaScript 기능

  1. faces[] 배열을 생성하여 여러 얼굴 이모지를 저장
  2. Math.random()을 이용해 랜덤한 얼굴을 선택
  3. textContent를 이용해 선택된 이모지를 face-container에 표시
  4. addEventListener()를 사용하여 버튼 클릭 시 랜덤 얼굴을 변경

 

📌 마무리 🎯

  • Math.random()을 활용하여 랜덤 얼굴 선택
  • textContent를 이용해 동적 UI 변경
  • 간단한 HTML, CSS, JavaScript만으로 인터랙티브한 기능 구현
  • 기능 확장 가능: 랜덤 얼굴 스타일 조합 추가 가능

배열에 실제 사진 이미지를 넣어서 게임을 만들어도 재미있을 것 같네요!

이런 집에서 살고싶다

반응형
LIST