웹 프레임워크는 수없이 많이 등장하고 사라지지만, 가장 유망한 프레임워크 중 하나는 Svelte입니다. Svelte는 React의 훌륭한 대안이며, 이미 대규모 커뮤니티를 보유하고 있지만 주목해야 할 프레임워크입니다. Svelte를 사용하면 여러 가지 접근 방식을 사용하여 앱의 스타일을 쉽게 지정할 수 있습니다.

스벨트 애플리케이션 스타일링하기

스벨트는 CSS 파일 가져오기, 글로벌 스타일시트 사용, 인라인 스타일링 등 사용자 인터페이스 스타일링을 위한 여러 가지 방법을 제공합니다. 각 접근 방식에는 뚜렷한 장점과 단점이 있습니다.

스벨트 프로젝트 설정하기

ViteJS를 사용하여 스벨트를 배포하려면 사용자 시스템에 Node.js 런타임 환경과 Node 패키지 관리자(NPM)가 모두 사전 설치되어 있어야 합니다. 이러한 구성 요소의 설치 상태는 터미널에서 다음 명령을 실행하는 간단한 터미널 작업을 통해 확인할 수 있습니다:

 node -v

Node가 작동하는지 확인하려면 장치에서 명령 프롬프트 또는 터미널을 실행하세요. 명령줄 인터페이스에 액세스할 수 있게 되면 다음 명령을 순서대로 실행하세요:

 npm create vite

의료 분야에서 인공지능(AI)의 사용은 최근 몇 년 동안 기하급수적으로 증가했으며, 연구자와 의료진은 환자 치료 결과를 개선하고 임상 워크플로를 간소화하기 위해 AI의 기능을 활용하고 있습니다. AI가 큰 영향을 미치고 있는 분야 중 하나는 영상의학, 특히 이미지 분석을 통한 의료 상태의 감지 및 진단 분야입니다. 고급 알고리즘과 머신러닝 모델의 개발로 이러한 시스템은 사람의 육안만으로는 놓칠 수 있는 패턴과 이상 징후를 식별하여 보다 정확하고 시기적절한 진단을 내릴 수 있게 되었습니다. 또한 AI 기반 도구는 영상의학 전문의의 의사 결정 과정을 지원하여 중증도에 따라 케이스의 우선순위를 정하고 환자 치료에 가장 중요한 케이스에 노력을 집중할 수 있도록 도와줍니다. 전반적으로 AI 기술을 영상의학에 통합하면

 yarn create vite

Vite 프레임워크를 사용하여 새로운 Svelte 기반 프로젝트를 생성하고 원하는 구성 설정을 지정하려면 다음 단계를 정교하게 따를 수 있습니다: 먼저 적절한 프로젝트 이름을 입력합니다. 그런 다음 프레임워크를 ‘Svelte’로 선택하고 프로그래밍 언어 변형을 ‘JavaScript’로 선택하되 원하는 경우 TypeScript를 사용할 수 있도록 허용합니다. 그런 다음 ‘cd’ 명령을 사용하여 지정된 프로젝트 디렉토리로 이동하고 필요한 종속성에 대한 설치 명령을 실행합니다.

 npm install

원본 문장이 구어체 스타일로 작성된 것으로 보이므로 동일한 의미를 전달하지만 좀 더 공식적인 언어로 대체할 수 있는 버전을 제공하겠습니다.

 yarn

필요한 종속성이 모두 설치되면 다음 명령을 실행하여 개발 서버를 시작할 수 있습니다.

 npm run dev

연구팀은 제품이 의도한 목적을 달성하는 데 효과적인지 여부를 확인하기 위해 철저한 조사를 수행했습니다.

 yarn dev

프로젝트의 마크업 정의

주어진 과제를 진행하려면 다음 단계를 따르세요: 1. 컴퓨터에서 선호하는 코드 편집기 애플리케이션을 실행합니다. 2. 에디터의 파일 탐색기에서 지정된 프로젝트 디렉토리로 이동합니다. 3. 프로젝트 디렉토리 내에서 삭제할 “assets” 및 “lib” 폴더를 찾아 선택합니다. 4. 프로젝트 디렉터리 내에 있는 “app.css” 파일에 포함된 모든 콘텐츠를 지웁니다. 5. 현재 콘텐츠를 완전히 제거하여 “App.svelte” 파일의 콘텐츠를 편집합니다. 6. 코드 편집기를 사용하여 프로젝트 디렉터리 내에 있는 “main.js” 파일을 엽니다. 7. “main.js” 파일의 기존 콘텐츠를 제공된 코드 스니펫으로 대체합니다.

 import App from './App.svelte'

const app = new App({
  target: document.getElementById('app'),
})

export default app

App.svelte 파일을 열고 스크립트 태그를 활용하여 그 안에 다양한 하이퍼링크가 포함된 배열을 생성하는 과정입니다.

 <script>
  let imageLinks = [
    "https://images.pexels.com/photos//pexels-photo-.jpeg",
    "https://images.pexels.com/photos//pexels-photo-.jpeg",
    "https://images.pexels.com/photos//pexels-photo-.jpeg",
    "https://images.pexels.com/photos//pexels-photo-.jpeg",
    "https://images.pexels.com/photos/755834/pexels-photo-755834.jpeg",
    "https://images.pexels.com/photos//pexels-photo-.jpeg",
  ];
</script>

이 작업을 수행하려면 먼저 웹 페이지의 HTML 구조 내에 `

` 요소를 만들어야 합니다. 그런 다음 이 기본 요소에 표시하려는 모든 시각적 미디어 요소의 저장소 역할을 하는 부모 컨테이너 `div`를 할당해야 합니다. 그런 다음 자바스크립트 또는 선택한 플랫폼과 호환되는 다른 프로그래밍 언어를 사용하여 ‘이미지 링크’ 배열에 포함된 각 항목을 탐색하고 각 항목에 대한 개별 ‘이미지’ 요소를 생성할 수 있습니다. 이러한 단계를 통해 궁극적으로 화면에 원하는 이미지 배열을 만들 수 있습니다.

 <main>
  <h1>Cute Cat Gallery</h1>
  <h3>See the cutest images of cats from the internet</h3>
  <div class="container">
    {#each imageLinks as url}
      <div class="image-container">
        <img src={url} />
      </div>
    {/each}
  </div>
</main>

마크업이 설정된 후에는 초기 기법, 즉 임포트 문을 통해 CSS 스타일을 직접 통합하여 플랫폼을 꾸미는 단계로 진행할 수 있습니다.

이 글도 확인해 보세요:  JES에서 사운드를 임포트하고 재생하는 방법

직접 CSS 임포트를 사용하여 스벨트 컴포넌트 스타일 지정

스벨트 컴포넌트 스타일 지정의 표준 기법에는 스크립트 태그 내의 최상위 수준에서 다음 구문을 사용하여 외부 CSS 파일을 생성하고 컴포넌트로 직접 가져오는 것이 포함됩니다:

 import "./app.css";

‘container’ 클래스의 표시 속성을 ‘grid’로 설정하고 ‘image-container’ 클래스에 10픽셀의 패딩을 추가하여 `app.css` 파일을 수정하세요.

 .container {
  display: grid;
  grid-template-columns: 33.3% 33.3% 33.3%;
}

.image-container {
  padding:10px;
}

다양한 화면 크기에 맞게 비주얼의 크기를 조정하고 각 이미지에 호버 효과를 구현합니다:

 img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  transition: 250ms;
}

img:hover {
  scale: 1.03;
  transition: 250ms;
}

웹 브라우저 환경에서 코드를 실행하면 이후의 시각적 디스플레이는 다음과 같은 특성을 포함해야 합니다:

직접 CSS 임포트의 장점

스타일을 정의하기 위해 외부 CSS 파일을 사용하면 다양한 컴포넌트에서 해당 스타일을 쉽게 재사용할 수 있습니다. 이러한 방식은 일관된 시각적 일관성이 필요한 서로 다른 컴포넌트에 통일된 스타일 요소를 적용하고자 할 때 유용할 수 있습니다.

변화하는 상황에 대응하여 자신의 계획이나 행동을 변경할 수 있는 능력을 유연성이라고 합니다. HTML 구조를 조정하지 않고 외부 CSS 파일을 통해 웹사이트의 외관을 업데이트할 때 이 접근 방식은 콘텐츠와 프레젠테이션을 명확하게 구분하여 적응성을 높입니다.

직접 CSS 가져오기의 단점

외부 CSS 파일을 활용하면 웹 개발에서 스타일링을 위한 강력한 기반을 제공하지만, 이 접근 방식은 때때로 서로 다른 외부 스타일시트 간에 예기치 않은 충돌이 발생하여 디버깅 프로세스가 길어지는 결과를 초래할 수 있습니다. Svelte 애플리케이션에서 이러한 문제를 방지하려면 각 Svelte 컴포넌트 파일 내에 인라인 스타일을 통합하는 것이 실용적인 해결책이 될 수 있습니다.

사용자가 사이트를 방문할 때 HTML 및 잠재적으로 JavaScript 파일과 함께 추가 외부 CSS 파일을 다운로드해야 하기 때문에 사이트 로딩 시간이 길어지는 경향이 있습니다. 이러한 지연은 언뜻 보기에는 무시할 수 있는 수준이지만, 외부 CSS 리소스가 넘쳐나면 누적 효과가 더욱 두드러집니다.

이 글도 확인해 보세요:  개발자와 디자이너를 위한 10가지 UI/UX 영감 사이트

스벨트 스타일 태그를 사용한 스타일링

스벨트 컴포넌트의 모양을 사용자 정의하는 한 가지 다른 방법은 프레임워크 자체에 내재된 스타일링 속성을 활용하는 것입니다. 이 방법은 다음 구조와 유사한 구문을 사용합니다:

 <script>
  <!-- Your logic goes here -->
</script>

<!-- Markup goes here -->

<style>
  <!-- styling goes here -->
</style>

이 접근 방식의 주목할 만한 장점은 범위 기반 스타일링으로, 개별 컴포넌트가 다른 컴포넌트의 스타일에 간섭받지 않고 고유한 외관을 가질 수 있다는 점입니다. 이는 디자인의 모듈성을 보장하는 동시에 외부 CSS 스타일링 규칙보다 우위에 있는 Svelte 내 내부 스타일 태그의 중요성을 강조합니다. 예를 들어 App.svelte 파일의 마지막에 다음 코드 조각을 추가해 보겠습니다.

 <style>
h1 {
  background-color: red;
}
</style>

원본 텍스트는 비공식 언어로 작성된 간단한 지침으로 보입니다. 좀 더 세련된 방식으로 표현하려면 다음과 같이 바꾸면 좋을 것 같습니다: “애플리케이션의 모양과 기능을 향상시키기 위해 App.css 파일에 특정 스타일과 기능을 추가했습니다.

 h1 {
  background-color: yellow;
}

웹 브라우저에서 코드를 실행하면 h1 요소의 배경색이 빨간색으로 표시되어 App.css 파일에 설정된 원래 노란색 배경색을 대체하는 것을 확인할 수 있습니다.

CSS 전처리기를 사용한 스타일 지정

Svelte 컴포넌트의 스타일을 지정하는 일반적인 방법 중 하나는 “스타일” 태그 내에 CSS 전처리기를 활용하는 것입니다. 이러한 전처리기는 고급 함수, 믹스인을 사용할 수 있게 하고 기존 CSS에서는 쉽게 사용할 수 없는 기능인 중첩을 용이하게 하는 등 여러 가지 이점을 제공합니다.

웹사이트나 애플리케이션의 스타일을 지정하기 위해 전처리기를 선택할 때 LessCSS, Sass, Stylus 등 다양한 옵션을 사용할 수 있습니다. 선호하는 전처리기를 통합하려면 먼저 “[전처리기 이름] –save-dev” 명령을 통해 해당 전처리기를 개발 종속 요소로 설치해야 합니다.

 npm install -D <css-preprocessor>

어떤 작업이나 상황에 대한 책임을 지고 있지만 궁극적으로 원하는 결과를 얻지 못하는 개인에게서는 가치를 찾을 수 없습니다. 이러한 정서는 약속을 지키고 의무를 이행하는 능력이 높이 평가되는 모든 상황에서 신뢰성과 의존성의 중요성을 강조합니다.

 yarn add -D <css-preprocessor>

Less와 같은 특정 전처리기를 프로젝트에 통합하려면 다음 명령을 실행하세요:

 npm install -D less

“나는 이 시점에 출발하려고 합니다.

 yarn add -D less

이 단계에 이어 ‘스타일’ 태그에 ‘lang’ 속성을 할당하고 그 값을 ‘less’로 설정하여 덜 형식적인 언어 사용을 나타낼 수 있습니다.

 <style lang="less">
</style>

실제로 Less CSS의 강력한 기능을 활용하는 것은 이제 Svelte 컴포넌트 내에 원활하게 통합되어 있으므로 정교한 스타일링을 위해 포괄적인 기능을 활용할 수 있습니다.

이 글도 확인해 보세요:  React Native에서 Flexbox를 사용하는 방법

Svelte가 놀라운 이유는 무엇인가요?

각 Svelte 스크립트는 ‘.svelte’ 별칭으로 끝납니다. Svelte 컴파일러는 해당 파일에 포함된 콘텐츠를 면밀히 분석하여 필요한 JavaScript와 CSS를 생성한 후 브라우저로 전송합니다. 이 절차의 결과로 웹사이트 성능이 신속하게 향상되어 궁극적으로 최종 사용자의 경험이 향상됩니다.

특정 스벨트 기반 프로젝트의 맥락에서 외부 자바스크립트 라이브러리를 통합하는 것이 적절하다고 판단되는 경우, React와 같은 대체 프레임워크에서 종종 요구되는 것처럼 별도의 래퍼 컴포넌트 내에 포함하지 않고 ‘.svelte` 파일 내에 직접 포함하도록 선택할 수 있습니다.

By 김민수

안드로이드, 서버 개발을 시작으로 여러 분야를 넘나들고 있는 풀스택(Full-stack) 개발자입니다. 오픈소스 기술과 혁신에 큰 관심을 가지고 있고, 보다 많은 사람이 기술을 통해 꿈꾸던 일을 실현하도록 돕기를 희망하고 있습니다.