728x90
Typescript에서 type과 interface의 특징과 차이점
Language/Typescript2024. 5. 7. 21:21Typescript에서 type과 interface의 특징과 차이점

타입스크립트(TypeScript)에서 타입을 정의할 때, 사용하는 두 가지 개념이 있습니다. type과 interface입니다. 이 두 구조는 타입스크립트에서 데이터의 형태를 정의하는 데 사용되지만, 그 사용법과 목적에서 약간의 차이가 있습니다. type과 interface의 기본 사용법차이점을 살펴보기 전에 두 개념의 사용법에 대해 먼저 살펴봅시다. 타입(type)type은 interface보다 보다 유연하게 타입을 정의할 수 있습니다. 객체 형태뿐만 아니라, 유니온(Union), 인터섹션(Intersection), 튜플(Tuple) 등 다양한 타입의 조합을 만들어낼 수 있습니다.type Point = { x: number; y: number;};type ID = string | number;con..

flutter에서 auto_route로 라우팅을 간편하게 구현
FE/Flutter2024. 5. 7. 18:51flutter에서 auto_route로 라우팅을 간편하게 구현

auto_routeauto_route는 Flutter에서 route 내용의 코드를 자동으로 생성해주는 라이브러리입니다. auto_route는 라우트 관리를 단순화시켜주고, 코드의 반복을 줄여주기 때문에 유지 보수 측면에서 용이합니다. 의존성 추가필요한 의존성을 추가합니다.flutter pub add auto_routeflutter pub add --dev auto_route_generator build_runner auto_route_generator와 build_runner는 라우팅 관련 코드를 생성하기 위해 필요합니다. 구현screen 파일 생성화면에 띄울 HomeScreen와 FirstScreen 파일을 생성합니다.// home_screen.dartimport 'package:auto_route/a..

python과 pyupbit로 호가 주문 취소하기
IT2024. 5. 3. 20:50python과 pyupbit로 호가 주문 취소하기

pyupbit 라이브러리 설치pyupbit는 업비트 거래소의 API를 파이썬에서 쉽게 사용할 수 있도록 만든 라이브러리입니다. 본 글에서는 해당 라이브러리를 사용하여 주문을 취소하는 메서드를 구현하도록 하겠습니다. pyupbit 라이브러리를 설치합니다pip install pyupbit 기능 구현pyupbit에 Upbit 생성자에 access_key와 secret_key를 넘겨줘야 합니다. 키 값은 아래 글을 참고하여 생성할 수 있습니다. 업비트 Open API 신청하는 방법 가이드 (키 발급)업비트 Open API 키 발급 가상화폐 거래소 업비트(Upbit)의 Open API를 사용하기 위해서는 API 호출을 위한 키 값을 발급받아야 합니다. 본 글에서는 키 값을 발급 받는 방법에 대해 하나씩 소개합니다..

RPS를 활용하여 pubspec.yaml에서 scripts 정의하고 사용하기
FE/Flutter2024. 5. 3. 12:49RPS를 활용하여 pubspec.yaml에서 scripts 정의하고 사용하기

Run Pubspec Script (RPS)node 프로젝트에서는 package.json의 scripts를 사용해서 정의해둔 스크립트를 명령어 하나로 수행할 수 있지만, flutter에서는 기본적으로 제공해주고 있지 않습니다. RPS (Run Pubspec Script) 툴을 사용하면 동일한 기능을 사용할 수 있습니다. 툴 설치rps 라이브러리를 global scope로 설치합니다.dart pub global activate rps rps 명령어 사용을 위해, 환경변수를 추가합니다.vim ~/.zshenv# ~/.zshenv# flutterexport PATH="$PATH:$HOME/.pub-cache/bin" pubspec.yaml에 원하는 scripts를 추가합니다.scripts: run: flut..

Flutter에서 WidgetsFlutterBinding.ensureInitialized() 역할
FE/Flutter2024. 5. 3. 10:34Flutter에서 WidgetsFlutterBinding.ensureInitialized() 역할

Flutter 엔진 및 플러그인 초기화Flutter에서 WidgetsFlutterBinding.ensureInitialized() 메서드는 Flutter 앱이 실행되기 전에 앱의 루트 위젯 생성, 리소스 로딩, 플러그인 초기화 등의 필요한 초기화 작업을 수행합니다. 일반적으로 main() 함수나 애플리케이션의 진입점에서 호출하여 사용합니다. (진입점에서 호출해야 애플리케이션이 시작될 때, 모든 초기화가 완료된 후 앱을 수행할 수 있기 때문) 초기화하는 영역을 자세하게 살펴보면, Flutter 엔진 초기화Flutter 엔진은 그래픽 렌더링, 이벤트 처리, 상태 관리 등과 같은 핵심 기능을 담당합니다. WidgetsFlutterBinding.ensureInitialized()는 Flutter 엔진을 초기화하..

Media Stream 정의와 Streaming 기술 요소
IT2024. 5. 2. 21:18Media Stream 정의와 Streaming 기술 요소

Media Stream미디어 스트림(Media Stream)은 디지털 형태의 오디오, 비디오 또는 기타 멀티미디어 컨텐츠를 실시간으로 또는 온디맨드(On-Demand)로 전송하는 기술을 말합니다. 여기서 온디맨드는 사용자가 원하는 시간에 원하는 컨텐츠를 소비할 수 있는 서비스를 말합니다. 스트리밍(Streaming)은 컨텐츠를 다운로드 받지 않고, 미디어를 보거나 듣게 해줍니다. 즉, 컨텐츠를 연속적으로 수신하여 재생할 수 있게 해주는 데이터 흐름(flow)이라고 생각하면 됩니다. Streaming 주요 기술 요소컨텐츠 캡처 및 인코딩원본의 컨텐츠는 고해상도의 비디오 카메라와 마이크를 통해 만들어집니다. 이런 데이터는 비디오 포맷(H.264, H.256) 및 오디오 포맷(AAC, MP3) 형태로 인코딩 ..

React와 WebRTC를 활용하여 실시간 화상 채팅 구현하기
FE/React2024. 4. 28. 11:00React와 WebRTC를 활용하여 실시간 화상 채팅 구현하기

시그널링 서버(signaling server)실시간 화상채팅을 구현하기 전에 Signaling 서버에 대해 알아야 합니다. WebRTC에서 시그널링 서버(signaling server)는 매우 중요한 역할을 합니다. 이 서버는 WebRTC 연결을 구성하기 위해 필요한 메타데이터와 control 메시지를 주고받는 데 사용됩니다. 시그널링 서버는 peer-to-peer 간의 초기 설정, 네트워크 정보 교환, 세션 관리 등을 합니다. WebRTC 프로토콜 자체에서 제공해주는 기능은 아니기 때문에 시스템 구조 및 상황에 맞게 개발자가 시그널링 프로세스를 구현해야 합니다. (예를들어, 화상 채팅 앱을 만든다면, 인증 및 채팅 방을 관리하기 위한 프로세스가 필요합니다. 이런 프로세스를 직접 시그널링 서버에 구현해햐..

WebRTC 개념 및 STUN & TURN 서버 역할
FE/WEB2024. 4. 28. 10:26WebRTC 개념 및 STUN & TURN 서버 역할

WebRTC 개념WebRTC(Web Real-Time Communication)는 웹 브라우저와 모바일 어플리케이션을 통해 실시간으로 음성, 비디오, 데이터를 주고받을 수 있게 해주는 기술입니다. 이 기술은 플러그인이나 외부 소프트웨어 설치 없이도 동작하며, HTML5와 JavaScript API를 사용하여 구현됩니다. WebRTC를 사용하면 아래와 같은 기능을 만들 수 있습니다.화상 회의 시스템: Zoom, Google Meet과 같은 서비스와 같이, 실시간 화상 채팅이 가능한 시스템을 구현 가능실시간 게임: 멀티플레이어 게임에서 실시간 음성 대화 시스템 구현 가능파일 공유: 데이터 채널을 이용하여 브라우저 간 직접 파일을 공유할 수 있는 시스템 구현 가능 WebRTC 특징실시간 통신: WebRTC는 ..

MacOS에 React Native 환경 구축 및 프로젝트 생성 (Android & iOS)
FE/React Native2024. 4. 19. 18:25MacOS에 React Native 환경 구축 및 프로젝트 생성 (Android & iOS)

초기 환경 설정node 설치React Native는 React와 같이 Javascript으로 개발을 하기 때문에 node가 필요합니다. node 설치는 아래 링크를 참고하시면 됩니다. macos에 nodejs 설치하기 (쉽게 node 버전 변경하기)nodejs 설치 nodejs를 설치하는 방법은 brew를 사용한 방법이 있고, nodejs 공식사이트에서 직접 설치하는 방법이 있습니다. 본 글에서는 brew를 사용하여 설치하는 방법에 대해 소개합니다. brew로 설치bluemiv.tistory.com watchman 설치Watchman은 Facebook이 개발한 오픈 소스 툴입니다. 파일 시스템에서 변화를 감지하고 해당 변화에 반응하는 작업을 자동화할 수 있게 해주는 도구입니다. ..

Javascript의 var / let / const 의 스코프와 재할당 가능 여부
Language/Javascript2024. 3. 7. 00:57Javascript의 var / let / const 의 스코프와 재할당 가능 여부

자바스크립트(Javascript)에서 변수를 선언하는 키워드에는 var, let, const가 있습니다. 각각의 키워드는 모두 변수를 선언하는 것은 동일하지만, 스코프(scope), 호이스팅(hoisting), 재할당 가능 여부의 차이를 가지고 있습니다. 본 글에서는 이 세 가지 변수 선언을 위한 키워드의 차이점을 소개합니다. 스코프(Scope)스코프는 변수가 코드 내에서 접근 가능한 범위를 의미합니다. var, let, const는 각각 아래와 같은 스코프를 가집니다.var: 함수 레벨 스코프(function-level scope)let: 블록 레벨 스코프(block-level scope)const: 블록 레벨 스코프(block-level scope)블록 레벨 스코프(block-level scope)를..

728x90
image