본문 바로가기

아키텍처 종류 몇가지 정리해보기 들어가기 아키텍처 종류에 대해서 정리해보았는데 아키텍처만 정리하지 않고 아키텍처를 다루면서 같이 언급되는 대상까지 간단하게 정리했다. 개인적으로 한번 정리하고 싶었고 공유하면 괜찮을 듯해서 정리해보았다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 모노리스(Monolith) 모노리스는 아키텍처라고는 할 수 없다. 전체 애플리케이션을 한 덩어리인 결과물이라고 할 수 있다. 즉, 배포할 때에 결과물도 하나인 경우를 말한다. 과거에 대부분의 애플리케이션이 모노리스 형식으로 많이 배포되었다. 성능 상에 이슈에는 여러 모노리스 애플리케이션을 배치해 수평확장하는 구조로 되어 있다. 모노리스라고 해서 아키텍처가 무시되지는 않는다. 내부적인 아키텍처는 다양한 형태로 .. 더보기
Ken Thompson의 Reflections On Trusting Trust 들어가기 “Reflections On Trusting Trust”은 Ken Thompson의 논문 내용으로 총 3 Stage로 구성되어 있다. 내용은 백도어에 대한 것으로 특히 C 컴파일러에 대해서 다룬 글이다. 개인적으로 제목을 “신뢰를 신뢰하는 것에 대한 고찰”이라고 직역할 수 있을 듯 하네요. 다르게 하면 “신뢰에 대한 재고찰” 정도가 될까요? 그리고 샘플 코드가 C 언어로 되어 있습니다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ Stage 1 Self-reproducing program은 콰인(quine)으로 소스코드가 자신 복제하는 프로그램이다. 결국 프로그램이 다른 프로그램에 의해 쉽게 작성될 수 있다. 아래 메인 프로그램이 의해 생성되는 .. 더보기
[kanban] 칸반보드 들어가기 칸반보드는 개인 혹은 작은 조직에서 작업을 관리를 위한 칸반을 구현하기 위한 도구이다. 칸반보드는 직관적이기 때문에 쉽게 적용할 수 있는 장점이 있다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 칸반보드란 칸반보드는 연속적 작업 흐름에 대한 처리 방식을 정의하고 있다. 칸반보드의 특징은 프로세스 단계를 컬럼으로 시각적으로 분리하고 프로세스 단계의 작업을 표시한다. 또한 작업을 왼쪽 컬럼에서 오른쪽 컬럼으로 이동하면서 진행상황을 표시한다. 모든 이슈는 큐에 입력되고, 개발 프로세스는 큐에 있는 이슈를 가져와서 처리한다. 오른쪽으로 이동하면 단계별로 처리가 되며 최종적으로 완료 처리한다. 큐에는 우선순위 높은 이슈가 높은 위치에 놓이게 된다. 칸반.. 더보기
DevOps 소개 들어가기 고객 요구에 대한 빠른 반영과 수시 배포하는 환경 이슈를 극복하기 위한 개발 방법론이다. 이 방법론은 소프트웨어 개발과 운영을 하나의 팀으로 운영한다. DevOps에 대해 간단하게 살펴보자. 작성자: ospace114@empal.com, http://ospace.tistory.com/ DevOps란 DevOps는 Development Operation 약자로 IT 개발자와 운영자들 사이의 의사소통, 협업, 융합을 강조하는 팀 문화이자 개발 방법론이다. DevOps은 목적은 상품과 서비스를 신속하게 생산하는데 있다. Dev vs. Ops 충돌 개발과 운영 사이에는 간극이 있다. 개발은 고객 요구를 빠르게 반영하기를 원하지만 운영은 안정성에 더 중점을 둔다. 이로 인해 서로간에 다른 목표로 생기는 .. 더보기
코드 리뷰 Code Review 가이드 들어가기 이글은 가이드일 뿐이며, 자신의 환경에 맞게 적절하는 수정하면 됩니다. 코드 리뷰하기 전에 아래 내용에 대해 먼저 깊게 생각해보고 진행하시기 바랍니다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 이 문서는 팀단위로 코드 리뷰를 진행하기 위한 가이드입니다. 목적 리뷰의 목적은 결함을 사전에 발견하고 코드 품질 향상을 하고 서로에게 긍정적 영향을 미치면서 개개인의 스킬을 향상에 있습니다. 처음부터 완벽한 코드를 추구하는게 아닌 지속적으로 개선하는 목표를 가져야 합니다. 키워드 CL(Change list): 코드 리뷰하는 대상들(예. 소스코드, 문서 등) 작성자(Author): CL 리뷰를 준비하는 작성자 리뷰어(Reviewer): 리뷰코드를 검토하.. 더보기
Bitcoin: A Peer-to-Peer Electronic Cash System 정리 다음은 Satoshi Nakamoto (satoshin@gmx.com)에 의한 비트코인 논문을 정리한 내용이다. 개인적으로 중요하다고 생각하는 부분만 정리했기 때문에 전체 내용을 파악하고 싶다면 다른 자료를 검색하기 바란다. 전자화폐는 이중지불을 막기 위해 제3자인 금융기관 없이 온라인 결제가 가능하다. 이중 지불을 막기 위해 거래를 해싱해 타임스탬프를 찍어서 해시기반 증명작업(proof-of-work)을 연결한 사슬로 생성한다. 만들어진 사슬로 인해 전체 작업증명을 재수행하지 않고는 기록을 변경할 수 없다. 가장 긴 사슬이 올바른 사슬로 증명되며 CPU 파워 과반에 의한 통제로 이를 넘어가지 않은한 가장 긴사슬을 만들어냄으로써 공격자로부터 보호한다. 작성자: ospace114@empal.com, htt.. 더보기
OpenPGP에서 인증 방식 최근 Beautiful Code을 보다가 보안통신을 보았다. 여기서 주요 내용은 perl을 이용해서 쉬우면서고 강력한 보안 메일 시스템을 만들었다는 것이다. perl 기반으로 암호화된 메일 구현하시는 분의 여기서 소개되는 메일관련 모듈을 참고하면 도움이 될 듯 하다. 그러나 나의 관심을 끈 것은 암호화에 사용되는 키 관리 및 인증 방식이다. 바로 PGP였다. 여러 명이 동시에 사용되고, 원격에서 이런 키 관리가 쉽지 않은 문제이다. 그렇기 때문에 더 관심을 가지게 되었다. 그러다가 OpenPGP에 대해서 알게 되었다. 그래서 여기에서는 OpenPGP에서 사용하는 키관리 및 인증 방식에 대해서 알아보려고 한다. 작성자: Ospace (ospace114 at empal.com) http://ospace.ti.. 더보기
디스패치 dispatch, 디스패칭 dispatching 디스패치 Dispatch, dispatching 둘 다 같은 의미로 쓰인다. 우리 말로는 "배정"이라 한다. dispatch의 사전적 의미로는 '빨리 처리하다. 죽이다. 급파, 급송문서 등' 컴퓨터에서 쓰이는 뜻은 다음과 같다. 컴퓨터에 CPU는 보통 1개이다. 당연히 처리을 하기 위해서는 작업을 CPU에 올려놔야 한다. 실제 환경에서는 처리해야할 작업이 무수히 많고, 동시에 처리해야 될 경우도 많다. 그러나 일하는 작업꾼인 CPU은 하나이기 때문에 필요에 따라 작업을 가져와서 하나씩 처리해야 한다. 바로 작업 처리위해 작업꾼에게 가져오는 것을 디스패치이다. 보통 이런 작업 단위를 "프로세스"라고 한다. 디스패치는 CPU에서만 쓰이는 것이 아니라 여러 부분에서 사용된다. 개념적으로 다음과 .. 더보기

반응형