아키텍쳐 패턴이란 – 소프트웨어 디자인 패턴

외국인회사에 있다 보면 개발자 채용시 아키텍쳐 설계 부분도 이야기를 하게 됩니다. 그러면 어떤 어프로치로 소프트웨어를 설계해야 하느냐에 대한 논의를 하게 됩니다. 소프트웨어 개발/설계시 아키텍쳐링을 하다 보니 반복되는 패턴이 나오기 시작했고, 사람들은 이 패턴에 이름을 붙이기 시작했습니다. 즉, 아키텍쳐 패턴(Archiectural Patterns)이라 함은 소프트웨어 디자인 패턴이라고 할 수 있습니다. 참고로 패턴(Pattern)=유형,종류 라고 간주하...

Interpreter pattern은 SQL 또는 통신프로토콜을 기술하는 언어 구현시 주로 이용되는 아키텍쳐

Interpreter pattern은 SQL 또는 통신프로토콜을 기술하는 언어 구현시 주로 이용되는 아키텍쳐인터프리터 아키텍쳐 패턴(Interpreter Architectural pattern)은 프로그래밍 언어의 특정 구문을 해석/분석하는 컴포넌트 디자인에 많이 사용됩니다. 이 아키텍쳐의 기본 아이디어는 각각의 표현마다 클래스를 가지도록 하여 이를 조합하는 구조를 만드는 것입니다. 인터프리터 아키텍쳐 패턴(Interpreter Architectural pattern)은 SQL과 같은 Database Query Language 또는 특정 통신 프로토콜을 기술하...

Blackboard pattern은 오늘날 NLU(Natural Language Understanding)이나 차량인식 등에 응용되는 아키텍쳐

Blackboard pattern은 오늘날 NLU(Natural Language Understanding)이나 차량인식 등에 응용되는 아키텍쳐블랙보드 아키텍쳐 패턴(Blackboard Architectural pattern)은 Non-deterministic algorithm(비결정성 알고리즘)을 구현하는데 널리 이용되고 있습니다. Non-deterministic algorithm(비결정성 알고리즘)은 그 다음 단계의 결과가 실행할때마다 다르게 나올 수 있는 알고리즘을 의미합니다. 참고로 Deterministic algorithm(결정성 알고리즘)은 결과가 유니크(Unique)합니다. 즉, 특...

MVC(Model-view-controller) pattern은 Django, Rails와 같은 웹 어플리케이션 개발에 주로 응용되는 아키텍쳐

MVC(Model-view-controller) pattern은 Django, Rails와 같은 웹 어플리케이션 개발에 주로 응용되는 아키텍쳐MVC(Model-view-controller) 아키텍쳐 패턴(Architectural pattern)은 웹 어플리케이션 개발에 주로 이용되는 아키텍쳐 패턴입니다. MVC는 다음의  3개 파트로 구성되어져 있습니다. 모델(model) - 기본 함수와 데이터를 포함합니다 뷰(view) - 정보를 사용자에게 보여줍니다. 웹페이지 그 자체를 생각하시면 될 것 같습니다 컨트롤러(controller) - 사용자로부터의 입력을 처리합니다 이 패턴의 기본 아이디어는 ...

Event-bus pattern은 Push Notification Service, 안드로이드 앱 개발에 주로 응용되는 아키텍쳐

Event-bus pattern은 Push Notification Service, 안드로이드 앱 개발에 주로 응용되는 아키텍쳐이벤트-버스 아키텍쳐 패턴(Event-bus Architectural pattern)은 4개의 주요 컴포넌트로 구성되어져 있는데, 이들 컴포넌트는 이름에서 예상되듯 이벤트를 다루는 컴포넌트 입니다. 이벤트 소스(event source) 이벤트 리스너(event listener) 채널(channel) 이벤트 버스(event bus) 아래의 그림에서 특정 채널을 통해 메시지가 메시지 버스를 통해 전달 되면, 리스너(listener)는 등록(subscribe)...

Peer-to-peer pattern은 BitTorrent와 같이 파일공유 솔루션이나 P2PTV, PDTP와 같은 멀티미디어 프로토콜에 주로 이용

Peer-to-peer pattern은 BitTorrent와 같이 파일공유 솔루션이나 P2PTV, PDTP와 같은 멀티미디어 프로토콜에 주로 이용P2P는 Peer-to-Peer의 줄임말입니다. P2P 아키텍쳐 패턴(Architectural pattern)에서 개개의 각각의 독립적인 컴포넌트를 피어(peer)라고 부릅니다. 각각의 피어는 클라이언트로서 다른 피어에게 서비스를 요청하면서 한편으로는 서버로서 요청받은 서비스를 동적으로 처리해주는 기능을 가집니다. 2000년대 초반에 많이 쓰이던 당나귀(eDonkey), 냅스터(Napster), 소리바다와 같은 소프트웨어가 P2P 아키텍쳐 패턴에 해당하며...

Broker pattern은 Apache ActiveMQ, Apache Kafka, RabbitMQ 등 메시지 미들웨어 같은 아키텍쳐에 주로 이용

Broker pattern은 Apache ActiveMQ, Apache Kafka, RabbitMQ 등 메시지 미들웨어 같은 아키텍쳐에 주로 이용브로커아키텍쳐 패턴(Broker Architectural pattern)은 클라이언트-서버(Client-Server) / 마스터-슬레이브(Master-Slave) 처럼 역할이 분리된 컴포넌트(decoupled components)를 구조화하는데 주로 응용되는 패턴입니다. 여기서 브로커 컴포넌트는 컴포넌트간 통신(communication)을 조율(coordination) 하는 역할을 담당합니다. 클라이언트가 어떤 요청사항을 전달하면, 브로커가 중간에 받아서...

Pipe-filter pattern은 컴파일러와 같이 통해 연속되는 필터링 기법을 통한 분석을 하는 아키텍쳐에 주로 이용

Pipe-filter pattern은 컴파일러와 같이 통해 연속되는 필터링 기법을 통한 분석을 하는 아키텍쳐에 주로 이용파이프-필터 아키텍쳐 패턴(Architectural pattern)은 웹로그와 같은 텍스트 기반의 데이터 또는 프로그램 소스 코드 등과 같은 데이터 스트림을 처리하는데 적합합니다. 각각의 프로세스는 필터 컴포넌트 내에서 처리되며, 데이터는 파이프를 통해 전달되어 처리되어집니다. 이러한 파이프는 버퍼링을 하거나 동기화 하는 목적으로 사용됩니다. 컴파일러, DNA정보 분석 소프트웨어가 파이프-필터 아키텍쳐 패턴(Architectural pattern)기반이라...

Master-slave pattern은 장애 대응을 위한 Database 복제 등 병렬처리 및 Disaster Recovery 대응 로직에 주로 이용

Master-slave pattern은 장애 대응을 위한 Database 복제 등 병렬처리 및 Disaster Recovery 대응 로직에 주로 이용마스터-슬레이브 아키텍쳐 패턴(Master-Slave Architectural pattern)은 마스터(master)와 슬레이브(slave)로 구성되어져 있는데, 마스터는 일을 분배하는 역할을 가지고 있으며, 슬레이브는 전달된 기능을 수행합니다. 즉, 마스터(주인)이 업무를 지시하면, 슬레이브(하녀)는 그 일을 완료하여 결과물을 전달 하는 것입니다. 마스터-슬레이브 아키텍쳐 패턴(Master-Slave Architectural pattern)의 예로는 데...

Client-server pattern은 TCP/IP를 통해 데이터를 주고 받는 이메일, 웹하드 등이 주로 이용하는 아키텍쳐

Client-server pattern은 TCP/IP를 통해 데이터를 주고 받는 이메일, 웹하드 등이 주로 이용하는 아키텍쳐클라이언트-서브 아키텍쳐 패턴(Client-Server Architectural pattern)은 서버와 다수의 클라이언트로 구성된 2-Tier Architecture입니다. 서버는 다수의 클라이언트 컴포넌트에게 서비스를 제공하고, 클라이언트는 서버로부터 서로 약속한 서비스를 받는 구조입니다. 따라서, 이 구조에서는 서버가 클라이언트로부터 지속적으로 요청을 받아 처리하도록 설계되어져 있습니다. 응용분야로는 TCP/IP를 기반으로하는 Client-Serve...

Layered pattern은 PC App, 쇼핑몰(이커머스) 웹사이트 등이 주로 쓰는 아키텍쳐 패턴

Layered pattern은 PC App, 쇼핑몰(이커머스) 웹사이트 등이 주로 쓰는 아키텍쳐 패턴레이어드 아키텍쳐 패턴(Layered architectural pattern)은 특정 수준의 추상화 된 레벨의 서브 펑션으로 구성된 스트럭쳐드 프로그램(Structure programs)에 널리 이용되고 있습니다. 각각의 레이어는 차상위 레벨의 레이어에게 서비스를 구성하도록 설계되어져 있는데, 통상 다음과 같이 4단계의 레이어를 이용하여 일반적인 정보 시스템을 구성하고는 합니다. Presentation layer (UI layer라고도 부름) Applic...

삼성 MG900 블루투스 헤드셋 페어링 방법 (EO-MG900)

삼성 블루투스 헤드셋 (EO-MG900)의 페어링 방법은 간단합니다. 수동등록 방법 전원을 켜고 통화버튼을 꾹- 3초간 누르면 전원 버튼 위에 파란색, 빨간색으로 약 3분간 깜빡입니다. 그러면 휴대폰이나 노트북 블루투스 탐색 창에 EO-MG900 모델이 뜨고, Connect 버튼을 눌러 페어링 하시면 됩니다. 자동등록 방법 등록 대기 상태에서 통화 버튼을 길게 누르면, 상태표시등이 파란색에서 보라색으로 바뀝니다. 이때 자동 등록 상태는 20초간 유지됩니다...

삼성전자 조직개편은 60대 CEO 퇴진에서 시작

삼성전자 조직개편은 60대 CEO 퇴진에서 시작2017년 11월 삼성은 사장단 인사를 단행했습니다. 쇼킹한 것은 기존에 삼성전자를 이끌었던 3인방(권오현, 윤부근, 신종균)의 퇴진입니다. 이들은 그들이 이루었던 업적을 뒤로 하고 후배들에게 자리를 내줌으로써 보다 젊은 삼성전자를 만들었다는 평입니다. 매경 이코노미에 따르면 삼성전자는 아래와 같은 새로운 조직 구조를 가지게 된다고 합니다. IM 부문은 고동진사장이 이끌고, CE부문은 김현석 사장, DS부문은 김기남 사장이 이끄는 구조입니다. 이데일리는 ...

추억의 스타크래프트 사무실에서 한판 뜨기 – IPX가 안되어 방법을 찾아 보았습니다

추억의 스타크래프트 사무실에서 한판 뜨기 - IPX가 안되어 방법을 찾아 보았습니다추억의 스타크래프트… 아들과 함께 한판 떠 보려고 했는데,Windows 10에서는 지원을 하지 않더군요. 하여 방법을 찾아 보았더니 이를 에뮬레이션해주는 소프트웨어가 있어 이를 공유하고자 합니다. 이름하여 IPXWrapper… 이를 이용하면 워크래프트 등… IPX를 이용하여 네트워크 게임을 하는 고전게임들이 다 동작한다고 하는데요. 해당 소프트웨어는 아래 URL에서 다운로드 하시면 됩니다. http://www.solemnwarning.net/ipxwrap...

기아자동차 모하비 순정 네비 동의함 버튼 안눌릴 때 해결 방법

기아자동차 모하비 순정 네비 동의함 버튼 안눌릴 때 해결 방법제 차량은 2010년식 모하비로 순정 오디오/순정 네비가 기본 탑재 된 제품입니다. 그런데 어느 날 아침 갑자기 [동의함] 버튼이 안눌리기 시작했습니다. 처음에는 터치패드 문제인 줄 알았으나, 다른 모든 기능은 멀쩡했습니다.  뭐가 그리 불만이라 동의를 안해줬던건지…. 여기 저기 찾아보니, 순정 네비에 소프트웨어 버그가 있었던 것 같습니다. 해결 방법은 다음과 같습니다. 시동을 걸고 아래와 같이 화면이 나오면 버튼을 다음과 같이 눌러줍니다. [현위치] 2...

갑자기 컴퓨터가 너무 느려져 내가 한 일 – 백신프로그램 하나를 제외한 나머지를 다 지우니 해결

갑자기 컴퓨터가 너무 느려져서 무엇을 해야 할지 고통스러웠습니다. 이것 저것 해보다가 작업관리자(Task Manager)를 보니 보안프로그램이 여러개가 띄어져 있는 것을 보았습니다. 처음에는 백신에서 제공하는 시스템 최적화도 해보고, 바이러스 검사도 해보고.... 또 최근에 설치했던 다른 프로그램을 지워보았는데 해결이 되지 않았습니다. 그래서 마지막으로 조치한 방법은 쓰는 백신을 제외한 나머지를 다 지운 것입니다. 주로 홈뱅킹이나 온라인 쇼핑시 설치하는 ...

코드리뷰도 생산성 있게 – Visual Studio Code를 이용하여 코드리뷰 중 JIRA에 이슈 등록하는 방법

코드 리뷰하는 광경을 생각해 보면, 대략 이렇죠. 대략 연배 있는 선배들이 주위에 쭈르륵 앉아서 한마디 합니다. 야, 니가 만든 코드 좀 열어봐! 뭐 코드를 그렇게 짰냐… 좀더 구조적으로 짰어야지 이건 쓸데없이 구조적인데 이건 함수 분리가 제대로 안되었네 이건 변수를 왜 이리 많이 선언했지? 어허... 이건 객체지향의 5대 원칙에 어긋나는 코딩인데? 전혀 객체지향적이지 않아.... 원래 코드리뷰의 제1원칙은 "서로를 비난하거나 비방하지 않는것" 입니다. ...

원더우먼을 보고 느낀 헐리우드 영화의 매력

원더우먼을 보고 느낀 헐리우드 영화의 매력간만에 헐리우드 영화를 한편 보았습니다. 이름하여 “원더우먼” 여주인공에 대해 말도 많았는데, 사실 영화 그 자체는 그리 박진감 넘치지 못한 것 같습니다. 제가 기대했던 환타지와는 거리가 멀었고, 약간 따분한 느낌마저 들었다고 하는 것이 솔직한 표현인 것 같습니다. 요즘은 헐리우드 영화보다 오히려 우리나라 드라마가 더 재미있다는 생각이 드는데… 이게 과연 저만 그런것인지… 그럼에도 불구하고 극장에서 영화를 보는 사람들은 계속 늘고 있다고 하니… 그게 신기...

원격 폴더를 외장 하드처럼 자유롭게 써 보자 – 마운틴덕(Mountain Duck)

원격 폴더를 외장 하드처럼 자유롭게 써 보자 – 마운틴덕(Mountain Duck)맥에서 파일 백업을 원격 서버에 SFTP로 하는 방법을 찾던 중 마운틴덕(Mountain Duck)이라는 소프트웨어를 찾았습니다. 마운틴덕(Mountain Duck)은 원격 서버 내의 특정 폴더를 마치 외장 하드 처럼 PC 또는 맥(Mac)에 연결해주는 소프트웨어입니다. 이를 이용하면 원거리에서도 서버를 자유롭게 접속할 수 있어 매우 좋습니다. 또 노트북에 대용량 하드를 달고다니지 않아도되 저장공간 이슈도 없습니다. 참고로 이 소프트웨어는 다음의 웹사이트...

      1      2      3      4      5      6      7      8            362      363      364