728x90
반응형

https://sveltesociety.dev/

 

Home - Svelte Society

Svelte Society is a community-driven effort to organise and promote SvelteJS.

sveltesociety.dev

 

Svelte 커뮤니티 사이트입니다.

Templates, Components, Tools, Recipes 등을 검색해 볼 수 있다. 아쉽지만 영문 사이트라서 구글 번역으로 

아쉬움을 해결하도록 하자.

 

728x90
728x90
반응형

 

 

https://github.com/graphul-rs/graphul

 

GitHub - graphul-rs/graphul: Optimize, speed, scale your microservices and save money 💵

Optimize, speed, scale your microservices and save money 💵 - GitHub - graphul-rs/graphul: Optimize, speed, scale your microservices and save money 💵

github.com

 

Graphul Web Framework

NodeJs 에서 사용하고 있는 Express 웹프레임워크에 영감을 받아 Rust 언어로 구축된 웹프레임워크

속도와, 마이크로서비스의 확정상을 개선하기 위해 디자인되어 있음

Rust로 작성되었기 때문에 메모리 안정성, 신뢰성, 동시성 과 퍼포먼스를 보장받는다..


Rust 용으로 만들어진 기존 프레임워크 개념의 다양한 어플리케이션들이 많이 나오고 있다.

Rust에 관심을 가지고 꾸준히 찾아보고 있어서 그런 느낌을 받을 수 있을것 같긴한데.. 좋은 컨셉의 제품들이 꾸준히 그리고 빠르게 출시되고 있어서 미래가 밝다고 볼 수 있다.

꽤나 기대가된다.

한 5년 정도 잡고 틈틈히 공부를 해서 마스터 해야겠다.

728x90
728x90
반응형

개발환경설정 1 에서 프로젝트 세팅을 하다가 저장하고 곰곰히 생각을 해보니 내가 개발할 환경에 딱 맞는 Template가 없다는걸 깨달았다. 그래서 현재 오픈되어 있는 wails용 svelte 템플릿 4가지를 조합해서 구성해보려고 했는데 설정 세팅이 만만치 않더라.

그래서 기존 프로젝트들을 모두 생성 후 나에게 필요한 템플릿 구성을 만들어보고 있었다. 그런데 wails 에서 template를 만드는 쉬운 방법을 마련해놓은걸 알게되었다. 

그래서 만들어보았다 

Wails Template 만들기 과정 소개

 

[Golang] wails-vite-sveltekit-ts-tailwind 템플릿 만들기 - 004

글을 읽는 분들에게 미안한 마음이 들지만 앞단에 진행되던 내용들도 뭐 나름 의미가 있기는 하다. 003 글 마지막에 template 기본을 만들어주는 기능을 발견하고 바로 작성하던 글을 종료시켰다.

devguru.tistory.com

 

자신만의 템플릿을 만들고 싶다면 참고해서 따라해보면 쉽게 구성할 수 있을것 이다. 추천 좀 부탁..!!

 

이제 앞에서 설명하던 글들은 무시하고 wails-vite-sveltekit-ts-tailwind-template 으로 새로운 프로젝트를 생성하기로 한다.

wails init -n graduateapp -t https://github.com/dofstar/wails-vite-sveltekit-ts-tailwind-template.git

cd graduateapp

wails dev

wails build를 먼저 진행해야 하는게 맞지만 wails dev를 실행하면 build를 진행하면서 sveltekit 와 tailwind가 적용된 wails windows form이 실행되는걸 볼 수 있다.

3일동안 자료찾아보고 고민하고 지웠다가 다시 만들었다가 생쑈를 해서 만들었는데 얼추 완성본이 나오고 나니 눈물이 앞을 가린다. ㅠ.ㅠ 역시 나의 웹개발정신은 죽지 않았다!!!

 

이제 개발을 시작해보자 아자아자!!

가장 처음 개발해야 할부분은 각 거래소의 거래정보들을 websocket으로 안정적으로 받아오는지 확인을 하는데 있다.

그래서 Golang용 websocket 모듈이 쓸만한게 뭐가 있는지 살펴보니 Gorilla가 눈에 들어왔다.

일단 적용해보자. 더 고민하고 찾아봐야 시간만 간다.

https://www.gorillatoolkit.org/

 

Gorilla, the golang web toolkit

Gorilla is a web toolkit for the Go programming language. Currently these packages are available: Installation Run "go get" pointing to a package. For example, to install gorilla/mux: $ go get github.com/gorilla/mux Or clone a repository and use the source

www.gorillatoolkit.org

 

Gorilla License

https://www.olis.or.kr/license/Detailselect.do?lId=1092 

 

3-Clause BSD License(BSD-3-Clause)

원본 라이선스가 종종"BSD-old" 로 참고되어지고 있는만큼, 여기서 파생된3-조항 버전은"BSD-new" 로 불리기도 한다. 다른 이름으로는"New BSD", "revised BSD", "BSD-3" 혹은"3-조항BSD" 이 있다. 참고로 "New BSD"

www.olis.or.kr

일단 무료로 써도 된다는것 같으니 패쓰~~

 

가장 있기있는 라이브러리들이 4가지 있다고 하는데 전부 추가를 해야 하나?

 

go get github.com/gorilla/websocket
go get github.com/gorilla/mux
go get github.com/gorilla/sessions
go get github.com/gorilla/handlers

일단 추가해보자.

728x90
728x90
반응형

글을 읽는 분들에게 미안한 마음이 들지만 앞단에 진행되던 내용들도 뭐 나름 의미가 있기는 하다.
003 글 마지막에 template 기본을 만들어주는 기능을 발견하고 바로 작성하던 글을 종료시켰다. 그럼 새롭게 알아낸 방법으로 template를 만들어보기로 하자.
https://wails.io/docs/guides/templates/

Templates | Wails

Wails generates projects from pre-created templates. In v1, this was a difficult to maintain set of projects that were

wails.io

01. 템플릿 기본 생성하기

아주 간단히 template 기본 틀을 생성할 수 있다.

wails generate template -name {프로젝트명}
ex)
wails generate template -name wails-vite-sveltekit-ts-tailwind-template

앞에서 등록한 글들에서 본 폴더/파일 구조와 별반 다르지 않다고 느낄 수 있는데 자세히 보면 설정 파일들의 파일명이 다르다는 걸 알 수 있다.
package.tmpl.json
, app.tmpl.go
, go.tmpl.go
, main.go.tmpl
, wails.tmpl.json
이렇게 tmpl이라는 문구가 추가되어 생성되어 있다.

wails.tmpl.json

대표적으로 wails.tmpl.json 파일을 오픈해보면 변경될만한 정보들이 {{ }} 로 감싸져 있는 걸 볼 수 있다. 이 부분이 -t 옵션으로 프로젝트를 생성하게 되면 상황에 맞는 값들이 대입되어 온전한 wails.json 파일이 생성되게 된다.
그런데 template 프로젝트를 생성 후 frontend 폴더를 보면 frontend 소스가 없고 dist 폴더와 package.tmpl.json 만 있는 걸 볼 수 있다. dist는 frontend 폴더에 개발을 하면 빌드 시 재 구성되는 부분이라 확인할 필요가 없고 package.tmpl.json은 개발에 사용할 의존 모듈들에 대한 정의들이 정의된 설정 파일이다. 개발된 샘플 소스가 없다.
template 프로젝트를 생성할 때 -frontend 옵션이 있는데 별도로 구성된 javascript 프로젝트를 frontend로 포함시켜서 템플릿을 완성시켜 주는 기능이 포함되어있다.
나는 sveltekit + vite +typescript + tailwind 를 사용할 예정이므로 이 네 가지를 적용한 프로젝트를 별도로 만들어보겠다.

일단 앞에서 샘플로 생성한 폴더를 삭제한다.

rmdir /s /q wails-vite-sveltekit-ts-tailwind-template

02. Frontend 기술 적용된 프로젝트 만들기
https://kit.svelte.dev/docs/introduction

Introduction • Docs • SvelteKit

Introduction Edit this page on GitHub SvelteKit is in release candidate phase for 1.0 while we address reported issues and add polish. If you get stuck, reach out for help in the Discord chatroom. See the migration guides for help upgrading from Sapper. Sv

kit.svelte.dev

sveltekit을 설치하기 위해 사이트에 접속해 보자.
그럼 다음 내용을 확인할 수 있다.

나는 npm을 사용하지 않고 pnpm을 사용할 것이므로 위 내용과는 조금 다르게 프로젝트를 생성하겠다.

pnpm create svelte@latest sveltekit-template

문답형 설치가 진행된다.

Skeleton Project로 템플릿을 생성하니 너무 없어 보여서 SvelteKit demo app으로 선택하기로 한다.

Typescript 를 사용할 예정이므로 두 번째 항목을 선택한다 (본인이 만들 템플릿에 따라서 선택하면 된다. No는 VanillaJS를 의미한다.)

ESLint (Option)
Prettier (Option)
Playwright (Option)
위 세 가지 선택 여부를 결정하고 프로젝트를 생성한다. (위 3가지는 검색해서 한번 알아보도록 하자)

프로젝트가 생성되면서 다음 절차를 통해서 실행해볼 수 있다는 문구가 나타난다. (npm을 pnpm으로 바꾸고 pnpm에서는 run 명령어를 생략해도 되므로 run을 생략하고 실행해보자(4 번에서)
그리고 git 사용 여부는 본인 선택이므로 사용할 거면 git 설치 부분을 학습하고 설치 후 3번을 진행하도록 한다. 단 지금은 템플릿을 만드는 단계이므로 맨 마지막에 진행해도 상관없을 것 같으므로 지금은 3번은 스킵하도록 한다.

cd sveltekit-template
pnpm install
pnpm dev -- --open

pnpm install 실행 중 corepack을 통한 update를 하라고 하는데 지금 정확히 잘 모르겠다. 추후 알게 되면 해당 글에 업데이트하도록 하겠다.

다음과 같이 devDependencies에 의존성 모듈들이 추가되었다고 나타난다. 모두 최신 버전인 것 같다.
(Skeleton 으로 생성했을 때와는 의존성 모듈 구성이 조금 틀리니 이상하다고 겁먹지 말자)
이제 정상적으로 구동이 되는지 실행해보자.
pnpm dev -- --open

웹서버가 구동되었다

크롬 브라우저를 실행 후 Local에 있는 주소를 복사해서 붙여 넣어 보자.


정상적으로 실행되는 걸 확인했다.
이번에 사용할 기술들 중 3가지가 해결되었다.
Sveltekit + Vite + Typescript
다음으로 Tailwind css 프레임워크를 추가해보자.
https://tailwindcss.com/docs/guides/sveltekit

Install Tailwind CSS with SvelteKit - Tailwind CSS

Documentation for the Tailwind CSS framework.

tailwindcss.com

8 단계로 설명해 놓았는데 1단계는 이미 처리된 거고 2단계부터 적용해보자

항상 유의해야 할 부분이 npm을 사용하지 않고 pnpm을 사용하는 거다.

pnpm install -D tailwindcss postcss autoprefixer svelte-preprocess

devDependencies가 추가되었는데 svelte-preprocess 부분은 이미 등록되어 있어서 누락되었다.

pnpx tailwindcss init tailwind.config.cjs -p

두 가지 cjs 파일이 생성되었다.
이제 사용할 모든 프레임워크와 모듈이 추가되었으므로 wails 템플릿을 다시 만들어보자.

02. frontend Project로 wails template 생성하기

cd ..
wails generate template -name wails-vite-sveltekit-ts-tailwind-template -frontend ./sveltekit-template

sveltekit-template 폴더 상위로 이동한 후 template 을 생성해보자.


정상적으로 생성되었다.
알기 전까진 꽤 어렵게 생각되었는데 구조를 알고 나니 큰 어려움 없이 사용자 Template를 생성할 수 있었다.
그렇지만 아직 끝난 게 아니다.
일단 템플릿 형태이기 때문에 wails build 해서 바로 실행할 수 있는 구조가 아니다 . wails 의 -t 옵션을 통해서 프로젝트를 생성해 줘야 정상적인 값이 설정된 프로젝트가 생성되기 때문이다.
그리고 wails로 template를 생성하면 기본적으로 npm을 사용하는 구조로 생성된다.
그래서 wails.tmpl.json 파일을 열어서 npm 부분을 수정해주자.

다른 템플릿들을 보면

다음과 같은 옵션들이 있는데 추가해주자 : 추가하지 않으니 실행이 안된다.
두 번째 template.json 파일 내용을 수정하도록 한다.

내용을 보고 자신에게 맞는 구성으로 수정해서 등록하도록 한다.
READMD.md 파일과 NEXTSTEPS.md 같은 파일들을 자신에 맞게 수정 후 저장한다.
자 일단 github에 올려보자. open 할 template이기 때문에 Repository 등록할 때 public으로 등록해야 한다.
git을 잘 사용하시는 사람은 git 명령어로 빠르게 처리해도 좋고 좀 미숙한 사람들은 VSCode에 있는 기능을 이용해 자신의 Repository에 등록하면 된다.

Initialize Repository 버튼을 클릭하면 현재 Project에 git init 가 실행되어 git 적용 환경이 된다.

상단 Message 부분에 "Initialize Template" 를 입력하고 Commit 버튼의 오른쪽 화살표를 클릭해 Commit & Sync 항목을 클릭한다.

3개 파일이 저장이 안 되었다고 저장 후 Commit을 진행한다고 한다. 각자 상황에 따라 메시지가 다를 테니 적절히 대처한다.

public repository를 선택한다.

저장소가 없던 게 생겼다. 그렇지만 클릭해 보면 정상적으로 소스가 upload가 안되었을 것이다.
다시 한번 Message 부분에 "initialize template" 등록 후 commit & Sync 버튼을 클릭해보자


여차저차 해서 정상적으로 개인 github에 등록이 되었다.
github에 관한 내용은 음.. VSCode로던지 직접 git 명령어로 등록하던지 별도로 학습해서 적용해보도록 하자. VSCode로 적용하는 게 생각보다 쉬우니 적용해보자.
이제 Template가 github에 등록이 되었으니 wails 의 -t 옵션으로 정상적으로 프로젝트를 생성할 수 있는지 확인해 본다.
공식적인 template가 아니므로 github 저장소 주소를 가져와서 프로젝트를 생성해야 한다.

주소를 복사해둔다.

wails init -n graduateapp -t https://github.com/dofstar/wails-vite-sveltekit-ts-tailwind-template.git

프로젝트가 정상적으로 생성되었다. 파일명도 tmpl 명칭이 빠졌고 설정값들도 정상적으로 적용되어 있다.
이제 구동이 되는지 확인해보자.
VSCode에서 Ctrl + ` 를 이용하면 TERMINAL을 사용해 CMD 를 사용하는 것과 같은 기능을 사용할 수 있다.

wails build

실행하면 wails build 부터 frontend 부분 빌드 및 번들링까지 해서 exe파일을 생성해준다.
그렇지만 지금은 exe파일을 실행하는 게 목적이 아니라 build를 통해 build, frontend/dist, frontend/node_modules 등등의 생성 폴더/파일이 필요해서이다. dist 폴더와 내부 파일들이 없으면 wails가 정상적으로 구동이 안된다. 이유는 main.go 에 설정되어있는 assets 부분 때문인데 추후 내용을 설명하기로 하겠다.
일단 build가 오류 없이 정상적으로 진행되어 종료되었다.
그럼 TERMINAL 창에 다음 명령어를 실행해보자.

wails dev

필요한 부분 빌드가 다시 진행되고 wails 프로그램이 실행되면서 sveltekit 내용이 wails에서 구동되면 완료이다!!!
빌드 후 실행이 안된다..
뭐가 문젠가..??
늦은 밤이라 내일 다시 확인해보기로 하겠다. 잘되는 것 같아 기분 좋았는데 갑자기 급우울이 오네.
=========================================================
문제점을 찾았다. wails.json 파일에

  "frontend:dev:watcher": "pnpm dev",
  "frontend:dev:serverUrl": "auto",

두 가지 항목을 추가해주자.
wails dev 실행하면 정상적으로 실행되는 걸 볼 수 있을 것이다.
기능들을 많이 넣다 보니 소스가 너무 복잡하다.
역시나 우려했던 대로 오픈소스 진영 프로젝트는 설정 지옥이 되는 게 어쩔 수가 없다.
설정을 한 곳으로 모으는 무언가가 있었으면 좋겠는데 좀 아쉽다.
마지막으로 tailwind를 사용하기 위한 설정은 적용되어 있는데 어떻게 적용해서 사용하는지 확인이 되지 않았다.
app.css 파일 추가 및 설정
layout.svelte 파일에 import 설정 추가
page.svelet 파일에 html 표현하기

3가지 적용에 대한 설명이 누락되었는데 너무 늦어서 일단 자야겠다.
사실 여기서 Template 만드는 방법은 종료를 해야겠다.
일단 시간이 없어서 개발을 우선순위로 둬야 하기 때문이다. 불필요한 파일 삭제는 마무리되었지만 설명 파일들 update도 해야 하고 잔잔하게 소스들 수정을 해야 완전히 끝나긴 하겠지만 지속적으로 조금씩 업데이트를 해나가는 방법으로 진행해야겠다.
자 그럼 이제부터 본격적으로 Graduate App을 만들어보도록 하자.
https://devguru.tistory.com/27?category=588709


[corepack 에 대한 설명]
https://luvstudy.tistory.com/188

corepack, pnpm, vite 사용해보기

corepack 소개 기본 개념 corepack은 node v16.9.0, v14.19.0부터 기본 포함된 실험적 기능으로 yarn, pnpm 같은 package manager를 프로젝트별로 지정하여 사용할 수 있게 한다. (yarn 개발자가 만들었다고 함.)..

luvstudy.tistory.com

728x90
728x90
반응형

github Repository를 만들고 회사에서 테스트겸 템플릿 다운을 받으려고 했더니 SSL 문제 떄문에 프로젝트 생성이 안되는 문제가 확인되었다. 보안적으로 많은 부분이 막혀있는 곳이라 좀 문제가 많은데 wails init 를 통해 템플릿 형태로 프로젝트 생성하는건 허용이되고 있다. 이게 어떤 이유로 되는지는 잘 모르겠다. 뭐 그부분까지 확인하려면 많은부분들을 확인해보고 알아봐야 하는데 템플릿을 만드는 주제와는 무관하므로 스킵하도록 하겠다. 그래서 왜 -t 옵션으로 프로젝트 생성을 못하는지 확인을 해보니 다음 설정파일이 누락되어 있어서 안되고 있는걸 확인했다.

template.json을 추가해서 내용을 등록했다.

{
    "name": "Wails + Vite + Sveltekit + Typescript + TailwindCSS template",
    "shortname": "wails-vite-sveltekit-ts-tailwind-template",
    "author": "dofstar(dofstar@gmail.com)",
    "description": "Wails + Vite + Sveltekit + Typescript + TailwindCSS template",
    "helpurl": "https://github.com/dofstar/wails-vite-sveltekit-ts-tailwind-template"
  }

파일을 추가 후 wails init 명령어로 프로젝트를 생성해보니 정상적으로 생성되었다.

이 template.json 설정파일의 내용은 추후에 어떤 용도로 사용될지 설명을 할텐데 일단 등록해두자.

자 템플릿 만들기 002 까지는 불필요한 파일들 싹 지우고 액기스 파일들만 남겨두고 순수 설정파일과 소스 파일들만 남겨뒀다.

Wails + Vite 설정만 되어있는 구조인데 이제 사용할 프레임워크들을 추가해보도록 하자.

frontend의 핵심 기술인 Sveltekit 과 Typescript 를 추가해보도록 하자.

frontend 폴더를 새롭게 교체하게 될텐데....

==============

헉.. wails 명령어에 template 기본을 생성해주는 기능이 있다.

그렇다면 제공된 기능을 최대한 사용하는 구조로 템플릿을 만들어봐야지!!

-- 끝

728x90
728x90
반응형

01. Wails 기본 프로젝트 생성


다른 모듈들이 추가되지 않은 순수 Wails 프로젝트를 생성하자.

wails init -n wails-vite-sveltekit-ts-tailwind-template

cd wails-*

git init

(tip) cd 명령어에서 아스트링크(*)를 사용하게되면 뒤의 단어들을 생략할 수 있다.
Project Templete 를 보면 vanilla 라고 되어 있는데 흔히들 바닐라JS 라고 하면 Javascript 기본을 바닐라JS라고 한다.
git init는 git이 설치되어 있다면 적용할 수 있다. 

현재 기준으로 wails 프로젝트를 생성하게되면 다음과 같은 폴더 구조를 가지게 된다.

폴더와 config 파일들을 자세하게 파보도록 하자.

최상위 폴더에는 다음 파일들이 있다.

.gitignore : git에서 소스관리를 하지 않을(ignore 할) 필터링 내용이 등록되어 있다.
wails.json : wails 에서 관리되는 설정
README.md : 프로젝트 설명 파일
go.mod : go 에서 사용할 dependency 정보 설정
go.sum : go 에서 사용하는 dependency 별 체크섬을 기록해두고 변조 여부를 검사하는데 사용
main.go : wails 실행 시 최초로 실행되는 main 함수가 포함되어 있는 source
app.go : main에서 호출 해서 사용할 사용자 정의 함수들이 포함되어 있는 source

기본적으로 Root에는 다음과 같이 source가 세팅된다.

기본으로 설정된 프로젝트에서 각종 config 파일들을 변경해줘야 하는데 먼저 wails.json 파일을 수정하도록 하자.

초기 설정은 npm을 사용하게 되어 있다. 하지만 성능적인 부분이나 디스크 공간을 효율적으로 사용하는 pnpm을 사용하도록 한다.

초기설정

{
  "name": "wails-vite-sveltekit-ts-tailwind-template",
  "outputfilename": "wails-vite-sveltekit-ts-tailwind-template",
  "frontend:install": "pnpm install",
  "frontend:build": "pnpm build",
  "frontend:dev:watcher": "pnpm dev",
  "frontend:dev:serverUrl": "auto",
  "author": {
    "name": "noname",
    "email": "noname@gmail.com"
  }
}

go.mod 파일을 열어보자

mod 파일의 상단 부분에 go version을 1.19 버전으로 수정하고 wails 버전을 가장 최근에 update된 v2.1.0 버전으로 수정하자.

go 1.19

require github.com/wailsapp/wails/v2 v2.1.0

그런데 wails 버전을 v2.1.0으로 수정하더라도 Wails CLI 버전이 자동으로 변경되지 않는다.

wails update

실행해서 Wails CLI 버전을 update 해준다.

이미 업데이트 된 상태에서 실행된거라 내용이 조금 다를 수 있다

이미 업데이트 된 상태에서 실행한거라 내용이 좀 다를 수 있지만 Latest Release 가 v2.1.0 버전이면 정상이니 넘어가도록 하자.

wails update 하게되면 require 부분의 버전들도 자동적으로 변경되는지 확인을 안해봤는데 크게 중요한거 아니니 궁금해서 미칠것 같다면 변경전 내용과 변경후 버전을 캡쳐해서 비교해봐도 좋다.

자.. 이렇게 root 부분의 수정할 파일들을 모두 살펴보았다.

다음은 wails의 frontend 부분 소스가 담겨있는 frontend 폴더를 살펴보자.

우선 가장 기본이 되는 설정이 있는 package.json 파일을 살펴보자

가장 기본적인 Wails 프로젝트를 생성했기 때문에 dependencies 에 설정된게 거의 없다.

Vite 가 기본적으로 설정되어 있다.

  • 빠른 번들링
  • HMR (Hot Module Replacement) 기능

https://vitejs-kr.github.io/guide/

 

Vite

Vite, 차세대 프런트엔드 개발 툴

vitejs-kr.github.io

이 템플릿은 가장 최신 버전으로만 설정될 것이므로 Vite 버전을 변경해주자.

VS Code 에서 devDependencies 에 등록되어 있는 참조모듈의 버전을 변경하는 방법은 다음과 같다.

이미 버전을 확실히 알고 있다면 직접 입력해도 된다. 그렇지만 최신 버전이 정확히 모를 경우

"Vite" : "^2.9.9"  에서 ": 부터 라인 끝까지 삭제 한후 ":"을 입력하고 Ctrl + Space를 누른다. 그럼 가장 최신버전을 표시해준다.

최신버전 로딩중
최신버전 선택

 

상단에 보면 Version이 있는데 이 버전은 개발할 프로젝트의 빌드 버전이다. 사용자가 버전업 할 사용자 버전을 등록하면 된다. 뭐 귀찮다면 변경하지 않아도 좋은데 가능하면 기능 업데이트때 마다 의미있는 버전을 적어주는게 좋다.

다시 frontend 폴더를 확인해보자

dist 폴더와 wailsjs 가 보일것이다.

이 폴더는 root 폴더에서 wails build 명령으로 새롭게 생성되므로 삭제 해도 무방하다.

최종적으로 설정이 마무리 될 시점이나 중간중간 wails build를 실행할 것이므로 일단 삭제하도록 하자.

index.html 파일과 src 폴더의 파일은 VanillaJS 기준 Source 파일들인데 typescript 용 Source는 어떻게 구성되는지 정확히 모르겠다. 일단 구동에 필요한 Source이므로 놔두도록 하자.

728x90
728x90
반응형

Rust - Tauri를 잠시 보류하고 Golang 기반의 Wails를 선택하고나니 좀 길이 보이기 시작했다.

Tauri가 막 엄청나게 어렵고 복잡하기보다는 시간적인 압박감때문에 계속 진도가 안나갔던것 같은데 심리적인 안정감 떄문인지 훨씬 진행속도가 빠르다는걸 느끼고 있다.

일단 거두절미하고...

Wails와 어떤기술을 사용 해야할지 검색을 좀 해보니 다음 기술들이 조합이 되어야 할 것 같았다.

Wails + Vite + Sveltekit + Typescript + Tailwind 조합이 딱 적당할 것 같았다.

각 기술들의 장단점들인 인터넷에 널려있으니 검색해도록 하자. 혹시 댓글로 요청이 많이 오면 별도로 정리하는 글을 적어보도록 하겠다.

Wails 개발홈페이지에서 제공하는 템플릿 기반으로 프로젝트를 생성하려다 보니 문제가 좀 있었다.

https://wails.io/docs/community/templates

 

Templates | Wails

This page serves as a list for community supported templates. Please submit a PR (click Edit this page at the bottom)

wails.io

원하는 기술에 딱 부합되는 템플릿이 없었다. 

wails-vite-svelte-tailwind-template 가 제일 적합한것 같았는데 typescript 가 빠져있었고 sveltekit이 적용이 안되었다. 게다가 관리를 안해서 그런지 프로젝트를 생성해서 구동을 해보면 정상적으로 실행이 안되고 각 config 들을 손을 좀 봐야 정상 작동을 하는 수준이있다.

그래서 해당 template를 fork 받아서 수정해서 쓰려고 했는데 svelte와 sveltekit 설정이 조금 상이해서 약간의 수정으로 처리하기가 좀 어려운감이 들었다. 물론 웹쪽에 아주 전문가 분들이라면 뚝딱뚝딱 수정해서 사용하기는 하겠지만....

그래서 진행하는 프로젝트는 wails-vite-svelte-tailwind-template를 수정해서 진행하기로 하고 template를 새롭게 구성해보겠다고 마음먹었다. template 만드는건 처음 해보는 시도이기도 하고 웹쪽의 각 기술들이 어떤식으로 조합해서 구성해야 하는지 기본부터 한번 해봐야 겠다는 생각도 들어서였다.

그래서 만드는 과정을 블로그에 기록하기로 하고 추후 다른 템플릿 만들때 참고 자료로 사용하면 좋을것 같아서 짬짬이 시간내서 진행하기로 한다. 

일단 https://github.com/dofstar/wails-vite-sveltekit-ts-tailwind-template 에 등록해서 작업해보도록 하겠다.

(지금 당장 생성된건 아니니 조금만 기다려달라..)

기술 조합은 다음과 같다.

Wails : 2.1.0
Vite : 3.18
SvelteKit : 1.0.0 (RC)
Typescript : 4.8.4
Tailwind : 3.1.8

 

 

728x90
728x90
반응형
728x90
728x90
반응형

https://www.codingworldnews.com/news/articleView.html?idxno=12914 

 

아파치, 웹 서버용 웹어셈블리 모듈 출시 - 코딩월드뉴스

VM웨어랩스(VMware Labs)가 웹어셈블리(WebAssembly) 바이너리를 실행하는 아파치의 웹 서버용 확장 모듈을 새로 출시하였다. mod_wasm 확장 모듈은 웹어셈블리로 컴파일된 애플리케이션에 대하여 아파치

www.codingworldnews.com

 

Rust를 학습하면서 자연스레 WASM 쪽으로 관심이 가게되었다. 

아직 초창기여서 이런저런 문제점들이 있기는한데 계속 성장하는 모습들이 앞으로의 세대교체를 짐작하게끔 한다. 하지만 꽤 많은 시간이 걸릴것이다.이미 주류가 되어버린 Javascript가 너무 탄탄한데 언젠간 Javascript가 가지고 있는 구조적인 문제나 성능문제가 대두되면서 웹브라우저가 WASM에 더 비중을 실어줄것이고 기능 확대를 점진적으로 진행할 것이다. 하지만 진입점이나 학습곡선이 Javascript보다는 높은편이라 단기간에 기대할 수 있지는 않을꺼라 생각한다.

 

mod_wasm은 두 개의 라이브러리로 구성이 되어 있다

1. mod_wasm.so로 아파치 C API 와 러스트 라이브러리 사이에 인터페이스를 제공하여 웹어셈블리 런타임을 관리할 수 있다. 즉 아파치 구성 옵션 및 러스트 라이브러리와의 연결을 담당한다.

2. libwasm_runtime.so 라이브러리는 아파치의 HTTP 요청을 받아 웹어셈블리 모듈을 구성하고 실행한다. 응답을 파싱한 이후 mod_wasm.so에 다시 관리 권한을 넘겨준다.

웹어셈블리는 바이너리로 컴파일되어서 스택 기반 가상 머신으로 웹 애플리케이션이 높은 성능을 발휘할 수 있도록 도와준다. 한번 적용해보고 싶긴하다. 조만간 성능테스트 결과 같은게 나오면 소개해보겠다.

728x90
728x90
반응형

메타 퀘스트 Pro 에약 주문이 시작되었다.

https://www.meta.com/kr/quest/quest-pro/?intern_source=blog&intern_content=meta-quest-pro-price-release-date 

 

Meta Quest Pro: Meta 최고의 최신 VR 헤드셋 | Meta 스토어

 

www.meta.com

 

가격 : 2,190,000 원 (KRW)

1,499.99 달러면 환율 1,460원 기준으로 제품가격이 책정된것 같은데.. 이거 환율 떨어지면 사전 구매한 사람들한테 환불해줄라나!!!

환율 내리면 가격변동이 어떻게 될지 지켜봐야겠다. 써글놈들..

드럽게 비싸게 나왔네. 보급형이었던 오큘러스 퀘스트2 에 비해 고사양의 스펙으로 신규라인업을 했다는데 아마 투트랙으로 계속 제품들이 만들어질것 같다.

그렇지만 애플이 내놓을 제품 가격에 비하면 (예상가격: ) 양반이겠지 아마...

그나저나 오큘러스퀘스트2 로 2년을 넘게 잘 가지고 놀았다.

주요 사용 용도는 게임과 영상 그리고 비대면 업무나 교육에 어떻게 사용될수 있을까를 염두에 두고 사용했다.

https://youtu.be/fv4GWoCB4Zo

 

이번에 새로 나오는 메타퀘스트 프로의 장점은 다음과 같다.

뛰어난 편안함

세계 최상급의 균형 잡힌 인체 공학이 세련된 디자인을 만나 더욱 편안한 헤드셋이 탄생했습니다.

 

혁신적인 혼합 현실

풀 컬러 혼합 현실과 Quest 2 대비 4배 높은 해상도로 실제 세상에서 존재감을 유지하면서 가상 세상에서 일하고, 창작하고, 협업할 수 있습니다.

자연스러운 표정

실시간 표정 추적을 통해 얼굴 표정을 모방하는 아바타를 만들 수 있습니다. 미소를 짓든, 눈썹을 치켜 올리든, 윙크를 하든 모두 가능하죠.

META QUEST TOUCH PRO 컨트롤러

컨트롤러당 카메라 3개와 Snapdragon 662 모바일 프로세서로 가상 공간에서 360도 움직임이 구현됩니다. TruTouch 햅틱 피드백과 정밀한 손가락 간격 조정 덕분에 보다 직관적으로 VR을 경험할 수 있습니다.

차세대 광학기기

비주얼 선명도가 향상되었다는 것을 바로 확인하실 수 있습니다. 광학 모듈 내부의 접이식 조명으로 작동되는 특허받은 혁신적인 팬케이크 렌즈와 광학 테크놀로지를 사용해 Quest 2 대비 40%이상 얇은 광학 스택을 제작했습니다. 고급 VR LCD 디스플레이 기술로 37% 많은 인치당 픽셀이 구현됩니다. 1.3배 더 큰 색 영역이 보다 생생한 색감으로 더욱 화려한 VR 경험을 선사합니다.

 

고성능 하드웨어

고급 VR/MR 센서 10개, 입체 사운드, 256GB 스토리지, 12GB RAM, 50% 향상된 성능을 제공하는 Snapdragon XR2+ 프로세서 등 강력한 하드웨어가 탑재되어 있습니다.

 

이전 버전과의 호환성

계속해서 Meta Quest 2 앱 카탈로그에 액세스하여 좋아하는 게임, 엔터테인먼트 앱 등을 모두 즐길 수 있으니 안심하세요.

손쉬운 멀티태스킹

크기를 조정할 수 있는 여러 화면을 열거나 새로운 아이디어를 개선하거나 피드를 스트리밍하거나 친구들과 메시지를 주고받을 수 있습니다. 이 새로운 능력 덕분에 그 어느 때보다 더 쉽게 멀티태스킹을 할 수 있죠.

 

충전 도크 제공

고속 전원 어댑터가 포함된 컴패니언 충전 도크를 사용하면 헤드셋과 컨트롤러를 충전된 상태로 유지해 번뜩이는 아이디어가 떠오를 때 바로 아이디어를 실현해 볼 수 있습니다.

 

유연한 몰입감 수준

55~75mm의 IPD 범위와 지속적인 IPD 조정이 또렷한 시각적 선명도를 선사하고 눈의 피로를 줄여줍니다. 주변부가 완전히 탁 트인 시야부터 부분적으로 가려진 시야(포함됨) 또는 완전한 몰입감을 선사하는 시야(액세서리)까지 VR 몰입감을 자신에게 맞는 방식으로 다양하게 조정할 수 있습니다.
 
 

https://youtu.be/YmEaMulB-Bk

 

오큘러스 DK2 부터 관심을 가지고 구매하고 사용해본 사람으로서 이게 2,000,000 만원의 가치가 있을까 좀 의문이 들긴하는데 주변 사람들에게 물어보니 잠시 보류라고 한다.

그만큼 가격대가 높다는 얘기인데 아직 써보기전이라 어떤 기술들이 접목이 되어있는지 궁금하긴 하다.
예전환율로 (1130원 정도?) 계산하면 1,695,000원 정도인데 지금 사기에는 너무 아깝다. 그리고 SKT에서 또 정발하게 되면 AS 문제도 있기 때문에 난 지금 안사면 죽을것 같애!!! 라는 사람 빼곤 오큘러스퀘스트2 홀딩하고 있지 않을까나..

가장 개선되었으면 하는 부분은 

무게 밸런스
배터리 시간
화소
시야각
고글 흘러내림
내부 압력 자동 배출
렌즈 자동 거리조절

이정도인데 어떤게 해결이 되었을라나.

==

글쓰고 검색을 좀 해봤더니 개웃기네..

무게가 220g 이나 더 늘어났네 ㅋㅋㅋㅋ

 

https://www.clien.net/service/board/lecture/15928838

 

오큘러스 퀘스트 2, 베터리 달아서 안면압박 해소하기 : 클리앙

오큘러스 퀘스트 2의 무게가 퀘스트 무게 571g 보다 10% 감소한 503g이 되긴 하였지만, 이게 VR의 특성상 착용을 하면 머리 기준 앞쪽에 쏠림이 100%가 되기 때문에, 안면 압박 특히 한국 사람들에

www.clien.net

앞쏠림때문에 안면 광대부분압박때문에 심하면 치열이 뒤틀리는 경험을 몇번이나 했다.

그래서 많은 사람들이 고통받다가 무게추 + 사용시간 증가를 위해 저딴 튜닝을 하고 있는중이다.

오큘러스퀘스트1 : 577g
오큘러스퀘스트2 : 503g + 무게추 배터리 363g 
메타퀘스트 Pro : 722g

메타퀘스트Pro도 오큘2처럼 무게쏠림 때문에 앞면 광대에 압박된다면 또 무게추 배터리 달아야 하는데 그럼 1kg 넘는다.

머리에 무슨 왕관 같은거 쓰고 있는 느낌이 아닐까나...

좀 문제다.. 일단 해상도랑 컨트롤러의 개선 때문에 막 구매가 마렵긴 하지만 좀 지켜봐야겠다.

환율 1100원 될때까지 오큘2로 존버탄다.

 

수고~

728x90

+ Recent posts