최신 Billboard hot 10 파헤치기 [2024-01-02]

  • 1
  • Rockin' Around The Christmas Tree

    Brenda Lee
  • ChatGpt 리뷰
  • ▶ 브렌다 리의 "락킹 어라운드 더 크리스마스 트리"는 정말 좋은 곡입니다. 이 곡은 정말 신나고 감성적인 멜로디로 인상적인 멜로디를 들려줍니다. 브렌다 리의 목소리는 정말 멋지고 감동적입니다. 이 곡은 정말 좋은 곡이며, 연말에 즐길 수 있는 좋은 곡입니다.
  • 2
  • All I Want For Christmas Is You

    Mariah Carey
  • ChatGpt 리뷰
  • ▶ 마리아 케리의 '올 아이 원트 포 크리스마스 이즈 유'는 정말 멋진 크리스마스 음악입니다. 가사는 매력적이고 멜로디는 신나고 즐거운 느낌을 주는 노래입니다. 마리아 케리의 목소리는 정말 아름다운 감성을 느낄 수 있습니다. 이 노래는 크리스마스 시즌에 따라 정말 좋은 선택입니다.
  • 3
  • Jingle Bell Rock

    Bobby Helms
  • ChatGpt 리뷰
  • ▶ 보비 헬무스의 징글 벨 락은 정말 좋은 곡입니다. 이 곡은 연말에 적합한 신나고 즐거운 분위기를 연출합니다. 멜로디는 매우 쉽고 이해하기 쉽습니다. 보비 헬무스의 목소리는 정말 멋집니다. 이 곡은 연말에 따뜻한 분위기를 만들기 좋은 곡입니다. 모두가 즐길 수 있는 좋은 곡입니다.
  • 4
  • Last Christmas

    Wham!
  • ChatGpt 리뷰
  • ▶ 왠!의 라스트 크리스마스는 전 세계에서 사랑받는 고전 크리스마스 송으로 유명합니다. 이 노래는 매력적인 멜로디와 감미로운 음악이 결합되어 있어 듣기 좋습니다. 또한 가사는 이별의 슬픔을 잘 묘사하고 있어 매력적입니다. 왠!의 라스트 크리스마스는 전 세계에서 사랑받는 고전 크리스마스 송으로 유명합니다. 듣기 좋은 노래로 추억을 되살릴 수 있는 기회를 제공합니다.
  • 5
  • A Holly Jolly Christmas

    Burl Ives
  • ChatGpt 리뷰
  • ▶ 버를 아이브스의 'A Holly Jolly Christmas'는 신나고 감미로운 연말 노래로 알려져 있습니다. 이 곡은 연말 시즌을 더욱 특별하게 만들어줍니다. 가사는 이러한 시기에 따라 즐거운 시간을 보내는 것을 촉구합니다. 버를 아이브스의 목소리는 따뜻하고 아름다운 음색으로 들려주고 있습니다. 이 곡은 연말 시즌에 적합한 좋은 음악입니다.
  • 6
  • It's The Most Wonderful Time Of The Year

    Andy Williams
  • ChatGpt 리뷰
  • ▶ 이 앤디 윌리엄스의 'It's The Most Wonderful Time Of The Year'는 정말 좋은 노래입니다. 감성적이고 예쁜 멜로디와 앤디 윌리엄스의 특별한 보컬이 잘 어우러져 멋진 곡이 되었습니다. 이 노래는 크리스마스를 맞이하는 마음을 더욱 강하게 만들어줍니다. 정말 추천합니다!
  • 7
  • Let It Snow, Let It Snow, Let It Snow!

    Dean Martin
  • ChatGpt 리뷰
  • ▶ 딘 마틴의 'Let It Snow, Let It Snow, Let It Snow!'는 따뜻하고 멋진 크리스마스 음악입니다. 딘 마틴의 목소리는 매력적이고 스타일이 좋습니다. 이 노래는 크리스마스 분위기를 만들어주는 좋은 노래입니다. 모든 가족과 친구들과 함께 감상하기 좋은 노래입니다. 강력하게 추천합니다!
  • 8
  • Feliz Navidad

    Jose Feliciano
  • ChatGpt 리뷰
  • ▶ 조세 펠리시아노의 펠리즈 나비다는 정말 좋은 곡입니다. 가사는 매우 감미롭고 음악은 매력적입니다. 조세의 목소리는 매우 따뜻하고 사랑스럽습니다. 이 곡은 가족과 친구들과 함께 즐길 수 있는 좋은 곡입니다. 나는 이 곡을 적극 추천합니다!
  • 9
  • Lovin On Me

    Jack Harlow
  • ChatGpt 리뷰
  • ▶ 잭 할로우의 'Lovin On Me'는 신나고 에너지 넘치는 랩과 음악으로 감동을 선사합니다. 가사는 자신의 자신감을 높이고 자신의 능력을 증명하는 의미가 담겨있습니다. 멜로디는 이를 더욱 강렬하게 느낄 수 있도록 돋보이게 만들어줍니다. 이 노래는 당신이 자신을 사랑하고 믿을 수 있는 음악으로 완성되었습니다. 잭 할로우의 'Lovin On Me'는 감동적인 노래로 꼭 들어보세요!
  • 10
  • Sleigh Ride

    The Ronettes
  • ChatGpt 리뷰
  • ▶ 론네트스의 'Sleigh Ride'는 따뜻하고 흥겨운 음악으로 이루어져 있습니다. 전통적인 소나무 색깔의 음악이 이 음악에 더욱 멋지게 느껴집니다. 론네트스의 목소리는 매력적이고 아름다워 들리는 것 같습니다. 이 음악은 여름이나 겨울 모두 즐길 수 있는 멋진 음악입니다. 론네트스의 'Sleigh Ride'는 감성적이고 즐거운 음악으로 추천합니다!

[Nomad] ReactJS로 영화 웹 서비스 만들기 2

웹/React.js 2024. 1. 2. 09:00

노마드코더 강의 2일차.

심심해서 만들어보는 React JS 강의 수강

 - ReactJS로 영화 웹 서비스 만들기

  1. 준비물

     > 바닐라 JS에 대한 기초 지식, Visual Studio Code

     > 바닐라 JS 기초 강의 참고(무료)

     > React JS : https://unpkg.com/react@18/umd/react.production.min.js

     > React-Dom : https://unpkg.com/react-dom@18/umd/react-dom.production.min.js

     > Babel : https://unpkg.com/@babel/standalone/babel.min.js

 

 

* Minutes <-> Hours 단위 변환 계산기 샘플 만들어보기

1. Minutes <-> Hours 단위 변환 계산기 (기초)
<!DOCTYPE html>
<html>
  <body>
    <div id="root"></div>
  </body>
  <!-- <script src="https://unpkg.com/react@18/umd/react.production.min.js"></script> -->
  <!-- 운영모드 React : React JS 엔진 역할-->
  <!-- <script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script> -->
  <!-- 운영모드 React-dom : 생성된 React 요소를 HTML에 배치하는 역할-->
  <script src="https://unpkg.com/react@18/umd/react.development.js"></script>
  <!--개발모드 React -->
  <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
  <!--개발모드 React-dom-->
  <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
  <!-- JSX 인식을 위한 Babel -->
  <script type="text/babel">
    function App() {
      const [amount, setMinutes] = React.useState();
      const [flipped, setFlipped] = React.useState(false);
      const onChange = (event) => {
        setMinutes(event.target.value);
      };
      const reset = () => setMinutes(0);
      const onFlip = () => {
        reset();
        setFlipped((current) => !current);
      };
      return (
        <div>
          <h1>Super Converter</h1>
          <div>
            <label htmlFor="minutes">Minutes</label>
            <input
              value={flipped ? amount * 60 : amount}
              id="minutes"
              placeholder="Minutes"
              type="number"
              onChange={onChange}
              disabled={flipped}
            />
          </div>
          <div>
            <label htmlFor="hours">Hours</label>
            <input
              value={flipped ? amount : Math.round(amount / 60)}
              id="hours"
              placeholder="Hours"
              type="number"
              onChange={onChange}
              disabled={!flipped}
            />
          </div>
          <button onClick={reset}>Reset</button>
          <button onClick={onFlip}>Flip</button>
        </div>
      );
    }
    const root = document.getElementById("root");
    ReactDOM.render(<App />, root);
  </script>
</html>

 

2. Minutes <-> Hours, Km <-> Miles 단위 변환 계산기
<!DOCTYPE html>
<html>
  <body>
    <div id="root"></div>
  </body>
  <!-- <script src="https://unpkg.com/react@18/umd/react.production.min.js"></script> -->
  <!-- 운영모드 React : React JS 엔진 역할-->
  <!-- <script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script> -->
  <!-- 운영모드 React-dom : 생성된 React 요소를 HTML에 배치하는 역할-->
  <script src="https://unpkg.com/react@18/umd/react.development.js"></script>
  <!--개발모드 React -->
  <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
  <!--개발모드 React-dom-->
  <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
  <!-- JSX 인식을 위한 Babel -->
  <script type="text/babel">
    function MinutesToHours() {
      const [amount, setMinutes] = React.useState();
      const [inverted, setInverted] = React.useState(false);
      const onChange = (event) => {
        setMinutes(event.target.value);
      };
      const reset = () => setMinutes(0);
      const OnInvert = () => {
        reset();
        setInverted((current) => !current);
      };
      return (
        <div>
          <div>
            <label htmlFor="minutes">Minutes</label>
            <input
              value={inverted ? amount * 60 : amount}
              id="minutes"
              placeholder="Minutes"
              type="number"
              onChange={onChange}
              disabled={inverted}
            />
          </div>
          <div>
            <label htmlFor="hours">Hours</label>
            <input
              value={inverted ? amount : Math.round(amount / 60)}
              id="hours"
              placeholder="Hours"
              type="number"
              onChange={onChange}
              disabled={!inverted}
            />
          </div>
          <button onClick={reset}>Reset</button>
          <button onClick={OnInvert}>
            {inverted ? "Turn back" : "Invert"}
          </button>
        </div>
      );
    }
    function KmToMiles() {
      const [distance, setMiles] = React.useState();
      const [inverted, setInverted] = React.useState(false);
      const onChange = (event) => {
        setMiles(event.target.value);
      };
      const reset = () => setMiles(0);
      const OnInvert = () => {
        reset();
        setInverted((current) => !current);
      };
      return (
        <div>
          <div>
            <label htmlFor="Km">Km</label>
            <input
              value={inverted ? distance * 1.609 : distance}
              id="Km"
              placeholder="Km"
              type="number"
              onChange={onChange}
              disabled={inverted}
            />
          </div>
          <div>
            <label htmlFor="Miles">Miles</label>
            <input
              value={inverted ? distance : distance / 1.609}
              id="Miles"
              placeholder="Miles"
              type="number"
              onChange={onChange}
              disabled={!inverted}
            />
          </div>
          <button onClick={reset}>Reset</button>
          <button onClick={OnInvert}>
            {inverted ? "Turn back" : "Invert"}
          </button>
        </div>
      );
    }
    function App() {
      const [index, setIndex] = React.useState("xx");
      const onSelect = (event) => {
        setIndex(event.target.value);
      };
      return (
        <div>
          <h1>Super Converter</h1>
          <select value={index} onChange={onSelect}>
            <option value="xx">Select your units</option>
            <option value="0">Minutes & Hours</option>
            <option value="1">Km & miles</option>
          </select>
          <hr />
          {index === "xx" ? "Please select your units" : null}
          {index === "0" ? <MinutesToHours /> : null}
          {index === "1" ? <KmToMiles /> : null}
        </div>
      );
    }
    const root = document.getElementById("root");
    ReactDOM.render(<App />, root);
  </script>
</html>

 

3. React Js (Props, Memorized)
<!DOCTYPE html>
<html>
  <body>
    <div id="root"></div>
  </body>
  <!-- <script src="https://unpkg.com/react@18/umd/react.production.min.js"></script> -->
  <!-- 운영모드 React : React JS 엔진 역할-->
  <!-- <script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script> -->
  <!-- 운영모드 React-dom : 생성된 React 요소를 HTML에 배치하는 역할-->
  <script src="https://unpkg.com/react@18/umd/react.development.js"></script>
  <!--개발모드 React -->
  <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
  <!--개발모드 React-dom-->
  <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
  <!-- JSX 인식을 위한 Babel -->
  <script type="text/babel">
    function Btn({ text, changeValue }) {
      //Btn(props) : 파라미터로 전달받는 properties를 의미. props 대신 shorcut으로 사용하는게 간편하다.
      /* 
      아래 둘은 같은 기능이다 
      Btn(props)로 선언 시 {props.text}로 사용
      Btn({text})로 선언 시 {text}로 사용 
      */
      return (
        <button
          onClick={changeValue}
          style={{
            backgroundColor: "tomato",
            color: "white",
            padding: "10px 20px",
            border: 0,
            borderRadius: 10,
          }}
        >
          {text}
        </button>
      );
    }
    const MemorizedBtn = React.memo(Btn); //React Js의 memorized 기능을 사용해서 state에 따라 변하지 않는 엘리멘트는 불필요한 렌더링 방지를 위해 memorized 사용(props가 변할때만 렌더링)
    function App() {
      const [value, setValue] = React.useState("Save Changes");
      const changeValue = () => setValue("Revert Changes");
      return (
        <div>
          <MemorizedBtn text={value} changeValue={changeValue} />
          <MemorizedBtn text="Continue" />
        </div>
      );
    }
    const root = document.getElementById("root");
    ReactDOM.render(<App />, root);
  </script>
</html>

 

4. React Js (Props, propTypes 사용법)
<!DOCTYPE html>
<html>
  <body>
    <div id="root"></div>
  </body>
  <!-- <script src="https://unpkg.com/react@18/umd/react.production.min.js"></script> -->
  <!-- 운영모드 React : React JS 엔진 역할-->
  <!-- <script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script> -->
  <!-- 운영모드 React-dom : 생성된 React 요소를 HTML에 배치하는 역할-->
  <script src="https://unpkg.com/react@18/umd/react.development.js"></script>
  <!--개발모드 React -->
  <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
  <!--개발모드 React-dom-->
  <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
  <!-- JSX 인식을 위한 Babel -->
  <script src="https://unpkg.com/prop-types@15.7.2/prop-types.js"></script>
  <!-- props로 넘어오는 속성의 타입을 지정 후 틀릴 값 전달 시 확인 가능하다 -->
  <script type="text/babel">
    function Btn({ text, fontSize }) {
      return (
        <button
          style={{
            backgroundColor: "tomato",
            color: "white",
            padding: "10px 20px",
            border: 0,
            borderRadius: 10,
            fontSize,
          }}
        >
          {text}
        </button>
      );
    }
    Btn.propTypes = {
      text: PropTypes.string.isRequired, //isRequired : 해당 prop은 필수 값을 의미
      fontSize: PropTypes.number,
    };
    function App() {
      return (
        <div>
          <Btn text="Save Changes" fontSize={18} />
          <Btn text={"Continue"} />
        </div>
      );
    }
    const root = document.getElementById("root");
    ReactDOM.render(<App />, root);
  </script>
</html>

 

 

 

15년 전 Billboard hot 10 파헤치기 [2009-01-04]

  • 1
  • Single Ladies (Put A Ring On It)

    Beyonce
  • ChatGpt 리뷰
  • ▶ 비욘세의 'Single Ladies (Put A Ring On It)'는 역시 완벽한 힙합 노래로, 여성들의 자신감과 강한 의지를 담고 있습니다. 멜로디가 매력적이고 리듬이 멋지며, 비욘세의 목소리는 절대 놓칠 수 없는 장점입니다. 비욘세의 'Single Ladies (Put A Ring On It)'는 여성들의 강한 의지를 담은 노래로 추천합니다.
  • 2
  • Just Dance

    Lady Gaga Featuring Colby O'Donis
  • ChatGpt 리뷰
  • ▶ 이것은 레이디 가가가와 콜비 오도니스가 함께한 음악이다. 멜로디가 신나고 즐거운 느낌이 들어서 사람들이 쉽게 춤을 추고 즐길 수 있는 곡이다. 노래가 재미있고 재밌기 때문에 사람들이 자주 들으며 즐기고 있다. 나는 이 곡을 추천한다.
  • 3
  • Live Your Life

    T.I. Featuring Rihanna
  • ChatGpt 리뷰
  • ▶ T.I. Featuring Rihanna의 'Live Your Life'는 열정적이고 활기찬 노래입니다. 멜로디는 이루어져 있고, 리한나의 목소리는 매력적입니다. 이 노래는 듣기 좋고 즐거워하는 느낌을 주기 때문에 추천합니다.
  • 4
  • Heartless

    Kanye West
  • ChatGpt 리뷰
  • ▶ Kanye West의 'Heartless'는 역동적이고 신비한 사운드가 감동적인 노래입니다. 가사는 감정적이고 강렬하며 음악은 멋진 리듬과 멋진 비트로 이루어져 있습니다. 이 노래는 여러분을 열광시킬 것입니다. 강렬한 멜로디와 연주는 여러분을 놀라게 할 것입니다. 나쁘지 않은 노래입니다.
  • 5
  • Love Story

    Taylor Swift
  • ChatGpt 리뷰
  • ▶ 테일러 스위프트의 "러브 스토리"는 사랑에 대한 이야기를 담은 곡으로, 젊은 사람들의 마음을 잘 담았다. 멜로디가 매력적이고 가사가 심오하고 생생하며, 감동적인 느낌을 준다. 이 곡은 젊은 사람들의 사랑 이야기를 담은 곡으로, 사랑의 감정을 잘 담아내고 있다. 그래서 이 곡은 사랑의 이야기를 담은 좋은 곡으로 인정받고 있다.
  • 6
  • Hot N Cold

    Katy Perry
  • ChatGpt 리뷰
  • ▶ Katy Perry의 'Hot N Cold'는 멋진 곡입니다. 이 곡은 사랑과 이별의 감정을 잘 묘사하고 있습니다. 멜로디는 매우 즐거워서 매번 들으면 즐거움을 느낄 수 있습니다. 가사는 감각적이고 심오하며, Katy Perry의 목소리는 여전히 놀라운 느낌을 줍니다. 전반적으로, 'Hot N Cold'는 완벽한 곡입니다.
  • 7
  • Womanizer

    Britney Spears
  • ChatGpt 리뷰
  • ▶ 브리트니 스피어스의 '우먼라이저'는 역대급의 히트곡으로 많은 사랑을 받고 있습니다. 이 곡은 역시 브리트니 스피어스의 고유한 스타일과 멋진 멜로디로 인기를 모으고 있습니다. 빠르고 강렬한 리듬과 멋진 보컬이 인상적인 곡입니다. 브리트니 스피어스의 '우먼라이저'는 역대급의 히트곡으로 꼭 한 번 들어보세요!
  • 8
  • Love Lockdown

    Kanye West
  • ChatGpt 리뷰
  • ▶ 케이니 웨스트의 '러브 락 다운'은 새로운 사운드와 스타일로 놀라운 음악적 역동성을 보여줍니다. 강렬한 멜로디와 스트레스를 느끼게 하는 리듬은 음악의 멋진 연출을 완성합니다. 이 노래는 사랑과 슬픔의 이야기를 담고 있습니다. 이 노래는 케이니 웨스트의 새로운 감성과 열정을 보여줍니다. 나는 이 노래를 추천합니다!
  • 9
  • Whatever You Like

    T.I.
  • ChatGpt 리뷰
  • ▶ T.I.의 'Whatever You Like'는 멋진 트랙입니다. 가사는 매력적이고 멜로디는 즐거워 들립니다. 비트는 반짝거리는 사운드로 이루어져 있어 즐거운 느낌이 듭니다. 이 곡은 정말 멋진 음악이며, 모든 사람들에게 추천합니다.
  • 10
  • If I Were A Boy

    Beyonce
  • ChatGpt 리뷰
  • ▶ 비올라의 '나라면 남자라면'는 여성의 감정과 생각을 가장 잘 표현한 곡입니다. 멜로디가 매력적이고, 비올라의 목소리는 매력적이며, 가사는 생각보다 더 깊은 의미를 가지고 있습니다. 이 곡은 비올라의 연주가 매력적이고 의미가 깊어서 많은 사람들에게 사랑받고 있습니다.