프로그래밍 6

[서평] 사례로 배우는 언어 전환 프로젝트 관리, 로드북

로드북에서 제공 받아 작성한 서평입니다. 현재 참여하고 있는 프로젝트에서 사용중인 프로그래밍 언어는 C이다. 이 프로젝트를 진행하고 있으면서 들었던 가장 많은 생각은 코드의 재사용성에 대한 고민이었다. 여러 부서에서 참여하고 있는 프로젝트지만, 통일된 라이브러리나 컨벤션이 없어 개발 그룹마다 각자의 코드 베이스를 기워 넣듯 통합을 하고 있다. 이를 해소하고 싶다는 생각 때문에 다음 프로젝트에서는 C++도 사용할 수 있다는 이야기를 듣고 기본적으로 사용해야만 하는 요소들을 객체로 만들어 사내 라이브러리 화를 해보고자 하였다. 기본적인 요소들부터 시작해서 프로그램에서 수행해야 하는 작업들을 파이프라인 할 수 있는 기능까지 다양한 요소들을 홀로 추가해가면서 진행하고 있었다. 하지만 안타깝게도 이러한 과정은 소..

서평 2023.05.25

[서평] 아무도 알려주지 않은 C++ 코딩의 기술

로드북에서 책을 제공받아 작성된 서평입니다. C/C++에 입문하는 과정에서 언어의 문법보다도 더 나를 괴롭혔던 부분들은 대체로 비주얼 스튜디오에 있었다. 분명 몇 줄 안 되는 코드에 빨간 줄 하나 없이 작성했건만, 비주얼 스튜디오는 어김없는 오류를 뱉어냈다. 몇 시간을 공들여 짧은 영어 실력으로 스택오버플로 글을 토막토막 읽어 나가며 친절한 글쓴이들이 올려주는 이미지를 통해 간신히 해결하면 또 다른 오류가 나를 맞이해 주었다. 자주 겪었던 상황들을 책에서는 '실무'적인 내용이라 잘 알려주지 않는 것들이었다. 이 중 몇 가지 나열해 보면 아래와 같다. 비주얼 스튜디오에 있는 '미리 컴파일된 헤더' 솔루션과 프로젝트의 종속 관계 외부 라이브러리 빌드 그 외.. "아무도 알려주지 않은 C++ 코딩의 기술"은 ..

서평 2023.05.12

[남독] 이제 프로그래밍 문법 좀 할 줄 아는 것 같은데, 뭘 해야 하나?

처음 개발자는 어떻게 될 수 있을까를 생각해본다면, 당연히 프로그래밍 언어를 익히는 것이 1순위 일 것이다. 기본적인 변수의 타입을 시작으로 수많은 프로그래밍의 기본적인 지식을 익혔다면 과연 다음 단계는 무엇일까? 우리가 외국어를 배울 때를 생각해보면, 프로그래밍 언어에서의 문법은 외국어의 문법과 기능적으로는 비슷하다고 볼 수 있다. 사람과 의사소통을 위해선 공통된 약속인 알파벳으로 시작해서 의미를 제대로 표현할 수 있도록 단어를 나열하는 법 등등을 알아야지만 하나의 언어를 활용할 준비가 되었다고 볼 수 있다(물론 사람이라는 인터프리터, 해석가, 는 매우 유능하기에 적당히 틀려도 잘 알아듣기 때문에 완벽할 필요는 없다.) 문법만 다 익히면 과연 언어를 유창하게 활용할 수 있을까? 구글에서 "영어 공부"라..

서평 2022.04.02

[C/C++] 연결 리스트(Linked List)의 순환 구조 찾기, 토끼와 거북이

이번 포스팅에서 알아볼 것은 연결 리스트(linked list)의 순환 구조 찾기입니다. 이를 알아보기 위해선 먼저 연결 리스트의 간단한 형태에 대해 정의하고자 합니다. struct LinkedList { struct LinkedList* next; int item; }; struct LinkedList* new_linked_list(int item) { struct LinkedList* res = new LinkedList; res->next = NULL; res->item = item; return res; } 연결 리스트의 구조는 위와 같이 자기 자신의 포인터를 포함한 구조체입니다. 가장 먼저 선언된 구조체가 머리(head)라고 불리며, 이후에 생성되는 구조체들은 이전에 나온 연결 리스트의 next..

프로그래밍 2021.12.11

[C/C++] Swap

프로그래밍을 공부하다 보면 기본적인 문법 이후에는 자료구조와 알고리즘을 익혀야 한다. 특히 알고리즘은 가장 처음 배우는 것은 정렬(sorting) 알고리즘들이다. 정렬 알고리즘은 주어진 배열 안에 무작위한 여러 숫자들이 존재 할 때, 이 숫자가 오름차순(또는 내림차순)으로 정렬 시키는 방법에 대한 것이다. 이를 위해서는 필연적으로 배열의 순서를 바꾸기 위한 swap함수가 사용 되게 된다. void swap(int &a, int &b) { int temp = a; a = b; b = temp; return; } swap함수의 가장 기초적인 형태는 위와 같이 하나의 변수(위에선 a)를 선택하여 임시변수temp에 저장하고, 그 변수에는 b의 값을 저장한다. 이후 b변수에 temp변수에 저장한 a의 값을 다시 ..

프로그래밍 2021.12.04

Jupyter Notebook 멀티 프로세싱

Jupyter notebook에서 multiprocessing 하기!¶주피터 노트북(Jupyter notebook)상에서 멀티 프로세싱(multiprocessing)을 활용하기 위해서는 실제 작업할 함수를 외부 모듈(즉, *.py)로 만들어야 한다. 아래 예제의 경우 1.1은 노트북 상에 함수를 선언하고, 해당 함수를 통해 pool에 넣어주면 더 이상 실행되지 않고 멈춰있게 된다. 하지만 1.2의 경우처럼 사용하고자 하는 함수를 외부에 만들어 놓고 불러오면(import하면) 제대로 작동하게 된다. In [9]: from IPython.display import Image Image("./file_tree.png") Out[9]: 잘 안되는 경우¶ In [2]: from multiprocessing imp..

프로그래밍 2021.06.21
728x90
반응형