Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

JAN's History

스벨트(Svelte)! 웹 개발의 새로운 친구 🥳 본문

Svelte

스벨트(Svelte)! 웹 개발의 새로운 친구 🥳

JANNNNNN 2024. 10. 19. 12:42

안녕하세요 오늘은 웹 어플리케이션을 만들 수 있는 멋진 친구, 스벨트에 대해서 알아보도록 하겠습니다! 

그러면 스벨트란 무엇이고, 어떻게 등장하게 되었는지 한번 알아볼게요 :)

바닐라 JS란? 🤔

바닐라 JS란 순수 자바스크립트를 의미하는데요. 다른 라이브러리나 프레임워크 없이 그냥 자바스크립트로 만든 코드입니다.

예를 들어, 아이스크림 가게에서 아이스크림을 만들 때 아무것도 추가하지 않고 기본 재료만 사용해서 만드는 것과 비슷하죠. 그런데 이렇게 만든 아이스크림을 쉽고 간단하지만, 많은 아이스크림을 만들 때에는 관리하기가 힘들어질 수 있어요 !

바닐라 JS로 버튼을 클릭했을 때 화면에 메시지를 출력하는 간단한 예시입니다.

// 바닐라 JS
const button = document.createElement('button');
button.textContent = '클릭해 주세요!';
document.body.appendChild(button);

button.addEventListener('click', () => {
    alert('안녕하세요!');
});

리액트의 등장 배경 📈

그런데 이렇게 바닐라 JS로만 작업하면 복잡한 프로그램을 만들기가 어려워질 수 있죠. 그래서 페이스북에서는 리액트라는 친구를 만들었습니다! 🎉

리액트는 컴포넌트라는 개념을 사용해서 UI를 구조화할 수 있도록 도와주는데요. 마치 레고 블록처럼 작은 조각을 조합해서 큰 구조물을 만드는 것과 같아요! 그리고 리액트는 가상 DOM을 사용해 성능도 더 좋게 만들어줍니다 👍

 가상 DOM이란?
가상 DOM은 실제 DOM의 복사본으로, 화면을 업데이트할 때 직접적으로 DOM을 수정하는 대신, 가상 DOM에서 변경 사항을 먼저 계산한 뒤 실제 DOM에 반영하는 방식입니다. 이렇게 하면 성능을 개선할 수 있습니다.

리액트에서는 다음과 같이 컴포넌트를 만들어, 버튼 클릭 시 메시지를 출력할 수 있습니다:

// 리액트
import React from 'react';
import ReactDOM from 'react-dom';

function App() {
    const handleClick = () => {
        alert('안녕하세요!');
    };

    return (
        <button onClick={handleClick}>클릭해 주세요!</button>
    );
}

ReactDOM.render(<App />, document.getElementById('root'));

하지만 리액트는 런타임에 가상 DOM을 사용 것으로 인해 약간의 성능 저하가 발생할 수 있습니다. 😅

스벨트의 등장 배경 🌟

그래서 이러한 문제를 해결하기 위해 새롭게 등장한 친구가 바로 스벨트입니다! ✨

스벨트는 컴파일 타임에 코드를 미리 최적화해서 실제 DOM을 직접 업데이트해 줍니다. 이 말은, 웹 페이지가 더 빠르게 반응할 수 있다는 뜻이에요! 🚀 마치 여러 단계의 재료가 필요 없이, 한 번에 완벽한 아이스크림을 만들어내는 것과 같습니다!

스벨트에서는 다음과 같이 버튼 클릭 시 메시지를 출력할 수 있습니다:

<!-- 스벨트 -->
<script>
    const handleClick = () => {
        alert('안녕하세요!');
    };
</script>

<button on:click={handleClick}>클릭해 주세요!</button>

스벨트의 장점 🌈

그럼 스벨트의 장점은 무엇일까요? 여기 세 가지를 소개해드리겠습니다!

1. 최적화된 성능 : 스벨트는 컴파일러가 코드를 미리 최적화해 실제 DOM을 잘 업데이트 해줘요.

2. 간결한 문법 : 코드를 쓰는 방법이 간단하고 짧아서 쉽게 이해할 수 있어요. 그래서 개발자가 기분 좋게 코드를 작성할 수 있답니다!

3. 반응형 프로그래밍 : 사상태가 변하면 UI도 자동으로 바뀌어요. 그래서 가발자는 복잡한 부분을 걱정하지 않아도 됩니다 🌼

결론 🎉

결론적으로 스벨트는 바닐라 JS와 리액트의 장점을 잘 결합하여 더 나은 성능과 생산성을 가진 혁신적인 프론트엔드 프레임워크입니다! 저도 앞으로 이 친구와 함께 멋진 웹 애플리케이션을 만들어 보려고 합니다 💪