검색을 해보다 보니내가 만들 컨셉에 더 맞는 조합이 보여서 추가적으로 브렌치를 따기로 했다.
혹시 돈을 많이 벌기 위해 만드는 거냐고 생각할 수 있겠지만 매매프로그램 만드는게 쉽지 않다. 단순히 포트폴리오 정도로 생각하는게 더 적당할 듯 하다. 혹시(?) 잘되면 뭐 대박!!
tauri, yew에 대한 자세한 설명은 별도 카테고리에 설명을 하기로 하고 일단 개발환경 설치 부터 필요기술들에 대해서 하나씩 작성해보기로 하겠다. yew (Webassembly : WASM) 기반의 비동기 프로그래밍을 하기 위한 프론트엔드 프레임워크이다. 아직 초창기 버전이라 커뮤니티도 형성이 되어있지 않고 부족한 부분이 많겠지만 만들려고 하는 컨셉에는 많은 기능의 UI 컨트롤들이 필요하지 않고 성능과 안정성이 더 우선이기 때문에 큰 문제는 없지 않을까 싶다.
기대하고 있던 Tauri 가 1.0 정식버전이 릴리즈 되었다. -> 1.1 버전으로 최근에 업그레이드 되었네.
Electron의 무거움에 배울까말까 고민하고 있던 터엿는데 Tauri가 출시되면서 학습할 동기를 만들어준것 같다.
그래서 학습용으로 뭘 만들까 고민을 하다가 코인 매매앱을 만들어 보기로 했다.
이름은 심플하게 GraduateApp-TAURI 이다. 코인으로 졸업하게 해주세요 젭알!!! ㅠ.ㅠ
농담이고 일단 많은 기술적인 난제가 있을것 같긴한데 하나하나 만들어가면서 방법을 찾아보도록 하겠다.
개발초기 몇년간은 웹쪽에 관심이 있다가 너무 급여가 팍팍한데다가 정적인 페이지 기술의 한계가 보여서 CS(C#, JAVA)계열로 넘어갔지만 웹에 대한 관심은 항상 있었다. 그래서 하나 배워서 다 같이 연동해서 써먹을 수 있는게 없을까 항상 고민을 했는데 최근에 찾은 언어가 Rust 이다. 시스템 프로그래밍, 웹, 모바일, 데스크탑 프로그래밍 모두 가능하도록 계속 진화하고 있는데 지켜보고 있으면 뿌듯해진다. 내 주력언어가 되기를 기원하며 조금씩 학습을 진행하고 있다.
하지만 Rust는 아직 비주류 언어라서 대한민국에서 취업을 위해 배우기에는 시간적 리스크가 있고 학습곡선도 높기때문에 일반적인 업체 취업용으로는 추천하지 않는다. 다만 긴 호흡을 가지고 꾸준히 배우고 싶다면 한 번 도전해도 좋지 않을까 싶다. 그리고 Svelte도 핫한 언어이긴 하지만 취업용으로는 아직 추천하지 않는다.
이 메뉴 카테고리는 Tauri Svelte Vite 를 가지고 개인적인 프로그래밍을 하면서 학습내용을 정리하고 공유하는 곳이기에 Rust에 대한 사설은 더 하지 않겠다. Rust는 별도 메뉴에서 다룰 예정이다.
동시성 : 한번에 두 가지 이상의 작업을 수행 > 멀티스레딩 : 다수의 실행 스레드를 사용하는 동시성의 한 형태 (동시성의 한 형태) > 병렬 처리 : 많은 작업을 여러 스레드에 나눠서 동시에 수행 (멀티스레딩의 한 형태) > 비동기 프로그래밍 : 불필요한 스레드의 사용을 피하려고 Future나 Callback을 사용 (동시성의 한 형태) > 리액티브 프로그래밍 : 애플리케이션의 이벤트에 대응하게 하는 선언형 프로그래밍 형식
책을 읽을 방향성과 내가 지금 이 책을 읽을 단계인가를 확인하는게 완독의 지름길이기 때문이다.
이 책은 최신 동시성 기법만을 다루고 있다. 따라서 기존의 동시성 기법에 대한 지식이 필요하다면 다른 서적이나 정보로 습득하자, 병렬, 비동기, 리액티브 프로그래밍 등 다양한 종류의 동시성을 다루지만, 다른 책과 온라인 자료에서 충분히 다루고 있는 전통적인 기법은 다루지 않는다.
이 책을 읽는 독자는 제네릭컬렉션, 열거자, LINQ 정도를 이해할 정도의 닷넷 경험자가 대상이다. 멀티스레딩 또는 비동기 프로그래밍에 대한 지식은 전혀 필요하지 않다.
동시성은 모든 애플리케이션에서 유용하다. 데스크탑, 모바일, 서버 애플리케이션에 상관없이 이제 동시성은 전반적인 요구 사항이다. 이 책의 내용을 활용한다면 더 빨리 반응하는 사용자 인터페이스, 규모 변경이 더 쉬운 서버를 만들 수 있다. 이미 동시성은 어디에나 존재하는 상황에 이르렀고, 이제 동시성 기법의 이해와 활용은 전문 개발자의 필수 지식이라고 할수 있다.
- 책의 서문 중에서
1장 : 병렬, 비동기, 리액티브, 데이터 흐름 의 동시성 소개
2-6장 : 1장에서 소개된 동시성을 하나하나 철저히 설명
7-14장 : 각각 동시성의 특정 측면을 다룸, 일반적인 동시성 문제의 해결책에 관한 참고 자료
언어라는게 각각의 컨셉에 따른 특징과 장점 단점들을 가지고 있기는 하지만 언어라는 자체의 큰 틀을 완전히 벗어날 수 없다. 그 큰 틀을 이해하면 언어 습득은 크게 문제가 되지 않는다. 남은건 얼마만큼 시간을 투자해 익숙해지느냐와 제공되어 있는 API의 이해도, Github에 수많은 사람들이 등록해놓은 기술/코딩 스킬들을 얼마만큼 빠르게 흡수할 수 있느냐에 달려있다고 봐도 무방하다.
그 부분중 Golang에 대해 시작해보겠다. 이미 Rust는 학습을 하고 있었는데 Rust보다 좀더 생산효율적이면서 퍼포먼스도 어느정도 보장되는 언어를 물색해보다 보니 Golang이 자연스레 눈에 들어오게 되었다. 그리고 지금 만들고 있는 거래소 정보 수집 분석 프로그램을 위해서 이기도하다.
Golang 의 장점은 이미 인터넷에 검색하면 손쉽게 확인이 가능하다.
간략히 링크 몇가지 올려보면 그 링크에서 정보들을 습득하길 바란다.
만들어진 바퀴를 다시 만들기는 시간이 없고. 나보다 훨씬 정성들여서 잘 작성된 자료들이므로 내가 다시 정성들여서 만들필요가 있을까 싶다.