Developers 공간 [Basic](26)
-
[Flutter] 프로젝트 시작하기
기존에는 안드로이드 앱은 코틀린(Kotlin), 자바(Java) 언어와 안드로이드 SDK*를 이용하여 개발하고, iOS의 경우 스위프트(Swift), Objective-C 언어와 iOS SDK를 이용하여 네이티브 앱을 개발해왔습니다. 이번엔 요즘 크로스 플랫폼 개발 프레임워크 및 SDK로 유행하는 Flutter에 대해서 설명하고자 합니다. ** 크로스 플랫폼(Cross-platform) : Windows, OSX, Linux, iOS, Android 등 다양한 플랫폼에서 사용할 수 있다는 것 Flutter는 Google에서 개발한 크로스 플랫폼 모바일 앱 개발 프레임워크이며, 모바일 앱 개발시 네이티브 앱과 하이브리드 앱이 크로스플랫폼에 대해 일일히 구현해야 하는 어려움을 개선하기 위해 만들어졌습니다. ..
2023.02.18 -
[Web] React와 Typescript 시작하기
Web 개발을 위해서 다양한 방법(vue, react, svelte, pure html)이 존재하지만, 필수적으로 html 파일에 들어가는 Javascript 파일들을 하나의 자바스크립트 파일로 만들어주는 모듈 번들링은 꼭 필요합니다. ** 모듈 번들링(Module Bundling) : web 개발에 필요한 html/css/js 등을 하나의 혹은 여러가의 파일로 병합&압축 하는 것으로, Webpack, Rollup, 그리고 Pacel등이 있습니다. ** Parcel(파셀) : Build tool로, Webpack의 설정은 까다롭고 시간적으로 비용이 많이 들기도 하는데 Parcel은 설정이 필요없는 zero-configuration 이기 때문에, 빌드를 위해 번들러를 학습하는 시간을 많이 줄일 수 있는 매..
2023.01.06 -
[Nvidia] OpenCL 기초 문법 및 병렬처리 관련 정리
딥러닝 등 다양한 Computationally Expensive한 어플리케이션의 등장으로 병렬처리에 대한 요구가 많이 늘어났습니다. 우리는 자동화된 병렬화를 지원하는 다양한 프레임워크 및 라이브러리(deepspeed, pytorch DP & DDP, AWS SMDDP horovod, tensorRT 등)을 통해 병렬처리를 하고 있지만, 근본적으로 병렬화에 필요한 특징이나 어떤 것을 유의 깊게 보아야 할지에 대한 이해를 바탕으로 사용한다면 더욱 최적화된 환경에서 작업이 가능할 것 같기도 합니다. 또한 때로는 Customized된 병렬처리를 위해 직접 내가 만든 로직을 병렬처리를 통해 가속화하고 싶은 경우도 있습니다. 보통 이럴 때 Nvidia에서 제공하는 Toolkit인 CUDA를 활용하는 경우가 대부분이..
2022.12.31 -
[PyTorch] DDP(Distributed Data Parallel) 셋팅하기
이번엔 Distributed 병렬 처리를 pytorch를 활용해 구현하는 방법에 대해 다뤄보고자 합니다.먼저 용어에 대해서 확실히 정리하고 나가자면 아래와 같습니다.Concurrent Computing (동시) : single 코어 혹은 multi 코어 에서 "동시에 처리되는 것으로 보이는 것"으로, hardware 구조로 인한 것이라기보다 software 구조로 인한 논리적 연산입니다. Parallel보다는 조금더 general한 개념입니다.Parallel Computing (병렬) : multi 코어에서 "동시에 처리되는 것"으로 hardware 구조에 의한 물리적 연산입니다.Distributed Computing (분산) : Link로 연결된 여러 개의 노드 혹은 프로세서에서 message pass..
2022.12.27 -
[AWS] SMDDP(Sagemaker's DDP) 기본 환경 셋팅
클라우드 컴퓨팅이란 인터넷으로 가상화된 IT 리소스(Server, Platform, Software)를 서비스로 제공하는 것을 의미합니다. AWS와 Azure가 대중화되면서 Cloud를 Infra-structure의 가상화 개념으로만 이해하기도 하지만 Infra 뿐 아니라 platform과 Software까지 포함하는 온라인의 모든 영역을 다루는 광범위한 개념이 클라우드 컴퓨팅입니다. 이를 제공하는 다양한 클라우드 서비스는 아래와 같이 세가지로 나뉩니다. 필자는 "IPS"로 외우게 되었습니다. Infrastructure as a Service(IaaS) : 물리적으로 서버,네트워크,OS,스토리지를 가상화하여 제공 ex) AWS(Amazon Web Service), Microsoft Azure, Googl..
2022.12.27 -
[Python] Python 및 Custom 패키지 관리하기
python 프로젝트를 구성하면서 pip으로 패키지를 관리하고, 때로는 패키지를 직접 만들어 사용하기도 합니다. 이런 다양한 방법들을 정리하고자 합니다. 1. Python 관리하기 a. python과 pip 설치하기 b. 패키지 관리하기 2. 패키지 import 경로 순서 a. 1단계 sys.modules b. 2단계 built-in modules c. 3단계 sys.path (==$PYTHONPATH) 3. custom 패키지 관리하기 a. custom 패키지 구성하기 기초 b. Extension 구성하기 글효과 분류1 : 코드 글효과 분류2 : 폴더/파일 글효과 분류3 : 용어설명 글효과 분류4 : 글 내 참조 1. Python 관리하기 기본적으로 python과 pip을 다루는 것을 먼저 정리하겠습니..
2022.12.21