Languages
[Rust] Rust란? Rust 란? 서버, 클라이언트 프로그램을 만들기 위한 프로그래밍 언어 ( with Mozilla ) 특징 & 필요성 1. Null Safety ( 에러 초기 감지 ) 모든 변수는 초기값을 가져야만 한다 ( 없으면 컴파일 에러! ) - C 언 defineall.tistory.com 목적 Rust 가 다른 언어와 다른 점이 무엇인지 살펴보고, 어떤 장단점을 가졌는지 이해하여, 필요한 분야를 파악하고, 알맞은 곳에 사용할 수 있도록 한다. Rust의 변수 기본적으로 변수는, 아직 정해지지 않은 수를 의미한다. Rust에서도, 변수가 존재한다. 하지만 Rust는, "상수화된 변수" 라는 새로운 형식을 "기본"으로 사용하고, 기존의 변수는 "보조" 로 사용한다. fn main() { /..
Zig 란? 숨겨진 제어 숨겨진 메모리 할당 숨겨진 전처리기 숨겨진 매크로 이 모든 숨겨진 것들을 없앤 프로그래밍 언어! 필요성 작고 간단하다. var a = b + c.d; foo(); bar(); # C++,D,Rust 에는 "오버로딩"이 존재, + 연산자가 함수 호출 가능 // Zig 는 불가능 # C++,D,Go 에는 throw/catch가 존재, foo()에서 예외처리(throw)를 하고, bar() 호출 방지 // Zig는 호출 Zig에서, "보이는게 전부이다." Zig는 모든 제어 흐름이 "언어 키워드, 함수 호출" 로만 관리된다 - 가독성 좋음(이해하기 쉬움), 유지보수 좋음 그럼 에러는 어떻게 관리함?? 여러 빌드 모드 사용 에러를 어디까지 볼것인지, 선택가능! - Zig는 모든 에러를,..
Elixir 란? erlang(얼랭) 이라는 언어에, 평소에 자주쓰는 좋은기능들을 추가한 프로그래밍 언어 필요성 erlang의 장점을 가져온 결과, 어마무시하게 많은 일을 동시에 처리할 수 있다 ( 동시성 ) 기존의 erlang은, 가독성이 좋지 않아 배우기가 쉽지 않은데 반해 ( 러닝커브 높음 ) elixir는 가독성이 좋고, 간단한 구조를 추구하므로, ( 러닝커브 낮아짐! ) 한 프로그램의 오류가, 다른 프로그램에 미치는 일이 매우 적다 ( 의존성 문제 적음 ) 의존성이 적으므로 (위의 내용), 확장성이 뛰어나다! 사용처 프론트엔드부터, 백엔드까지, 전부 Elixer 하나 만으로 구현할 수 있다!!! ( 최근 우리나라 한국축산데이터에서 올린 유튜브영상이 있다. ) Elixir의 특별한 점 = 연산자의..
three.js 란? 웹 페이지에서, 3d 모델을 렌더링할 수 있게 해주는 javascript 라이브러리 Three.js – JavaScript 3D Library threejs.org Solid App www.logosevens.com 필요성 3D공간 인테리어, 3D제품 소개 등등 눈에 확띄고, 웹 사이트에서 더 다양한 경험을 할 수 있도록 해줌 ( 진정한 반응형이 되어가는..! ) 아이디어 3D 작업 프로그램의 용량이 높은 것으로 알고 있는데, 웹 사이트에서 3D작업을 진행한다면 더 효율적이지 않을까? 속도가 중요할 것 같다. 일반 사용자들에게 3D작업을 쉽게 해주는 툴? 실시간 동시 3D 작업??? 게임 호텔 내부 공간 확인 가능한 사이트..! 제품 맞춤 생산 사용자가 사이트에서 직접 제품을 바꿔가..
SWC란? 자바스크립트 컴파일러 ( js -> 기계어 ) Babel - javascript기반 (node.js) SWC - Rust기반 필요성 빠르다! ( 갓갓 Rust )
👉 Tailwind css란? HTML 안에서, CSS 스타일을 만들 수 있게 해주는 CSS 프레임워크 필요성 어떤 부분에, 어떤 스타일을 적용하는지 한눈에 볼 수 있게 해준다! PostCSS 플러그인으로 설치 npm install -D tailwindcss postcss autoprefixer # postcss와 tailwindcss, autoprefixer 플러그인을 설치 PostCSS란? [CSS/Node.js] PostCSS란? 사용법, 플러그인 추천 PostCSS란? CSS 후처리기이며, CSS 작성을 더 편하게 만들어주는 javascript 도구들(Plugins)이다. javascript를 이용해서, CSS를 변경한다. 후처리기란? [CSS] CSS 전,후 처리기란? / 비교 CSS 전,후 처..
리액티브 프로그래밍이란? 모든 데이터가 수신될때까지 기다리지 않고, 스트림 데이터에서 원하는 조건을 감지해 그에 맞는 처리를 해주는 프로그래밍 Reactive Streams 란? Java에서 논블로킹(비동기) 방식으로, Stream데이터를 다룰 수 있도록 해주는 기술 (리액티브 프로그래밍) ReactiveStreams 핵심 요소 4가지 Subscriber(구독자) - 퍼블리셔를 구독(감시) Publisher(퍼블리셔) - 구독자에게 받은 Request 처리 Subscription - 퍼블리셔와, 구독자가 연결된 관계 Processor - 현재 처리중인 작업 Reactor Spring WebFlux에서 지원되는, 기본 ReativeStreams Class( 구현체 ) Flux - rx연산자가 있는 Publ..
Stomp 간단한 텍스트 메시지 통신 규칙 Simple Text Oriented Messaging Protocol 기존 Spring에서 관리 과정 WebSocketHandler ... 웹소켓통신을 하는 Client => 저장 => 관리 => 다른 Client에게 전달 전부 구현해야함... Stomp 사용과정 채팅방 생성 => Topic 생성 채팅방 입장 => Topic 구독 ( 감시, subscribtion) Topic에 새로운 채팅 수신 => Topic을 구독하고 있는 모든 Client에게 메세지 전송
기본 개념 (함수포인터란?) 포인터 == 메모리 주소를 저장한 변수 함수포인터 == 함수의 메모리 주소를 저장한 변수 작동 아이디어 + 원리 Lookup 배열을 사용하면, 조건문을 획기적으로 줄일 수 있다. 이를 이용해, 배열 속에 함수 포인터(주소)를 넣는다면 조건문없이 조건에 맞는 함수를 출력하도록 할 수 있다! ( 개발이 편함 ) #include // 테스트를 위한 함수 void PrintFunc01(void){ printf("PrintFunc01\n"); } void PrintFunc02(void){ printf("PrintFunc02\n"); } void PrintFunc03(void){ printf("PrintFunc03\n"); } int main(void) { // 1. 함수 포인터 배열이..