2. 자료구조[ 자료구조와 알고리즘 ]자료구조는 데이터를 원하는 규칙 또는 목적에 맞게 저장하기 위한 구조이고, 알고리즘이란 자료구조에 쌓인 데이터를 활용해 어떠한 문제를 해결하기 위한 여러 동작들의 모임입니다. [ 스택, 큐, 트리, 힙 구조 설명 ]스택: 세로로 된 바구니와 같은 구조로 먼저 넣게 되는 자료가 마지막으로 나오게 되는 First-In Last-Out(FILO) 구조이다.큐: 가로로 된 통과 같은 구조로 먼저 넣게 되는 자료가 가장 먼저 나오는 First-In First-Out(FIFO) 구조이다.트리: 정점과 간선을 이용해 사이클을 이루지 않도록 구성한 Graph의 특수한 형태로, 계층이 있는 데이터를 표현하기에 적합하다.힙: 최댓값 또는 최솟값을 찾아내는 연산을 쉽게 하기 위해 고안..
1. 프로그래밍 공통 [ OOP란 ] OOP는 현실 세계를 프로그래밍으로 옮겨와 현실 세계의 사물들을 객체로 보고, 그 객체로부터 개발하고자 하는 특징과 기능을 뽑아와 프로그래밍하는 기법입니다. OOP로 코드를 작성하면 재사용성과 변형가능성을 높일 수 있습니다. [ OOP의 5가지 설계 원칙 ] SRP(Single Responsibility Principle, 단일 책임 원칙): 클래스는 단 하나의 목적을 가져야 하며, 클래스를 변경하는 이유는 단 하나의 이유여야 한다. OCP(Open-Closed Principle, 개방 폐쇠 원칙): 클래스는 확장에는 열려 있고, 변경에는 닫혀 있어야 한다. LSP(Liskov Substitution Principle, 리스코프 치환 원칙): 상위 타입의 객체를 하위..
1. CUDA C 병렬 프로그래밍 고급 예제 [ Parallel Dot ] 아래의 예제는 동일한 크기의 A배열과 B배열의 index에 있는 숫자를 곱해 C배열에 대입하는 코드이다. #include "device_launch_parameters.h" #include #include #include #define SIZE (2048 * 2048) #define THREADS_PER_BLOCK 512 // __global__을 통해서 커널임을 표시한다. host에서 호출된다. __global__ void dot(int *a, int *b, int *c, int n){ // 수많은 블록과 스레드가 동시에 처리한다. // 위에서 정의한 index를 통해서 스레드들을 구별한다. int index = threadId..
1. CUDA란? [ CUDA란? ] CUDA는 Nvidia가 만든 병렬 컴퓨팅 플랫폼 및 API 모델이다. 소프트웨어 개발자들은 CUDA를 통해 General한 Purpose를 위한 GPU사용이 가능해졌는데, 이러한 것을 GPGPU(General-Purpose Computing on Graphics Processing Units)라고 한다. CUDA 플랫폼은 GPU의 가상 명령어셋과 병령 처리 요소들을 사용할 수 있도록 만들어주는 소프트웨어 레이어이며, NVIDIA가 만든 CUDA 코어가 장착된 GPU에서 작동한다. 2006년 11월, G80 아키텍처와 함께 처음 발표되었으며, 초기에는 C,C++만 지원했지만 지금은 Fortran이나 C# 등 다양한 언어에서 사용아 가능하며 현재는 10.0 버전까지 나..
아래의 내용은 BORA’s NFT (Non Fungible Token) story PART 1의 내용 일부를 번역/의역 하여 정리 한 것입니다. 1. ERC-721이란? [ NFT(Non-Fungible Token)의 중요성 ] 대체불가능한 특성을 의미하는 NFT(Non Fungible Token)는 최근에 블록체인 커뮤니티 사이에서 중요성이 상당히 증가하였다. 디지털 자산에 대한 'Ownership(소유권)'의 개념은 다양한 산업들이 블록체인을 도입하면서 확고해졌다. NFT가 주목을 받게 된 이유는 현존하는 디지털 자산의 소유권 분쟁을 해결할 수 있기 때문이다. [ ERC-20 이란? ] NFT(Non-Fungible Token)의 대체불가능한 특성과 사용을 들여다 보기 전에 ERC-20에 대한 설명이..