IT 썸네일형 리스트형 절차적 프로그래밍 vs 객체지향프로그래밍 해당 포스팅은 OOP 이해를 돕기위해 작성되었습니다. 1. 절차적 프로그래밍 절차적 프로그래밍의 정의를 보면, "루틴", "서브루틴", "메소드", "함수" 등 "프로시저"를 이용한 프로그래밍 패러다임을 뜻한다고 되어있습니다. 일단 절차적 프로그래밍을 쉽게 이야기하면, 특정 작업을 수행하기 위한 프로그램을 작성할 때, "루틴", "프로시저"으로 구성되게끔 프로그래밍 하는 프로그래밍 패러다임이라는 이야기입니다. 그럼 여기서 루틴이 무엇인가가 중요해집니다. 루틴은 무엇인가? 루틴(Routine)의 단어의 정의는 "틀에 박힌 일"입니다. 말 그래도 우리가 할 일에 대한 순서가 정해져있고, 그것이 변하지 않는다는 거죠. 프로시저(Procedure)의 단어 정의는 "순서"를 의미합니다. 이러한 루틴과 프로시저란 .. 더보기 [C] 구조체, Structure 이번 포스팅에서는 구조체, Structure에 대해서 포스팅하겠습니다. 1. 구조체, Structure Type 구조체와, Structure Type이라는 단어를 보면, "구조"라는 단어가 눈에 들어옵니다. 쉽게 이야기해서 구조체는 구조화된 데이터의 집합입니다. 2. 왜 사용하는가? 우리가 만약 직교 좌표계를 표현하기 위해서 프로그래밍을 한다고 생각해봅시다. 일단 직교좌표계에서 점을 표현하기 위해서는 원소가 2개가 필요하고, 다음과 같이 표현할 수 있습니다. 이를 C언어에서 표현을 한다라고 하면 다음과 같이 표현할 수 있습니다. 1234567891011#include int main(void){ int x = 2; int y = 3; return 0;} 이게 직교 좌표계의 한점을 C언어에서 표현한 방법.. 더보기 [C] #ifndef을 이용한 header 중복 방지 이번 포스팅에서는 전처리문 #ifndef을 이용하여 header파일의 중복을 막는 방법을 포스팅하겠다. 먼저 #ifndef이 적용된 예제파일을 먼저 보겠다. _ #ifndef을 이용한 예제 1. coordinate.h1234567891011121314#ifndef COORDINATE#define COORDINATE #include struct coordinate{ int x; int y;}; void print_coordinate(struct coordinate *coord); #endif Colored by Color Scriptercs 2. coordinate.c1234567#include "coordinate.h" void print_coordinate(struct coordinate *coord).. 더보기 [OpenCL] Error Code 이번 포스팅에서는 OpenCL 사용 시, 발생하는 Error Code에 대한 내용을 포스팅 하겠다. OpenCL의 Error code에 대한 내용은 "OpenCL error codes (1.x and 2.x)"에서 발췌하였다. Code OpenCL Error Flag Functions(s) Description 0 CL_SUCCESS The sweet spot. -1 CL_DEVICE_NOT_FOUND clGetDeviceIDs if no OpenCL devices that matched device_type were found. -2 CL_DEVICE_NOT_AVAILABLE clCreateContext if a device in devices is currently not available even .. 더보기 [OpenCL] Glossary - 용어 이번 포스팅은 본격적으로 OpenCL 프로그래밍을 하기에 앞서 기본적인 용어 대해서 설명하겠다. _OpenCL Spec OpenCL의 명세서에서 나와있는 기본적인 용어를 먼저 훑어보도록 하겠다. 1. Application: Host(CPU)와 OpenCL device(GPU)에서 실행되는 혼합된(combination) 프로그램 2. Blocking and Non-blocking Enqueue API calls: Non-blocking은 API 호출 명령을 command-queue에 넣고, host에게 결과를 즉시 알려준다. Blocking 모드는 API 호출시 해당 명령이 끝나기 전까지 결과를 반환하지 않는다.(Blocking과 Non-blocking의 차이) 3. Barrier: Barrier는 두종류.. 더보기 SMP [symmetric multiprocessing] 최근 병렬 프로그래밍을 공부하고있다. 공부하는 도중 생소하거나 잘 모르는 개념들을 조금씩 정리해보려고 한다. 이번 포스팅은 SMP(Symmetric Multiprocessing)을 다루겠다. _ 정의 위키피디아의 Symmetric Multiprocessing의 정의를 빌려보면, "SMP ( Symmetric Multiprocessing ) 는 둘 이상의 동일한 프로세서가 단일 공유 주 메모리 에 연결되고 모든 I / O 장치에 대한 전체 액세스 권한을 가지며 처리하는 단일 운영 체제 인스턴스에 의해 제어되는 다중 프로세서 컴퓨터 하드웨어 및 소프트웨어 아키텍처 를 포함합니다 모든 프로세서는 동등하게 특별한 목적을 위해 아무 것도 예약하지 않습니다. 오늘날 대부분의 멀티 프로세서 시스템은 SMP 아키텍처를.. 더보기 [OpenCL] 시작, 예제 실행하기 최근 CUDA와 OpenCL을 공부하고 있다. 아직 병렬 프로그래밍이 익숙하지 않아서, 예제를 다뤄보려고 한다. 여기서는 Mac을 기준, C언어로 진행한다. _1. OpenCL 시작, deviceQuery 예제 Mac은 기본적으로 OpenCL을 내장하고 있다. 따라서 곧바로 예제를 실행해보도록하겠다. 해당 예제는 GPU device의 정보를 받아오는 예제이다. 실행코드와 Makefile의 작성은 다음과 같이 한다. Makefile12345678910111213141516171819202122232425262728293031323334353637383940OPENCL=1 VPATH=./src/EXEC=outOBJDIR=./obj/ CC=clangLDFLAGS=COMMON=CFLAGS=OPTS=CFLAGS+.. 더보기 [Deeplearning] YOLO!, You Only Look Once : Unified, Real-Time object Detection 안녕하세요~ 최근에 Image detection과 관련된 공부를 하고 있습니다. 그래서 제가 공부하는데 이해도를 높이기 위해 Image detection과 관련된 신경망 중에 실시간 이미지 객체 탐지 및 인식에 강력하다라고 소문이 나있는 YOLO에 관련한 논문을 번역해보려고 합니다. 항상 논문 번역이라는게 그렇듯이 제가 잘못 이해해서 번역이 잘못된 부분이 있다면 언제든지 지적해주시면 감사하겠습니다. 1. Abstract 우리는 object detection에 있어서 새로운 접근법인 YOLO를 소개합니다. object detection은 사전 작업으로 detection을 먼저 수행합니다. 여기서 우리는 object detection을 공간적으로 분리된 bounding box들과 class(분류할 objec.. 더보기 [Raspberry Pi 3][locale/ Keyboard Layout] 라즈베리파이 한글입력, 한글깨짐 문제 요즘에 다시 라즈베리파이로 이것저것 할게 생겨서 라즈비안을 재설치하고, 설정하는 과정에서 몇가지 이슈들을 정리해보려고 합니다. 이번 포스팅은 라즈베리파이에서 local과 keyboard layout설정에 대해서 포스팅하겠습니다. 한글입출력을 위해서 기본적으로 라즈베리파이에 locale과 keyboard 설정을 해야합니다. locale/Keyboard Layout을 설정하기 위해서는 다음과 같이 라즈베리파이 환경설정 메뉴에 진입해야합니다. 1. 환경설정 메뉴 진입환경설정 메뉴 진입을 위해서 라즈베리파이에서 터미널을 열고, 다음과 같은 명령어를 입력합니다. 1sudo raspi-config 2. locale 설정환경설정 메뉴에 진입했다면, locale 설정을 먼저 해봅시다. 1. Localisation Op.. 더보기 [C] 재귀 함수 Recursion function 최근 코딩면접을 준비하고 있는데, 어떤 인사 담당자님께서 재귀함수에 대해서는 알지만, 재귀함수을 계속 쓰게되면, 프로그램이 죽는데, 왜 죽고 이를 방지하기 위해 어떤 방법을 써야하는지에 대해서 모른다고 뽑고싶어도 사람을 뽑을 수 없다고, 한탄하시는 글을 읽고 찔려서 ㅎㅎ... 공부하게 되었습니다.피보나치 수열 피보나치 수열의 정의는 다음과 같습니다. 이를 프로그래밍에서 구현하게되면, 다음과 같은 재귀함수로 구현할 수가 있습니다. Fibonacci - Recursion12345678910111213141516171819#include int fibonacci_recursion(int n){ if(n 더보기 이전 1 ··· 4 5 6 7 8 9 다음