본문 바로가기

반응형

IT/이론

(7)
[프로세스 vs 스레드 - 2] 프로세스 & 멀티프로세싱 [프로세스 vs 스레드 - 1] 프로세스와 스레드 서 론 위 그림에서 토니 스타크가 입은 아이언맨 수트에서 펼쳐진 UI(유저 인터페이스)인데, (아마 필자의 예상이지만) 저 원 하나하나마다, 정보 하나하나마다 각각이 스레드로 돌아가고 있을 underflow101.tistory.com 본 글은 위의 글에서 이어지는 글입니다. 서 론 필자는 학부생 때 프로세스의 개념을 받아들이는 것이 조금 힘들었다. 프로세스가 그냥 소스 코드를 실행시키면 그게 프로세스라고 하는데, 그게 무슨 뜻인가? 그러면 소스 코드가 여러 개면……? 거기에 프로세스가 가지는 수많은 특성들까지 외우려고 드니, 더더욱이 와닿지 않았던 문제점이 있었다. 그러나 프로세스를 이해하는 것은 매우 간단하다. 위의 수많은 프로그래밍 언어로, 어떠한 프..
[프로세스 vs 스레드 - 1] 프로세스와 스레드 서 론 위 그림에서 토니 스타크가 입은 아이언맨 수트에서 펼쳐진 UI(유저 인터페이스)인데, (아마 필자의 예상이지만) 저 원 하나하나마다, 정보 하나하나마다 각각이 스레드로 돌아가고 있을 확률이 매우 높다. 아마 실시간성을 위해서 C++로 짰거나 JAVA로 짜지 않았을까... 프로세스와 스레드에는 여러 별명이 있다. 대기업 면접 제 1 질문, OS(운영체제) 가장 중요한 질문, 등등. 그렇다면 왜 대기업에서 면접마다 프로세스와 스레드에 대한 질문을 하는 것일까? N사의 면접에서는 을 묻고, 꼬리 질문으로 를, 다음 꼬리 질문으로 를, 그 다음 꼬리 질문으로 를, 그 그 다음 꼬리 질문... 이런 식으로 프로세스와 스레드에 대해 무한정으로 깊게 파고 들어갔다. 필자가 모르겠다는 답변이 나올 때까지. 그 ..
State Machine 이란 무엇인가 - 1 서 론 State Machine. 스테이트 머신은 흔히들 여러 이름으로 불린다. State Machine (상태 기계), Finite State Machine (유한 상태 기계), Finite Automaton (유한 오토마톤), Finite Automata (유한 오토마타), 등등... 보통 스테이트 머신은 Finite, 유한 개의 스테이트로 구성된 Finite State Machine과, Infinite, 무한 개의 스테이트로 구성되는 Infinite State Machine으로 나뉘지만, Real World에서는 주로 Finite State Machine으로 프로덕트가 구성되고, 그렇기에 일반적으로 State Machine이라 함은 Finite State Machine을 통칭한다. (약칭 FSM) ..
[Git] 오픈소스 컨트리뷰트 중 Pull Request를 올리기 위해 깃 커밋 로그 깔끔하게 하기 길게 설명할 필요가 없는 간단한 방법이다. 오픈소스 컨트리뷰트를 막 시작하면 대체로 깃 커밋 로그가 뒤죽박죽이라던가...Upstream(Fork해온 레포지토리의 원본 레포지토리)의 master와 맞지 않아서 머지가 안된다던가...하여간 여러 문제점에 봉착하게 되는데, 이 모든 것을 해결해주는 두 가지 마법의 Git 명령어가 있다. 1. git rebase -i HEAD~n 간단하게 설명하자면 이 명령어는 하나의 PR(Pull Request)에 여러 커밋이 들어있는데,그 중에서 몇 개는 빼야하거나 커밋을 하나로 합쳐야 하는 등의 애로사항이 펼쳐졌을 때 사용하게 되는 마법의 명령어다. # Terminal $ git rebase -i HEAD~5 위와 같이 명령어를 치면 대화형 스크립트 창이 뜨며 최신 5개의..
[Git] Forked Repository가 꼬였을 때... (5 commits ahead of...) 현재 작업하던 정보를 보존하면서 커밋 로그가 꼬여버렸을 때 해결법: # Memorize current work: git checkout master git checkout -b mybranch git remote add upstream /url/original/repo git fetch upstream # reset master to upstream/master git checkout master git reset --hard upstream/master git push --force # replay the patches (even they are rejected for now) on top of master git checkout mybranch git rebase master git push -u o..
[이론] C의 qsort와 C++의 sort 중 누가 더 빠를까? 서 론 우선 이러한 차이점이 존재한다는 것을 알게 해주신 멘토님께 감사의 말씀을 올린다. 신입의 가장 큰 적은 알려고 하지 않는 자세보다 (그건 조금 더 근원적인 문제이고…) 무엇을 알아야하는지 모르는 미지성이다, 라는 말이 크게 와닿는 순간이었다. 필자는 CS를 접한 이유로, 온갖 것이 다 신기했고 재밌었다. 그야말로 천직이다, 싶을 정도로. (그에 반해 원래 전공인 전기공학에서의 전력시스템이나 전자기학에 관한 것은 놀랍게도 흥미가 없었다……. 그저 학점을 채우기 위해 듣고 외울 뿐…….) 그런데 공부를 하다 보면 알게되는 사실이지만, 내가 굳이 알고 싶지 않아서가 아니라, 정말 이러한 차이나 기능이 있는지를 몰라서 모르는 경우가 왕왕 발생한다. 이번에 소개할 C언어의 qsort와 C++ sort의 속..
[Git] Github, Git Commit Rule (깃허브 커밋 룰) 서 론 깃허브(Github)를 위시한 각종 Git들이 포트폴리오 대용으로까지 활용되는 시대에, 사실 너무 많은 git들이 막 올려지고 있고, 너무 많은 사람들이 제대로 된 Git Commit Rule이 무엇인지는 커녕 존재하는지조차 모르고 있다. 사실 필자도 Git Commit Rule이란 것이 뭔지 한동안은 몰랐었다. (심지어 아직도 너무 마이너한 커밋은 아주 짧은 커밋 메시지만을 (initial commit 등) 작성한 채 push 해버린다.) 무엇보다 귀찮기 때문이 아닐까, 라는 핑계거리는 있지만…… N모사의 한 책임개발자는 "신입을 뽑을 때 깃 커밋 메시지만 봐도 뽑아야할지 말아야할지 알 수 있다"라고 말한 것을 들은 적이 있다. 사실 취업에 있어서, 경력이 아닌 신입 채용에서 가장 중요한 것은 ..

반응형