인터넷

개발방법론, 아키텍쳐, 아키텍트, 시스템 연계 개념 정리

1. 개발 방법론

 

1.1.Methodology : 방법론(方法論)이란 어떤 대상을 인식하고 필요한 일을 수행하기 위한 방법에 대한 이론을 말한다. 소프트웨어 개발 방법론(SDM), 웹 개발 방법론(WDM) 등이 있다.

1.2.SDM : Software Development Methodology의 약자로서, 소프트웨어 개발 방법론을 말한다. 생명 주기(SDLC) 개발 방법론, 폭포수(Waterfall) 개발 방법론, 애자일(Agile) 개발 방법론, 컴포넌트 기반(CBD) 개발 방법론, 프로토타입(Prototype) 개발 방법론, 재드(JAD) 방법론 등이 있다.

1.3.WDM : Web Development Methodology의 약자로서, 웹 개발 방법론을 말한다. 소프트웨어 개발 방법론(SDM)의 일종이다.

1.4.SDLC : Software Development Life Cycle의 약자로서, 소프트웨어 개발 생명 주기를 말한다. SDLC는 소프트웨어 개발의 전 과정을 여러 단계로 나누어 개발하는 것을 말한다. 대개 요구사항 분석설계개발테스트운영 단계로 구성되어 있다. 가장 기본적이고 전통적인 소프트웨어 개발 방법론(SDM)이다.

1.5.Waterfall Model : 폭포수 모델이란 소프트웨어 개발 시 단계적으로 개발하는 방법론을 말한다. 분석설계개발(디자인퍼블리싱프로그래밍)테스트적용안정화의 단계를 따른다. 폭포수가 거슬러 올라갈 수 없듯이, 소프트웨어 개발도 반드시 앞 단계가 먼저 완료되어야 다음 단계의 개발을 진행할 수 있다는 뜻이다. 소프트웨어 개발 방법론(SDM)의 일종이다. 반대말은 애자일(Agile) 개발 방법론이다.

1.6.Agile : 애자일은 기민한’, ‘날렵한’, ‘민첩한이라는 뜻을 가진 형용사로서, 사전에 정해진 단계와 절차에 따라 개발을 진행하는 폭포수(Waterfall) 개발 방법론과 달리, 변화하는 상황에 맞게 유연하게 대응하는 소프트웨어 개발 방법론(SDM)을 말한다. 스크럼(Scrum) 방법을 사용한다.

1.7.Scrum : 스크럼은 애자일(Agile) 방법론의 핵심 전략으로서, 변덕스러운 고객의 빈번한 요구사항 변경에 대해 유연하게 대응함으로써 공동의 목표를 달성하기 위한 팀 워크 중심의 개발 방법론이다. 개발 참여자 전원이 물리적으로 같은 사무실 공간에서 일하며, 친밀한 대면 접촉과 정기적 회의를 통해 업무상황을 신속히 공유함으로써 공동 대처하는 것을 특징으로 한다.

1.8.CBD : Component Based Development의 약자로서, 컴포넌트 기반 개발을 말한다. 시스템을 하나의 일체형으로 구축하지 않고 마치 레고 블록처럼 하나씩 요소별로 부품 화하여 조립식으로 구축한다. 소프트웨어 개발 방법론(SDM)의 일종이다.

1.9.Component : 컴포넌트란 여러 개의 프로그램 함수들을 모아 하나의 특정한 기능을 수행할 수 있도록 구성한 작은 기능적 단위를 말한다. 컴포넌트를 이용하면 소프트웨어 개발을 마치 레고(Lego) 블록을 쌓듯이 조립식으로 쉽게 할 수 있다. 모듈(module)이라고도 한다. 상용 컴포넌트에는 DextUpload, r-Mate Chart 등이 있다. 컴포넌트 기반의 개발방법론을 CBD 방법론이라고 한다.

1.10. Module : 모듈이란 다른 프로그램에 링크되어 특정한 기능을 수행하도록 작성된 독립적인 프로그램의 단위이다. 보통 라이브러리(library)1개의 파일로 구성되는데 반해, 모듈은 2개 이상의 파일들로 구성된다. 모듈을 이용하면 소프트웨어 개발을 마치 레고(Lego) 블록을 쌓듯이 조립식으로 쉽게 할 수 있다. 컴포넌트라고도 한다.

1.11.Library : 라이브러리란 다른 프로그램에 링크되어 특정한 기능을 수행하도록 작성된 하나의 프로그램 코드 파일이다. 모듈(module) 또는 컴포넌트(component)보다 기능이 단순하고, 파일 사이즈가 작다.

1.12.Prototype : 프로토타입은 '원형' 또는 '기본형'이라는 뜻으로서 다수의 사이트나 시스템을 개발하는데 필요한 기본 형태를 말한다. 시제품(試製品)이라고도 한다. 프로토타입을 복제하는 방식으로 사이트를 대량 제작을 할 수 있다. 프로토타입 개발 방법론은 소프트웨어 개발 방법론(SDM)의 일종이다.

1.13.JAD : Joint Applied Development 기법의 약자로서, 결합응용설계기법이라고 한다. 단계별 개발 방법인 SDLC 기법과 원형 또는 시제품을 만들고 점진적 수정을 해나가는 프로토타입 기법의 장점을 결합한 개발 방법론이다. ‘재드방법론이라고 한다. 소프트웨어 개발 방법론(SDM)의 일종이다.

1.14.MVC : Model, View, Controller의 약자로서, 소프트웨어를 개발할 때, MVC 구조로 각각을 분리하여 패턴화 한 것을 말한다. 모델(Model)은 응용 프로그램의 규칙, 논리, 데이터 부분을 말한다. (View)는 정보를 시각적으로 표시하는 부분을 말한다. 컨트롤러(Controller)는 사용자로부터 입력을 받아서 모델과 뷰에 명령을 전달하는 부분을 말한다.

1.15.Controller : 컨트롤러는 소프트웨어 개발 시 사용하는 MVC 모델 중 사용자로부터 입력을 받아서 모델(Model)과 뷰(View)에 명령을 전달하는 부분을 말한다.

1.16. Design Pattern : 디자인 패턴이란 소프트웨어 개발에서 반복적으로 등장하는 유사한 과제를 해결하기 위해 과거에 개발했던 프로그래밍 소스나 설계 등을 템플릿으로 만들어 별도로 저장해 두었다가 나중에 재사용할 수 있도록 하는 것을 말한다.

1.17.Template : 템플릿이란 반복 사용 또는 자주 사용하기 위해 미리 만들어 놓은 웹사이트 샘플이나 디자인 또는 프로그램 소스를 말한다. Templet이라고도 쓴다. 객체 지향 프로그래밍(OOP)에서 사용하는 클래스(Class)는 인스턴스(Instance) 생성을 위한 템플릿의 일종이다. ‘탬플릿또는 템플렛이 아니라 템플릿이 올바른 표기법이다.

1.18.Skin : 스킨이란 웹사이트의 디자인 등 화면에 표시되는 부분을 별도로 만들어 둔 뒤 필요한 경우에 불러와서 사용할 수 있도록 한 것을 말한다. 게시판 스킨, 회원 스킨 등 기능별 스킨과 봄 스킨, 여름 스킨 등 디자인 느낌별로 구별한 스킨이 있다.

 

개발방법론 안내
개발방법론

 

2. 아키텍쳐

 

2.1.Architecture : 아키텍처는 시스템의 물리적 또는 기능적 구조를 말한다. 하드웨어 아키텍처와 소프트웨어 아키텍처가 있다. ‘아키텍처’가아키텍쳐’ 아니라 아키텍처가 올바른 표기법이다. 아키텍처를 설계하고 관리하는 사람을 아키텍트(Architect)라고 한다.

2.2.EA : Enterprise Architecture의 약자로서, 전사적 범위에서 기업이나 기관의 정보시스템 구축 및 운영 전략을 제시한 종합 설계도를 말한다. ‘정보기술 아키텍처라고 한다. 시스템 개발 시 EA에 맞게 기획, 설계되어야 하며, 개발 결과물은 EA에 체계적으로 반영되어야 한다. EA를 통해 조직의 정보자원을 체계적으로 관리할 수 있고, 중복 개발을 방지하며, 표준화를 통한 재활용성을 높일 수 있고, 조직 내부의 의사소통을 향상하며,, 중장기적인 정보화 계획을 수립할 수 있다.

2.3.EA 현행화 : EA 프레임워크 구성 요소의 변경사항을 EA에 반영하는 활동을 말한다. EA 현행화를 통해 최신 개발 결과물을 조직 전체에 전파할 수 있다.

2.4.EAMS : Enterprise Architecture Management System의 약자로서, EA 관리 시스템을 말한다. EAMS 화면을 통해 조직의 EA를 한눈에 파악할 수 있고, EA3대 영역인 EA 구축, EA 현행화, EA 활용의 전 과정을 체계적으로 관리할 수 있다.

2.5.IA : Information Architecture의 약자로서, 정보 시스템의 물리적 또는 기능적 구조(architecture)를 말한다. 웹사이트의 경우 메뉴 구조도로 표현한다.

2.6.ITA : Information Technology Architecture의 약자로서, 정보기술 아키텍처를 말한다.

2.7.ITAMS : Information Technology Architecture Management System의 약자로서, 정보기술 아키텍처를 관리하는 시스템을 말한다.

2.8.C/S : 클라이언트 서버 시스템(Client/Server System)의 약자로서, 클라이언트서버로 나누어지는 네트워크 아키텍처를 말한다. 넓은 의미로 인터넷 시스템 전체를 C/S 시스템으로 볼 수도 있지만, 일반적으로 C/S 시스템이란 웹 시스템이 나오기 전에 사용자의 PC에 클라이언트가 설치되어 화면을 처리하고, 서버 컴퓨터에서 데이터를 처리하는 시스템을 말한다.

2.9.Client : 클라이언트란 서버 시스템에 연결된 PC나 스마트폰 등 사용자 측을 말한다. 예를 들어, PC나 스마트폰에 설치된 웹브라우저는 클라이언트 소프트웨어의 일종이다. 사용자가 특정 웹사이트를 방문했을 때 만들어지는 쿠키(Cookie) 정보는 서버 측이 아니라 클라이언트 측에 저장된다. 반대말은 서버(Server) 측이다.

2.10.Server : 서버란 통신망 상에서 다른 컴퓨터에 대하여 회선, 디스크 장치 등에 대한 접속을 제어하는 관리 소프트웨어 또는 컴퓨터를 말한다. 서버의 역할에 따라 웹서버, WAS서버, DB서버, 메일서버, 이미지서버, 네임서버, 백업서버 등이 있다. 서버의 제조사에 따라 IBM 서버, HP 서버, Dell 서버 등이 있다. 서버에서 처리된 정보를 클라이언트 측인 사용자에게 전달한다. 반대말은 클라이언트(Client)이다.

2.11.Lambda Architecture : 람다 아키텍처란 오래된 데이터를 보관하는 배치(batch) 테이블과 실시간 데이터를 가진 실시간 테이블을 서로 조인(JOIN)하여 결괏값을 얻을 수 있도록 구성한 아키텍처이다.

2.12.ROA : Resource Oriented Architecture의 약자로서, 리소스 지향 아키텍처를 말한다.

2.13.SOA : Service Oriented Architecture의 약자로서, 서비스 지향 아키텍처를 말한다.

 

 

3. 아키텍트

 

3.1.Architect : 아키텍트는 시스템을 기획, 설계, 관리, 감독하는 사람을 말한다. 원래 아키텍트는 주택이나 건물을 설계하고 감독하는 건축가를 의미하는 말로써,, 정보시스템을 건축물에 비유하여 아키텍트라는 말을 사용하게 되었다. EA(=Enterprise Architect), BA(=Business Architect), AA(=Applications Architect), DA(=Data Architect), SA(=Solution Architect), SA(=Systems Architect), TA(=Technical Architect), GA(=Global Architect) 등이 있다.

3.2.EA : Enterprise Architect의 약자로서, 전사적 범위에서 기업이나 기관의 정보시스템 구축 및 운영 전략을 수립하고 관리 감독 업무를 수행하는 총괄 아키텍트를 말한다. EA는 해당 기업 또는 기관의 전체적인 전략을 정하는 최고 아키텍트로서, BA, AA, DA, SA, TA 등을 관리한다. EA 업무를 보좌하고 다른 아키텍트들을 관리하기 위해 별도의 GA(=Global Architect)를 두기도 한다.

3.3.BA : Business Architect의 약자로서, 기업의 정보화 전략과 사업 모델을 수립하고 실행하는 비즈니스 아키텍트를 말한다. EABA 역할을 병행하여 수행하기도 한다.

3.4.AA : Applications Architect의 약자로서, 전사적 범위에서 응용 프로그램의 개발을 기획, 설계, 관리, 감독하는 애플리케이션 아키텍트를 말한다. AA는 응용 프로그램 개발에 대한 가이드라인과 표준을 수립하고 개발 결과물을 EA에 반영한다.

3.5.DA : Data Architect의 약자로서, 전사적 범위에서 데이터 관리 정책을 수립하고 표준을 마련하며 데이터 모델링 작업을 수행하는 데이터 아키텍트를 말한다.

3.6.DA : Data Administrator의 약자로서, 데이터 관리자를 말한다. DA는 기업이나 기관의 데이터 표준을 수립하고 관리 정책을 세우는 관리자이다. DBAOracle, MySQL, Cubrid 등 구체적인 DBMS를 다룰 줄 아는 기술직이라면, DA는 이러한 기술을 몰라도 상관없는 관리직에 속한다.

3.7.SA : Solution Architect의 약자로서, 전사적 범위에서 설루션의 개발과 활용에 대한 정책을 수립하고 관리 감독 업무를 수행하는 솔루션 아키텍트를 말한다.

3.8.SA : Systems Architect의 약자로서, 전사적 범위에서 하드웨어 및 소프트웨어 구성 및 운영에 대한 정책을 수립하고 가이드라인을 마련하며 관리 감독 업무를 수행하는 시스템 아키텍트를 말한다.

3.9.TA : Technical Architect의 약자로서, 전사적 범위에서 서버 및 네트워크 등의 구성과 운영에 대한 정책을 수립하고 관리 감독 업무를 수행하는 기술 아키텍트를 말한다.

3.10.GA : Global Architect의 약자로서, 기업이나 기관의 총괄 아키텍트인 EA를 보좌하고 지원하며, AA, DA, SA, TA 등 다른 아키텍트들을 관리하는 역할을 하는 전체 아키텍트를 말한다. EAPM과 유사하고, GAPL과 비슷하다.

 

 

4. 시스템 연계

 

4.1.Interface : 인터페이스란 서로 다른 두 가지를 서로 이어주는 부분을 말한다. 간략히 I/F라고도 쓴다. 사용자 인터페이스(UI), 시스템 인터페이스(SI), 응용 프로그램 인터페이스(API) 등이 있다.

4.2.System Interface : 시스템 인터페이스란 서로 다른 두 가지 이상의 시스템을 서로 연결해 주는인터페이스 부분을 말한다. 간략히 SI라고도 쓴다.

4.3.DB-to-DB : 시스템 연계 방식의 일종으로서, 하나의 DB를 다른 DB로 직접 연계하는 것을 말한다. 가장 빠르고 효과적인 시스템 연계 방식이지만, DB 시스템에 대한 접근 권한 문제와 보안상 문제로 인해 사용상 제약이 있다.

4.4.API : Application Programming Interface의 약자로서, 하나의 응용 프로그램이 다른 응용 프로그램에 요청을 보내고 응답을 받을 수 있도록 만든 인터페이스(I/F)를 말한다. Open API, Private API, Syndication API 등이 있다.

4.5.Open API : 오픈 API는 개발자라면 누구나 사용할 수 있도록 공개된 API를 말한다. 구글이나 네이버의 지도 서비스를 위한 Open API 등이 있다.

4.6.Syndication API : 신디케이션 API란 콘텐츠를 보유하고 있는 웹사이트와 네이버 등 검색엔진 사이에 동기화 규약을 정의하는 API이다. 특정 웹사이트에서 신디케이션 API를 사용할 경우 문서의 생성, 수정, 삭제 현황을 검색엔진에 즉시 알려줄 수 있다. 이에 따라 검색엔진 로봇이 해당 웹사이트에 방문할 때까지 기다리지 않고 신속하게 콘텐츠 변경 현황을 검색 포털 사이트에 반영할 수 있다. 웹개방성을 위한 핵심 기술의 하나이다.

4.7.Web Openness : 웹개방성이란 인터넷 웹사이트에 검색엔진 로봇이 쉽게 접근하여 정보를 수집해 갈 수 있도록 개방하는 것을 말한다. 개인정보보호, 기밀보안 등의 이유로 검색엔진 접근을 배제할 경우, 검색 포털 사이트를 통해 해당 웹사이트에 실린 정보를 찾기 어렵기 때문에 웹개방성이 저하된다. 반대로 Syndication API를 사용할 경우 웹사이트의 수정사항이 즉시 검색 포털 사이트에 전달되어 웹개방성을 극대화할 수 있다.

4.8.JSON : 제이슨은 JavaScript Object Notation의 약자로서, 자바스크립트 등의 언어를 사용하여 인터넷에서 주고받는 자료를 표현하는 표준 형식이다. 데이터 연계를 위해 사용한다. 프로그래밍 언어나 플랫폼에 독립적이므로, C, C++, C#, Java, Javascript, Perl, Python 등 많은 언어에서 이용할 수 있다. 파일 확장자는. json이다..json이다. AJAXXML 방식으로 데이터를 전달하는 반면, JSON속성-으로 구성된 자연스러운 데이터를 전달한다.

4.9.XML : Extensible Markup Language의 약자로서, 홈페이지 제작에 사용되는 확장된 HTML 언어이다. HTML 언어는 미리 정의된 태그만 사용할 수 있지만, XML 언어는 필요한 태그(tag)를 개발자가 새로 정의하여 사용할 수 있다. 다양한 시스템을 연계하여 데이터를 주고받기 위해 XML 기반의 SOAP 또는 REST 방식을 사용한다.

4.10.REST : Representational State Transfer의 약자로서, HTTP를 활용하여 리소스 중심으로 데이터를 연계하는 것을 말한다. RESTful이라고도 한다. 기존의 SOAP 방식과 달리 RESTURL을 직접 호출함으로써 필요한 결괏값을XML 형식으로 가져올 수 있다. ‘레스트라고 읽는다.

4.11.SOAP : Simple Object Access Protocol의 약자로서, HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 통신 프로토콜을 말한다. REST 방식의 데이터 연계 기술이 나옴으로써 사용이 줄어들고 있다. ‘이라고 읽는다.

4.12.AJAX : Asynchronous JavaScript and XML의 약자로서, 비동기식 자바스크립트XML을 뜻한다. Ajax라고 소문자로 쓰기도 한다. 웹페이지 전체를 리로드(reload) 하지(reload) 않고 필요한 부분의 데이터만 서버로 보내고 받아와서 해당 부분만 갱신해 주는 기술이다. 검색어 자동완성 기능 등에 사용된다. ‘에이잭스라고 읽지만, ‘아작스라고 읽는 사람도 있다.

4.13.RSS : Rich Site Summary 또는 Really Simple Syndication의 약자로서, 뉴스나 블로그 등과 같이 업데이트가 빈번한 웹사이트의 정보를 사용자에게 보다 쉽게 제공하기 위하여 만들어진 XML 기반의 콘텐츠 배급 포맷을 말한다.

 

 

5. 연계 설루션

 

5.1.EAI : Enterprise Application Integration의 약자로서, 전사적 응용 프로그램 통합이라고 한다. 기업, 기관, 단체 등에서 사용하는 모든 응용 프로그램을 상호 연계하여 통합하는 것을 말한다. 여러 응용 프로그램을 1:1로 직접 연결하는 Point-to-Point 방식과 중간에 단일 접점인 허브를 두고 1:N 구조로 연결하는 Hub and Spoke 방식이 있다. 메타빌드의 인디고(Indigo) 솔루션, ㈜케이포엠(K4M)의 이 크로스 비즈아이 스위트(eCross BIZi Suite) 설루션 등이 있다.

5.2.ESB : Enterprise Service Bus의 약자로서, 버스 방식을 이용하여 서로 다른 여러 시스템을 연계하는 것을 말한다. EAI 방식의 단점을 개선하였다. 메타빌드의 인디고(Indigo)와 메심(MESIM) 솔루션, 티맥스소프트의 프로버스(ProBus), 케이포엠(K4M)의 비즈위버 웹서비스(BizWeaver WebServices) 설루션 등이 있다.

5.3.Bus : 버스란 컴퓨터 내외부의 각종 기기들 사이에서 데이터를 전송하기 위한 통로를 말한다. 버스라인(Bus Line)이라고도 한다. 데이터 전송 통로의 개수를 최소화한 직렬버스(Serial Bus)와 여러 개의 통로를 만들어 데이터 전송을 동시에 처리하는 병렬 버스(Parallel Bus)가 있다. CPU와 비디오카드 등 컴퓨터 내부 장치들 사이에서 데이터를 주고받는 내부 버스(Internal Bus)프린터, USB 메모리 등 컴퓨터 주변기기와 데이터를 주고받기 위한 외부 버스(External Bus)가 있다. 버스 방식을 이용하여 여러 시스템 간 데이터 연계를 구현하는 것을 ESB 연계라고 한다.

5.4.Metabuild : 메타빌드1998년 설립된 한국의 소프트웨어 개발 회사(SI 업체)이다. 대표이사는 조풍연이다. 시스템 연계 설루션인 인디고(Indigo)와 메심(MESIM)을 개발했다. 2020년 기준 직원은 170명이다. 매출은 2015년 131억 원, 2016년 146억 원, 2017년 153억 원, 2018년 184억 원, 2019년 252억원이다. 본사는 서울특별시 서초구에 있다.