소프트웨어 공학에서 프론트 엔드와 백엔드라는 용어는 소프트웨어의 presentation layer (프론트 엔드)과 data access layer (백엔드) 또는 물리구조 또는 하드웨어 사이의 관심사를 분리하는 것을 의미하나요?
프런트엔드와 백엔드
소프트웨어 공학에서 프론트 엔드와 백엔드라는 용어는 소프트웨어의 presentation layer (프론트 엔드)과 data access layer (백엔드) 또는 물리구조 또는 하드웨어 사이의 관심사를 분리하는 것을 의미한다. 클라이언트 - 서버 모델에서 클라이언트는 일반적으로 프런트 엔드로 간주되며 서버에서 실제로 presentation 작업이 수행되는 경우에도 일반적으로 서버가 백 엔드로 간주된다.
컴퓨터 과학자
컴퓨터 과학자들은 일반적으로 소프트웨어 측면의 컴퓨터 시스템을 다루며, 하드웨어 측면에서는 (서로 겹치는 분야가 있기는 하지만) 컴퓨터 공학자가 주로 초점을 둔다. 컴퓨터 과학자들이 그들의 노고와 연구를 특정 분야(알고리즘과 자료 구조 개발 및 설계, 소프트웨어 공학, 정보 이론, 데이터베이스 이론, 계산 복잡도 이론, 인간-컴퓨터 상호작용, 수치 해석, 프로그래밍 언어 이론, 컴퓨터 그래픽스, 컴퓨터 비전)에 중점을 둘 수도 있으나, 그들의 기본 목적은 이러한 다른 분야들을 바탕으로 한 컴퓨팅의 이론적 연구이다. 컴퓨터 지원 설계
중간급 소프트웨어는 최종 사용자에게 매개 공간을 더 쉽게 통합되었다: 더 직관적인 기능 (스케치업)을 통합한 것은 매개 특징 (백터웍스)을 지니는 3D 덤프 공간으로된 양쪽 세상의 최고가 되거나 상대적으로 적은 스텝 (시네마4D)에서 매우 사실같은 뷰 화면을 만든다. 기술예측
기술예측(技術豫測 ; technological forecasting)이란 기술의 장래 모습을 양적, 질적, 내용적으로 예측하는 것을 말한다. 여기서 기술이란 과학과 밀접하게 결합된 기술 즉 과학기술을 의미하며, 예측은 장래 문제에 관해서 비교적 고도의 신뢰수준에 근거를 둔 확률적 기술로 정의한다. 렌츠는 기계의 장래의 수량치와 성능을 측정하는 것이라 정의하고 이를 기계라는 한정된 좁은 범위에 국한시켰다. 얀쉬는 장래의 기술이전에 관하여 예측하는 것이라 정의하고, 기술을 물질, 생명 및 행동과학의 내용을 의식적으로 응용하는 넓은 영역, 즉 의학, 농업, 경영, 하드웨어, 소프트웨어에까지 확대하고 있다. 기술이전은 얀쉬의 정의를 따르면 공간내에서의 이전 과정을 의미하며, 발명 · 발견에서 개발까지의 수직단계와 응용에서 마케팅, 지식 보급 까지의 수평단계로 구성된다고 말하고 있다. 디스패치 테이블
컴퓨터 과학에서 디스패치 테이블 ()은 메서드들을 가리키는 포인터들이나 메소드들의 테이블이다. 이런 테이블을 사용하는 것은 객체 지향 프로그래밍에서 늦은 바인딩을 구현하는 기본적인 기술이다. 아파치 슬링
Sling은 "웹 응용 프로그램" 개발의 웹 측면에 중점을 두고 개발 패러다임을 통해 진정한 웹 응용 프로그램의 직관적인 RESTful 개발을 제시한다는 점에서 다른 많은 웹 응용 프로그램 프레임 워크와 차이가 있다. 다른 프레임 워크는 응용 프로그램 개발에 더 중점을 두고 있으므로 Sling을 이상적으로 확장 할 수 있습니다. 전처리기
컴퓨터 과학에서 전처리기(前處理器) 또는 프리컴파일러)는 입력 데이터를 처리하여 다른 프로그램에 대한 입력으로서 사용되는 출력물을 만들어내는 프로그램이다. 여기서 출력물이란 전처리된 형태의 입력 데이터를 말하며 컴파일러와 같은 차후 프로그램들에 쓰인다. 처리할 양과 종류는 전처리기의 본성에 따라 다르며 어떠한 전처리기들은 상대적으로 단순한 문자 치환 및 매크로 확장만 할 수 있는 반면 다른 전처리기들은 성숙한 프로그래밍 언어의 기능을 하기도 한다. 소프트웨어 개발자
소프트웨어 개발자는 소프트웨어 개발 작업에 종사하는 사람을 말한다. 좁게는 소프트웨어 설계와 코딩, 넓게는 프로젝트 관리 업무를 수행하는 사람을 포함한다. 개별 프로그램 작업을 넘어서 응용 프로그램의 수준에서 전반적인 프로젝트에 기여하는 사람을 뜻하기도 한다.
비슷한 의미로 쓰는 다른 용어로는 소프트웨어 분석가와 소프트웨어 기술자가 있다. 랜 스위칭
IEEE가 스위칭 작업을 설명하기에 유용한 계급적 용어를 만들었는데, 서브네트워크 간에 패킷 분담 능력이 없는 네트워크 장치는 엔드 시스템(E.S)이라고 부르고, 패킷 분담을 가진 경우에는 인터미디에이트 시스템(I.S)이라고 부르고 있다. I.S는 그들의 라우팅 도메인 안에서 통신을 분할시키고, 분할된 라우팅 도메인들 간에 통신을 한다. 라우팅 도메인은 공동 관리 권한에 따라 하나의 인터네트워크의 부분으로써 간주하고 관리 지침을 준수한다. 라우팅 도메인은 매우 능동적인 시스템으로 간주된다. 리버스 엔지니어링
리버스 엔지니어링() 또는 역공학(逆工學)은 장치 또는 시스템의 기술적인 원리를 그 구조분석을 통해 발견하는 과정이다. 이것은 종종 대상(기계 장치, 전자 부품, 소프트웨어 프로그램 등)을 조각내서 분석하는 것을 포함한다. 그리고 유지 보수를 위해, 또는 같은 기능을 하는 새 장치를 원본의 일부를 이용하지 않고 만들기 위해 대상의 세부적인 작동을 분석하는 것을 포함한다. 디스크 섹터
기하학적으로 섹터라는 용어는 부채꼴을 뜻하며, 기초적인 세 가지 부분으로 이루어지는데, 여기에는 섹터 헤더, 데이터 영역, 오류 정정 코드(ECC)가 있다. 섹터 헤더는 디스크와 컨트롤러가 사용하는 정보를 포함하고 있으며, 이 정보에는 동기(sync) 바이트, 주소 식별 정보, 결함(flaw) 플래그, 헤더 패리티 바이트가 들어있다. 헤더에는 데이터 영역의 의존이 불가능할 경우 사용되는, 대안이 되는 주소를 포함할 수 있다. 주소 식별 정보는 드라이브의 동작을 통해 정확한 위치에 읽기/쓰기 헤드를 조준할 수 있도록 보장하기 위해 사용된다. 데이터 영역에는 기록된 사용자 데이터를 담고 있는 반면, ECC 필드는 데이터 필드에 기반한 코드를 담고 있어서 데이터에 유입될 수 있는 오류를 검사, 정정하는데 사용된다. 소프트웨어 품질
소프트웨어 공학에서 소프트웨어 품질()은 비즈니스 문맥에서 품질이 정의된 곳에 존재하는, 두 개의 서로 관련되면서도 구별된 개념을 가리킨다. 디자인 싱킹
디자인 싱킹은 모델이나 이론을 만들기 위하여 가설을 제기하고 피드백 메커니즘을 통하여 상호적으로 지속하는 과학적 방법과 크게 다르지 않다. 과학적 방법에서의 피드백은 대부분 관찰되는 증거인 반면, 디자인 싱킹 피드백 정보는 미래에 형성될 소비자의 제품에 대한 필요에 의해 제공된다는 점에서 다르다. 대부분의 수학이나 물리학 이론의 사례에서는 이론의 내부적 견고함이나 "아름다움" 또한 피드백 메커니즘에서 한 역할을 수행하지만 디자인 싱킹은 알려지지 않은 상황과 대안적 해결책을 발견하기 위하여 현재 상황에서 알려지고 애매한 측면을 식별하고 조사한다. 디자인 싱킹은 상호적이기 때문에 중간적인 "해결책"은 문제와 해결책이 공진화하는 상태에서 대안적 경로의 잠재적 출발점이다. REST
엄격한 의미로 REST는 네트워크 아키텍처 원리의 모음이다. 여기서 '네트워크 아키텍처 원리'란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다. 간단한 의미로는, 웹 상의 자료를 HTTP위에서 SOAP이나 쿠키를 통한 세션 트랙킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다. 이 두 가지의 의미는 겹치는 부분과 충돌되는 부분이 있다. 필딩의 REST 아키텍처 형식을 따르면 HTTP나 WWW이 아닌 아주 커다란 소프트웨어 시스템을 설계하는 것도 가능하다. 또한, 리모트 프로시저 콜 대신에 간단한 XML과 HTTP 인터페이스를 이용해 설계하는 것도 가능하다. 프런트엔드와 백엔드
일반적으로 프런트엔드(front-end)와 백엔드(back-end)라는 용어는 프로세스의 처음과 마지막 단계를 가리킨다. ‘프런트엔드’는 사용자로부터 다양한 형태의 입력을 받아 ‘백엔드’가 사용할 수 있는 규격을 따라 처리할 책임을 진다. ‘프런트엔드’를 ‘백엔드’로 연결하는 것은 인터페이스의 일종이다. 컴퓨터 프로그래밍
서로 다른 프로그래밍 언어는 다른 프로그래밍 유형을 지원하기 때문에, 분야에 따라 적합한 언어가 존재한다. 또한 언어마다 프로그래머가 알고리즘을 구현할 때 그 구체적인 방법과 수준의 차이가 있기 때문에, 사용의 편의성과 성능 사이에서 적절한 타협이 이루어진다. 또한 프로그래밍의 언어 중 하나이며 컴퓨터에게 명령을 전달할 수 있다.
소프트웨어는 컴퓨터 프로그램과 데이터를 총칭하는 용어이다. 이에 수반한 문서 자료는 소프트웨어의 필수 요소로 간주되지만, 실제 프로그래밍 과정에 포함되는 것은 아니다. 소프트웨어
컴퓨터 소프트웨어는 컴퓨터 하드웨어의 반대 의미로, 컴퓨터 하드웨어는 소프트웨어가 실행되고 저장되는 물리적 장치(물리 구조)이다. 하드 링크
컴퓨팅에서 하드 링크(hard link)는 파일 시스템의 파일의 이름과 연결되는 디렉터리 엔트리이다. 모든 디렉터리 기반의 파일 시스템들은 각 파일의 원래 이름을 제공하는 (적어도) 하나의 하드 링크가 있어야 한다. "하드 링크"라는 용어는 동일한 파일에 대해 일반적으로 하나 이상의 하드 링크를 허용하는 파일 시스템에만 사용된다. 역컴파일러
첫 번째 역컴파일 단계는 입력된 기계어나 중간 언어 프로그램의 바이너리 형식을 로드하고 분석하는 것이다. 이것은 펜티엄, 파워PC 같은 아키텍처와 엔트리 포인트 같은 입력된 프로그램의 기본 사실들을 발견하는 것이 가능해야 한다. 많은 경우에 C의 codice_1 함수(유저가 쓴 코드의 시작점) 같은 것을 찾는 것이 가능해야 한다. 이것은 런타임 초기화 코드를 역컴파일하지 않고 배제해야 한다. 만약 심볼 테이블과 디버그 데이터가 사용 가능하다면 이것들 또한 로드되어야 한다. 프론트엔드는 코드와 링크된 라이브러리들을 식별할 수 있다. 이것은 라이브러리 인터페이스를 제공할 수 있다. 만약 사용된 컴파일러를 결정할 수 있다면 코드 관용구들을 식별하는데 유용한 정보가 될 것이다. Salted Challenge Response Authentication Mechanism
채널 바인딩 용어는 애플리케이션 계층을 'bind' 하는 중간자 공격 방지 전략을 묘사하는데, 이는 하위 (대부분 암호화 된) 계층에 상호 인증을 제공하여 연결의 양측 종단점이 동일하다고 보장한다. 채널 바인딩에는 두가지 일반적인 방향이 있습니다: "unique" 와 "endpoint" 채널 바인딩. 첫째는 특정한 연결이 사용되는것이고, 두번째는 종단점이 같다는 것이다. 마이크로소프트 블렌드
마이크로소프트 블렌드 포 비주얼 스튜디오(, 이전 이름: Microsoft Expression Blend/마이크로소프트 익스프레션 블렌드)는 웹 애플리케이션과 데스크톱 응용 프로그램을 위한 그래픽 인터페이스를 작성할 목적으로 마이크로소프트가 개발하여 판매하는 사용자 인터페이스 디자인 도구이다. 윈도 프레젠테이션 파운데이션과 실버라이트 응용 프로그램의 XAML 기반의 인터페이스를 디자인하는 상호 작용적인 위지위그 프론트엔드이다. 과거에는 마이크로소프트 익스프레션 스튜디오 제품군의 응용 프로그램들 가운데 하나였다. 소프트웨어 구조
소프트웨어 구조(software architecture)는 소프트웨어의 구성요소들 사이에서 유기적 관계를 표현하고 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙이다. 소프트웨어 유지보수
소프트웨어 유지보수()는 소프트웨어 공학에서 배급된 이후 결함을 수정하고 성능이나 기타 특성을 개선하는 소프트웨어 제품의 수정을 말한다. 컴포넌트 기반 소프트웨어 공학
컴포넌트 기반 소프트웨어 공학(Component-based software engineering, CBSE), 컴포넌트 기반 개발(component-based development, CBD)은 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 만드는 소프트웨어 개발방법론이다. 기업들은 쇼핑바구니, 사용자 인증, 검색엔진, 카탈로그 등 상업적으로 이용 가능한 컴포넌트를 결합하여 그들의 전자상거래 응용 프로그램을 개발하는 컴포넌트 기반 개발을 사용한다. 컴퓨팅 플랫폼
플랫폼은 응용 소프트웨어를 실행하기 위해 쓰이는 하드웨어와 소프트웨어의 결합이다. 플랫폼은 하나의 운영 체제 또는 컴퓨터 아키텍처라고 단순히 말할 수 있으며 그 두 가지를 통칭해서 말할 수도 있다. 직렬 ATA
SATA 물리 계층 위에는 링크 계층 및 트랜스포트 계층이 존재한다. 이 상위 계층들은 설정 및 데이터 오퍼레이션들 순차적인 패킷으로 변환한다. 이 패킷은 SATA이 연결되면 전송된다. 응용 계층에서는 SATA는 ATA의 동작 모델을 그대로 이용하였다. 작업 레지스터 파일(읽기/쓰기 PIO 및 DMA를 요청하기 위해 쓰임)도 같은데, 모든 SATA 호스트 구현은 이것을 반드시 구현해야 한다. 각 제조사별로는 옵션으로 사용할 수 있게 해 두었다. (이를테면, 시뮬레이티드 RAID), 하지만 이러한 기능들을 이용하려면 특별한 장치 드라이버를 써야 한다. 오프셋 (컴퓨터 과학)
컴퓨터 과학에서 배열이나 자료 구조 오브젝트 내의 오프셋(offset)은 일반적으로 동일 오브젝트 안에서 오브젝트 처음부터 주어진 요소나 지점까지의 변위차를 나타내는 정수형이다. 클라우드 컴퓨팅
SaaS 모델에서 사용자들은 응용 소프트웨어와 데이터베이스에 대한 접근 권한을 가진다. 클라우드 제공자들은 응용 프로그램을 실행하는 인프라스트럭처와 플랫폼을 관리한다. SaaS는 "주문형 소프트웨어"(on-demand software)를 가리키기도 하며 가격 정책은 일반적으로 종량제(pay-per-use) 기반이거나 구독 비용 기반이다.[70] SaaS 모델에서 클라우드 제공자들은 클라우드에 응용 소프트웨어를 설치, 운영하며 클라우드 사용자들은 클라우드 클라이언트의 소프트웨어를 접근한다. 클라우드 사용자들은 이러한 응용 프로그램들이 실행하는 클라우드 인프라스트럭처와 플랫폼을 관리하지 않는다. 이로 말미암아 클라우드 사용자 자신의 컴퓨터에 응용 프로그램을 설치하고 실행할 필요가 없으므로 유지보수와 지원이 단순하게 된다. 클라우드 응용 프로그램들은 확장성 관점에서 다른 응용 프로그램들과 차이가 있는데, 확장성은 변화하는 작업 수요를 충족하기 위해 런타임 중에 태스크들을 여러 개의 가상 머신으로 복제함으로써 수행할 수 있다.[71] 로드 밸런서들은 가상 머신들의 집합을 통해 작업을 분산시킨다. 이 과정은 오직 하나의 단일 액세스 포인트를 바라보는 클라우드 사용자에게는 투명하게 보인다. 수많은 클라우드 사용자들을 수용하기 위해 클라우드 애플리케이션들은 멀티테넌트일 수 있으며, 즉 어떠한 머신이라도 하나 이상의 클라우드 사용자 조직에 서비스를 제공할 수 있다는 것을 뜻한다. 어도비 애프터 이펙트
각 그림, 영상은 타임라인 위에 레이어로 처리되며, 이는 비선형 영상 편집이 하는 바와 비슷하다. 그러나 애프터 이펙트와 비선형 영상 편집의 한 가지 차이점은 애프터 이펙트는 레이어 지향인 반면, 비선형 영상 편집은 일반적으로 트랙 지향이라는 것이다. 다시 말해, 애프터 이펙트에서 각 개별 객체는 저만의 트랙을 차지하지만 비선형 영상 편집은 오버랩을 허용하지 않는 한 각 객체가 같은 트랙을 차지할 수 있는 시스템을 사용한다. 이러한 트랙 지향 시스템은 편집하기에 알맞고, 프로젝트 파일을 훨씬 더 정밀하게 관리할 수 있다. 애프터 이펙트가 채용한 레이어 지향 시스템은 확장 효과 작업과 키 프레임 처리에 알맞다. 인터페이스 (컴퓨팅)
소프트웨어 인터페이스는 여러 종류의 여러 수준의 인터페이스를 가리킬 수 있다. 즉, 운영 체제는 하드웨어와 인터페이스(접속)할 수 있다. 이 운영 체제에서 실행되는 응용 소프트웨어나 프로그램은 스트림을 통해 상호작용할 수 있으며 객체 지향 프로그램들의 경우 응용 프로그램 내의 오브젝트들은 메소드를 통해 상호작용해야 할 수 있다. 상속 (객체 지향 프로그래밍)
"파생 클래스" 또는 후계자 클래스, 자식 클래스라고도 불리는 서브클래스는 하나 이상의 다른 클래스(수퍼클래스, 기반 클래스, 또는 부모 클래스)로부터 하나 이상의 언어 엔티티를 상속하는 모듈러, 파생 클래스이다. 클래스 상속의 의미는 언어에 따라 달라지지만, 일반적으로 서브클래스는 수퍼클래스의 인스턴스 변수들과 멤버 함수들을 자동적으로 상속한다. 어떤 언어들은 다른 구조의 상속을 지원하기도 한다. 예를 들어, 에펠에서 클래스의 사양을 정의하는 계약도 후계자가 상속받는다. 수퍼클래스는 특정한 서브클래스가 상속하고 수정, 보완할 수 있는 공통 인터페이스와 기본적인 기능을 수립한다. 서브클래스에 의해 상속된 소프트웨어는 서브클래스에서 재사용된다. 클래스의 인스턴스에 대한 참조는 사실 그것의 서브클래스 중 하나를 참조하는 것이다. 참조되는 객체의 실제 클래스를 컴파일 타임에 예측하는 것은 불가능하다. 수많은 다른 클래스의 객체 멤버 함수를 호출하는데에는 똑같은 인터페이스가 사용된다. 서브클래스는 수퍼클래스의 함수를 같은 메소드 시그니처를 공유해야 하는 완전히 새로운 함수로 대체할 수도 있다. 소프트웨어 빌드
컴퓨터 소프트웨어 분야에서 소프트웨어 빌드(software build)는 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정을 말하거나 그에 대한 결과물을 일컫는다. 소프트웨어 빌드에 있어 가장 중요한 단계들 가운데 하나는 소스 코드 파일이 실행 코드로 변환되는 컴파일 과정이다. 항공전자 소프트웨어
항공전자 소프트웨어는 항공기 구성품에 탑재하기 때문에 안전성과 신뢰성을 요구하는 임베디드 소프트웨어를 말한다. 기존에 임베디드 소프트웨어와 차이는 안전성을 위해 정해진 법칙과 최적화된 소프트웨어 개발 프로세스가 있는 점이다. 서드 파티 개발자
서드 파티 개발자(3rd party developer)또는 써드 파티는 일반적으로 하드웨어 생산자와 소프트웨어 개발자의 관계를 나타내는 용어로 사용된다. 세션 (컴퓨터 과학)
세션(session)은 컴퓨터 과학에서, 특히 네트워크 분야에서 반영구적이고 상호작용적인 정보 교환이며 둘 이상의 통신 장치나 컴퓨터와 사용자 간의 대화나 만남을 의미하는 다이얼로그(dialogue)이다. 자동 줄 바꿈
워드 프로세서에서는 문단을 나눈다는 개념에서 이러한 방식을 하드 리턴(hard return)으로, 줄을 나눈다는 개념에서 소프트 리턴(soft return)으로 부른다. 간반 (소프트웨어 개발)
간반()은 소프트웨어 개발 프로세스 중의 하나로, 개발자들에게 과도한 부하를 주지 않으면서 적시에 상품을 출시하도록 하는 개발 방법이다. 크게는 간반 체제와 간반 방식으로 나눌 수 있다. 부트스트랩 (프론트엔드 프레임워크)
부트스트랩은 기본 요소 외에도 사용자들이 자주 사용하는 요소들을 포함한다. 예를 들면, 각종 버튼들, 드롭다운 메뉴, 탭, 라벨, 상태 바 등이 있다. 클래스 (컴퓨터 과학)
클래스는 전부 혹은 일부를 그 클래스 특성으로부터 상속받는 서브클래스를 가질 수 있으며, 클래스는 각 서브클래스에 대해 수퍼클래스가 된다.
서브클래스는 자신만의 메소드와 변수를 정의할 수도 있다.
이러한 클래스와 그 서브클래스 간의 구조를 "클래스 계층(hierarchy)"이라 한다. 컴퓨터 프로그램
프로그램은 프로그래밍된 결과물을 뜻하고, 소프트웨어는 하드웨어의 반대 개념으로서의 의미이지만, 일반적으로는 같은 의미로 쓰인다. 다만, 엄밀한 의미에서는 아래와 같은 차이가 있다. 컴퓨터 구조
하드웨어 부품을 골라서 상호적으로 연결하여 기능, 성능, 비용적인 목표를 충족하는 컴퓨터를 만들어 내는 과학과 기술로 정의될 수도 있다. 서드 파티 개발자
하드웨어 생산자는 퍼스트 파티(first party)로, 소프트웨어 개발자는 서드 파티(third party)로 불리기도 한다. 하드웨어 생산자가 직접 소프트웨어를 개발하는 경우는 퍼스트 파티, 하드웨어 생산자인 모기업과 자사간의 관계에서의 소프트웨어 개발자라면 보통 세컨드 파티라고 부르며 하드웨어 생산자와 직접적인 관계없이 소프트웨어를 개발하는 회사를 서드 파티라고 부른다. 또는 하드웨어 생산자인 모기업과 자사간의 관계 또는 하청관계등 전혀 관련없는 소프트웨어 개발자를 써드 파티라고 부르고 제품의 사용자를 세컨드 파티(2nd party) 그리고 하드웨어 생산자인 모기업과 자사간의 관계 또는 하청관계등 여타의 관계하에 소프트웨어를 개발하는 업체를 퍼스트파티라고 표현하는등 업체별 분야별로 약간씩 서로 다른 사례나 관례를 가지고 있다. 리팩터링
리팩터링()은 소프트웨어 공학에서 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻한다. 주로 가독성을 높이고 유지보수를 편하게 한다. 버그를 없애거나 새로운 기능을 추가하는 행위는 아니다. 사용자가 보는 외부 화면은 그대로 두면서 내부 논리나 구조를 바꾸고 개선하는 유지보수 행위이다. 원자성 (데이터베이스)
궁극적으로, 어떤 애플리케이션 레벨의 구현은 운영체제 기능에 의존한다. 여기서 운영체제는 시스템 자원을 다시 전환하려는 다른 소프트웨어나 자원을 이용할 수 없는 상태가 발생(예. 전원 정지)에 대비해 전문화된 하드웨어를 차례로 사용한다. (pre-emptive multitasking) 관점 지향 프로그래밍
컴퓨팅에서 관점 지향 프로그래밍(, AOP)은 횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. 코드 그 자체를 수정하지 않는 대신 기존의 코드에 추가 동작(어드바이스)을 추가함으로써 수행하며, "함수의 이름이 'set'으로 시작하면 모든 함수 호출을 기록한다"와 같이 어느 코드가 포인트컷(pointcut) 사양을 통해 수정되는지를 따로 지정한다. 이를 통해 기능의 코드 핵심부를 어수선하게 채우지 않고도 비즈니스 로직에 핵심적이지 않은 동작들을 프로그램에 추가할 수 있게 한다. 관점 지향 프로그래밍은 관점 지향 소프트웨어 개발의 토대를 형성한다. 정보처리이론
정보처리이론은 컴퓨터의 하드웨어, 소프트웨어의 용어를 사용해서 인간의 인지과정과 컴퓨터의 정보처리 과정을 비교하고 있으며, 뇌와 신경계를 하드웨어로, 문제해결을 위한 계획이나 책략 등을 소프트웨어로 볼 수 있다. 리버스 프록시
리버스 프록시()는 컴퓨터 네트워크에서 클라이언트를 대신해서 한 대 이상의 서버로부터 자원을 추출하는 프록시 서버의 일종이다. 그런 다음 이러한 자원들이 마치 웹 서버 자체에서 기원한 것처럼 해당 클라이언트로 반환된다. 관련 클라이언트들을 위해 임의의 서버에 접속하는 중간 매개체인 포워드 프록시(forward proxy)와는 반대로, 리버스 프록시는 관련 서버들을 위해 임의의 클라이언트가 해당 서버에 접속하는 중간 매개체이다. 룩 앤드 필
소프트웨어 디자인에서 룩 앤드 필은 그래픽 사용자 인터페이스의 관점에서 쓰이며 색, 모양, 레이아웃, 글꼴(룩)뿐 아니라 단추, 상자, 메뉴와 같은 동적인 요소의 동작(필)을 수반하는 디자인의 측면을 이루고 있다. 룩 앤드 필은 또한 API의 관점을 가리키기도 하며, 이 API의 관점 중 대부분은 기능적인 특성과 관련되어 있지는 않다. 룩 앤드 필이라는 용어는 소프트웨어와 웹사이트 두 곳에서 쓰인다. 하드웨어 가속
보통, 프로세서는 연속적이며 함수는 하나씩 실행된다. 다양한 기술들은 성능을 개선하는 데에 사용되고 하드웨어 가속은 그 기능들 가운데 하나이다. 하드웨어와 소프트웨어의 주된 차이는 "동시 발생"으로, 하드웨어가 소프트웨어보다 훨씬 빠르게 해 준다. 하드웨어 가속은 계산을 많이 하는 소프트웨어 코드를 위해 고안된 것이다. 하드웨어 가속은 사소한 기능 장치부터 MPEG2와 같은 커다란 기능 블록까지 다양하다. 멀티테넌시
소프트웨어 멀티테넌시()라는 용어는 소프트웨어 아키텍처의 하나를 가리키며, 여기에서 하나의 소프트웨어 인스턴스가 한 대의 서버 위에서 동작하면서 여러 개의 테넌트(tenant)를 서비스한다. 여기에서 테넌트란 소프트웨어 인스턴스에 대해 공통이 되는 특정 접근 권한을 공유하는 사용자들의 그룹이다. 멀티테넌트 구조에서 응용 소프트웨어는 데이터, 구성, 사용자 관리, 테넌트 개별 기능 및 비기능 속성을 포함하여, 모든 테넌트에게 인스턴스의 일부분을 단독적으로 제공하기 위해 설계되어 있다. 멀티테넌시는 개개의 소프트웨어 인스턴스들이 각기 다른 테넌트를 위해 운영되는 멀티인스턴스 구조와는 상반된다. 미리 보기
미리 보기(Preview)는 컴퓨터 환경과 무대 예술 환경으로 용도가 나뉜다. 클라우드 컴퓨팅
클라우드 엔지니어링은 클라우드 컴퓨팅에 대한 공학적 응용이다. 클라우드 컴퓨팅 시스템의 구상, 개발, 운영, 유지보수를 할 때 상용화, 표준화, 관리에 대해 표면적으로 걱정하는 부분들에 대한 체계적인 접근을 가져다준다. 시스템, 소프트웨어, 웹, 성능공학, 정보, 보안, 플랫폼, 위험, 품질 공학과 같은 다양한 분야의 기여를 아우르는 종합적인 방식이다. OLE DB
OLE DB는 데이터 저장을 데이터소스, 세션, 명령어, 열 집합을 포함한 추상 집합을 통해 접근해야 하는 응용 프로그램과 따로 떼어놓는다. 그 까닭은 다른 응용 프로그램들이 여러 종류와 원천의 데이터에 접근해야 하며 기술적인 측면에서 어떻게 동작하는지를 알 필요는 없기 때문이다. OLE DB는 개념적으로 소비자(consumer)와 제공자(provider)로 구분되어 있다. 소비자는 데이터에 접근해야 하는 응용 프로그램이며 제공자는 인터페이스를 추가하는 소프트웨어 구성 요소이다. 이로써 데이터는 소비자에게 전달된다. OLE DB는 마이크로소프트 데이터 액세스 구성 요소(MDAC) 스택의 일부이다. MDAC는 마이크로소프트 기술들을 한데 모아 놓은 것으로, 프로그래머가 거의 모든 데이터 저장소에 접근하는 통일되고 포괄적인 방법을 허용해 주는 프레임워크로서 함께 상호작용을 할 수 있게 도와 준다. 텍스트 파일과 스프레드시트로 오라클 SQL 서버, Sybase ASE와 같은 복잡한 데이터베이스를 통하여 이러한 단순한 데이터 저장소를 접근할 수 있게 OLE DB 제공자를 만들 수 있다. 또, 전자 우편 시스템과 같은 계층 데이터저장소로의 접근을 제공할 수 있다. 매시업 (웹 개발)
매시업()은 웹으로 제공하고 있는 정보와 서비스를 융합하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 것을 말한다. 소프트웨어
"소프트웨어"라는 용어는 1957년에 존 터키(John W. Tukey)가 처음 사용한 용어이다. 일상적으로 이 용어는 응용 소프트웨어의 의미로 자주 쓰인다. 컴퓨터 과학과 컴퓨터 공학에서 "컴퓨터 소프트웨어"는 컴퓨터 시스템, 프로그램, 데이터에 의해 처리된 모든 정보를 말한다. 오픈스택
Designate은 DNS를 관리하는 멀티테넌트 REST API이다. 이 구성 요소는 서비스로서의 DNS를 제공하며 PowerDNS, BIND를 포함한 수많은 백엔드 기술들과 호환된다. 하나의 테넌트마다 DNS 존을 관리하기 위해 기존의 DNS 서버와 상호 작용하는 등의 목적으로 DNS 서비스를 제공하지는 않는다.[30] 프로토콜 데이터 단위
패킷 교환 데이터 네트워크에 대한 글 내에서, PDU는 서비스 데이터 단위(SDU)와 관련지어 이해하면 용이하다. 네트워크의 특징이나 서비스는 별개의 “계층” 내에서 주어진다. 예를 들어 전선, 섬유 등을 통해 0과 1로 이루어진 신호를 보내는 것은 물리 계층에 의해, 0과 1의 데이터를 수집하여 와이어의 적절한 곳에 도달하도록 하는 것은 데이터 링크 계층에 의해, 이러한 데이터들을 연결된 네트워크로 전송하는 것은 네트워크 계층에 의해, 그리고 적절한 소프트웨어 애플리케이션의 데이터를 목적지까지 보내는 것은 전송 계층에 의해 행해진다. TWAIN
TWAIN(Standard for image acquisition devices, 트웨인)은 이미지 스캐너 및 디지털 카메라와 같은 디지털 이미징 장치인 하드웨어와 응용 프로그램인 소프트웨어 간의 통신을 규제하는 응용 프로그래밍 인터페이스(API) 및 통신 프로토콜이다. 후킹
후킹()은 소프트웨어 공학 용어로, 운영 체제나 응용 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법, 기술이나 행위를 말한다. 이때 이러한 간섭된 함수 호출, 이벤트 또는 메시지를 처리하는 코드를 후크()라고 한다. 인터페이스 (컴퓨팅)
인터페이스(interface)는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다. 즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미한다.
컴퓨팅에서 컴퓨터 시스템끼리 정보를 교환하는 공유 경계이다. 이러한 교환은 소프트웨어, 컴퓨터 하드웨어, 주변기기, 사람 간에 이루어질 수 있으며, 서로 복합적으로 이루어질 수도 있다.
터치스크린과 같은 일부 컴퓨터 하드웨어 장치들은 인터페이스를 통해 데이터를 송수신할 수 있으며 마우스나 마이크로폰과 같은 장치들은 오직 시스템에 데이터를 전송만 하는 인터페이스를 제공한다. 기본값
응용 소프트웨어에서 기본값을 사용할 경우 다음과 같은 두 가지 목적을 달성 할 수 있는데, 이러한 두 가지 목적은 종종 서로 충돌을 일으키기도 한다.
개개인의 성별과 같이, 주로 가장 많이 선택하는 옵션이 정해져 있지 않거나 다른 정보로 확인이 불가능 한 경우에는 기본값이 제공되지 않아야 한다. 하지만 어떤 소프트웨어에서는 기본값이 꼭 제공되어야 하는 경우도 있으므로 주의해야 한다. 프런트 오피스
프런트 오피스(Front office)는 호텔 등에서 가장 먼저 손님을 접하는 공간을 의미한다. 의미가 커져 회사 등의 운영 부서 전체를 뜻하기도 한다. 버전 관리
소프트웨어 엔지니어링에서는 일반적인 소프트웨어 소스 코드만을 관리하는 내역을 주로 버전 관리라고 정의하게 된다. 일반적으로 산업 공학이나 이전 생산 기반 제조 공학 등에서 소프트웨어 쪽으로 넘어오는 학문적 관심에 의해 이전 생산 공학에서 사용하던 개념을 가져오게 되었고, 그에따라 버전 관리(Software Version Management)와 형상 관리(Software Configuration Management)의 개념들이 따라왔다고 볼 수 있겠다. 디버거
몇몇 유명한 디버거들은 단지 CLI로 구현된다. 개발자들은 GUI를 통해 더 쉽고 효율적인 디버깅을 고려한다. 이것은 시각적인 프론트-엔드의 이유이다. 대부분의 GUI 디버거 프론트-엔드가 특정한 디버거를 대상으로 삼는데 반해, 어떤 것들은 여러 CLI 디버거들을 대상으로 삼는다. 리버스 엔지니어링
리버스 엔지니어링의 기원은 상업적 또는 군사적으로 하드웨어를 분석한 것에서 시작되었다. 목적은 원본 생산의 절차에 관한 지식이 거의 없는 상태에서, 최종 제품을 가지고 디자인 결정과정을 추론하는 것이다. 같은 기술이 레거시 소프트웨어 시스템을 응용하기 위해 현재 연구되고 있는데, 산업이나 국방이 아니고, 오류, 미완성, 접근 불가인 문서를 수정하기 위함이다.소프트웨어 리버스 엔지니어링을 위해 IDA Pro나 OllyDbg 등의 도구들이 사용된다. 이 도구들은 어셈블리 언어들을 분석하기 쉽게 하도록 분석하는 기능과 코드를 변형하는 기능등을 제공한다. 패키지 관리자
패키지 관리자는 아카이브 파일로 된 소프트웨어 배포판과 데이터인 패키지(package)를 다룬다. 패키지에는 소프트웨어의 이름, 목적에 관한 설명, 버전 번호, 벤더, 체크섬, 소프트웨어의 정상 수행에 필요한 의존성 목록과 같은 메타데이터가 포함된다. 설치 시에 메타데이터는 로컬 패키지 데이터베이스에 저장된다. 패키지 관리자들은 일반적으로 소프트웨어 불일치, 존재하지 않은 필수 항목을 방지하기 위해 소프트웨어 의존성과 버전 정보의 데이터베이스를 유지보수하는 것이 보통이다. 이들은 소프트웨어 저장소, 바이너리 저장소 관리자, 앱 스토어와 밀접하게 동작한다. 미들웨어
미들웨어는 양 쪽을 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어, 네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해 주는 소프트웨어를 말한다. 3계층 클라이언트/서버 구조에서 미들웨어가 존재한다. 웹 브라우저에서 데이터베이스로부터 데이터를 저장하거나 읽어올 수 있게 중간에 미들웨어가 존재하게 된다.이러한 방법은 여러 가지 장점들을 제공한다.
Hurwitz의 분류법 : 클라이언트 (컴퓨팅)
개인용 컴퓨터와 워크스테이션에서 클라이언트와 서버 운영 체제의 차이는 단순히 마케팅 문제일 뿐이다. 서버 버전은 더 많은 운영 체제 구성 요소를 포함할 수 있어서 다중 동시 로그인을 허용하며 더 확장적이다. 반면 클라이언트 버전은 더 많은 최종 사용자 소프트웨어를 포함할 수 있다. 정보 디자인
때때로 컴퓨터 과학(computer science)과 정보 기술(information technology), 정보 디자인이 비슷한 용어로 쓰이지만 정보 아키텍처 (information architecture)는 정보 시스템, 데이터베이스, 자료 구조의 디자인과 데이터 모델링, 프로세스 분석을 포함하는 개념이다. 의존관계 역전 원칙
객체 지향 프로그래밍에서 의존 관계 역전 원칙은 소프트웨어 모듈들을 분리하는 특정 형식을 지칭한다. 이 원칙을 따르면, 상위 계층(정책 결정)이 하위 계층(세부 사항)에 의존하는 전통적인 의존 관계를 반전(역전)시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있다. 이 원칙은 다음과 같은 내용을 담고 있다.  컴퓨터 이용 공학
컴퓨터 이용 공학(computer-aided engineering, CAE)은 컴퓨터 기술을 활용하여 제품의 설계 제조 및 공정 설계 사전 검토 지원을 실시하는 것, 또는 그것을 위한 도구이다. 컴퓨터 지원 공학이라고도 불린다. 제조업등에서 설계 현장에서는 학문적인 의미 계산기 지원 설계라는 표현은 사용되지 않고 구조 시스템 분야에서 CAE 표현으로 정착하고있다. 다른 분야에서는 시뮬레이션 , 컴퓨터 시뮬레이션 라는 것이 많다. 수치 해석 이라는 것도 있다. 매스매티카
Mathematica는 사용자와 상호 작용할 수있는 프론트 엔드와 Wolfram 언어 코드로 연산을 수행하는 커널의 두 부분으로 구성된다. 노트북 형식의 프론트 엔드는 Mathematica 시스템의 GUI를 담당하는 부분이며 포맷된 텍스트 및 수학 타입셋, 그래픽, GUI 요소, 테이블, 음향 결과와 함께 프로그램 코드를 포함하는 노트북 문서의 생성 및 수정이 가능하다. 모든 내용 및 서식 설정은 알고리즘 또는 인터랙티브하게 편집 가능하며 일반적인 프로세싱 기능 대부분을 지원하고 있다. 프론트 엔드와 커널은 서로 독립적으로 시작하고 "MathLink"라는 프로토콜을 사용하여 통신하고 있다. 컴퓨터 공학
컴퓨터 공학()은 컴퓨터 하드웨어 및 소프트웨어를 개발하는 데 필요한 전기공학 및 컴퓨터 과학의 여러 가지 분야를 통합하는 학문 분과이다. 현대 정보화 사회에서 컴퓨터의 하드웨어와 소프트웨어를 연구, 컴퓨터 시스템과 컴퓨터 관련 기술을 개발하여 익히고 이를 각 분야에 응용함을 목적으로 한다. 서포트 벡터 머신
데이터를 분류하는것은 기계학습에 있어서 일반적인 작업이다. 주어진 데이터 점들이 두 개의 클래스 안에 각각 속해 있다고 가정했을 때, 새로운 데이터 점이 두 클래스 중 어느 곳에 속하는지 결정하는 것이 목표이다.
서포트 벡터 머신에서, 데이터 점이 formula_10-차원의 벡터 (formula_10개의 숫자 리스트)로 주어졌을 때, 이러한 데이터 점을 formula_12-차원의 초평면으로 분류할 수 있는지를 확인하고 싶은 것이다.
이러한 작업을 선형 분류라고 말한다.
데이터를 분류하는 초평면은 여러 경우가 나올 수 있다. 초평면을 선택하는 타당한 방법 중 하나는 두 클래스 사이에서 가장 큰 분류 또는 마진(margin)을 가지는 초평면을 선택하는 것이다. 그래서 우리는 초평면에서 가장 가까운 각 클래스의 데이터 점들 간의 거리를 최대로 하는 초평면을 선택한다. 만약 그런 초평면이 존재할 경우, 그 초평면을 최대-마진 초평면() 이라 하고 선형 분류기를 최대-마진 분류기()라고 한다. 신뢰성 공학
소프트웨어 신뢰성은 신뢰성 공학의 특별한 면이다. 시스템 신뢰성은 그 정의에 따라 시스템의 모든 부분을 포함하며, 하드웨어, 소프트웨어, 운용자와 절차도 해당된다. 전통적으로 신뢰성 공학은 시스템의 주요 하드웨어 부품에 초점을 두었다. 디지털 집적회로가 널리 사용됨에 따라 소프트웨어가 거의 모든 시스템에서 점차로 중요한 부분이 되었다. 그러나, 소프트웨어와 하드웨어의 작동 방식에는 심대한 차이가 있다. 대부분의 하드웨어 불량은 부품 또는 재료 불량의 결과로 시스템이 그 의도된 기능을 수행하지 못하는 것이다. 하드웨어 부품을 수리 또는 교체 하는 것으로 시스템이 고장나기 전으로 돌아간다. 그러나 소프트웨어는 하드웨어가 고장나는 방식으로 고장나지 않는다. 대신, 소프트웨어 불량은 예측하지 못했던 소프트웨어 작동의 결과이다. 심지어 상대적으로 작은 소프트웨어 프로그램도 천문학적인 수의 입력 및 상태 조합이 가능하다. 소프트웨어를 초기 상태로 돌려놓아도 똑같은 입력과 상태를 만나면 똑같은 의도하지 않은 결과를 불러온다. 소프트웨어 신뢰성 공학은 이를 반드시 고려하여야 한다. 백업
백업(, )은 임시 보관을 일컫는 말로, 정보 기술에서는 데이터 백업()이라고 하며, 데이터를 미리 임시로 복제하여, 문제가 일어나도 데이터를 복구할 수 있도록 준비해 두는 것을 말한다. 후킹
응용 프로그램이 실행되기 전에 리버스 엔지니어링 기법으로 실행 또는 라이브러리를 물리적 수정함으로써 후킹을 할 수 있다. 이러한 기법은 일반적으로 다른 모니터로 함수 호출을 가로채거나 그것들을 완전히 다른 함수로 대체하는데 사용된다. 모델-뷰-컨트롤러
모델-뷰-컨트롤러()는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다. 인터랙션 사이언스
국가간 IT분야에서의 국경의 경계선과 편차가 점차 없어지고 있으며, 그에 따라 그 산물로 할 수 있는 학문의 다양성이 중요시되고 있다. 특히 이것은 결과적으로 융합형 신기술과 상품 및 서비스 개발에 있어서 선진국과 후진국 간의 차이가 나타날 수 있는 결과로 나타날 것이기 때문에 더욱 중요시 되고 있다. 기술 소통
기술 영역은 소프트 & 하드 과학, 컴퓨터와소프트웨어를 포함한 첨단 기술, 가전제품 그리고 비즈니스 프로세스와 사례들을 포함하는 어떤 종류의 것이라도 될 수 있다. AMD 라이브!
AMD 라이브!는 하나는 소프트웨어 용어로, 나머지 하나는 컴퓨터 하드웨어 용어로, 이렇게 두 가지로 나뉜다. 소프트웨어 부분은 사용자의 인터넷과 멀티미디어 체험에 중점을 둔 반면 하드웨어 부분의 경우 멀티미디어 파일을 관리하는 시스템의 성능과 전자제품, 개인용 컴퓨터를 컴퓨터 케이스로 통합하는 데 중점을 둔다. 데브옵스
데브옵스(DevOps)는 소프트웨어의 개발(Development)과 운영(Operations)의 합성어로서, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다. 데브옵스는 소프트웨어 개발조직과 운영조직간의 상호 의존적 대응이며 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다. 인터페이스 (컴퓨팅)
하드웨어 인터페이스는 다양한 버스, 기억 장치, 기타 입출력 장치와 같은 구성 요소들 중 다수에 존재한다. 하드웨어 인터페이스는 이들을 나열하기 위해 인터페이스와 프로토콜에 존재하는 기계적, 전기적, 논리적 신호에 의해 기술된다. (가끔 이를 시그널링이라 부른다) 다층 구조
다층 구조(Multi-tier Architecture 또는 n-tier Architecture)는 비즈니스 로직을 완전히 분리하여 데이터베이스 시스템과 클라이언트의 사이에 배치한 클라이언트 서버 시스템의 일종이다. 예를 들어 사용자와 데이터베이스간의 데이터 요구 서비스에 미들웨어를 이용하는 것을 들 수 있다. 일반적으로는 3층 구조가 널리 쓰인다. 소프트웨어 설계
소프트웨어 설계(Software design)는 소프트웨어 해결책을 위한 문제해결과 계획 과정이다. 소프트웨어의 목적과 명세가 결정되면 개발자가 설계 하거나 설계자를 고용하여 해결책을 위한 계획을 개발하도록 한다. 저수준 요소와 알고리즘 구현 문제, 그리고 구조에 대한 조망이 포함된다. 디렉토리
파일 시스템 개념인 디렉토리와 그 디렉토리(폴더)에 쓰이는 그래픽 사용자 인터페이스의 변형과는 차이가 있다. 예를 들어, 마이크로소프트 윈도는 특별한 개념의 폴더를 사용하여 컴퓨터의 내용물을 사용자가 윈도 버전 사이에서와 개별 설치 프로그램 사이에서 달라질 수 있는 절대 디렉토리 경로를 다루는 것에서 벗어나도록 하는 매우 안정된 방법으로 표현하는 것을 돕는다. 업무 재설계
비용절감, 작업시간절감, 작업환경개선, 권한위임과 같은 구체적인 사업 비전과 프로세스별 목표를 찾아내고 이들의 우선순위를 확정한 후 최종목표치를 정량화시켜 확정한다.
프로세스의 성과에 강한 영향을 미치는 핵심 프로세스 또는 문제가 되는 병목 프로세스를 찾아내어 재설계대상 프로세스로 확정하고 각 프로세스별 책임자를 선정하는 작업을 수행한다.
프로세스 재설계에 앞서, 일단 발견된 문제는 더 이상 반복하지 않고, 정확한 측정과 분석을 통하여 향후 개선의 기준으로 삼기 위하여 필요한 단계이다. 문제와 오류를 해결하고 개선된 프로세스를 위해 완전한 프로세스와 신중히 비교분석해야 한다.
요구되는 정보기술을 탐색하는 단계이다.
프로세스를 실제로 구축하게 되지만 이는 프로세스 재설계의 마지막이 아니라, 원형을 이용해 순환적 수정을 통하여 최적의 프로세스를 찾아나가는 형태이다.
 예：비용 = 인원 및 설비의 시간 단가 × 시간 × 횟수경쟁기업의 제품을 완제품에서부터 애초에 설계되었던 부품단계까지로 역추론함으로써 경쟁제품의 설계사양을 유도하는 것을 말한다.
시스템의 기능적인 변화 없이 다른 새로운 시스템으로 변환하는 것을 말한다.
기능의 변화를 목적으로 시스템을 완전히 재설계하는 것을 말한다. 마이크로소프트 프론트페이지
마이크로소프트 프론트페이지(Microsoft FrontPage)는 마이크로소프트 오피스에 포함된 위지윅 기능을 제공하는 HTML 웹에디터이다. 한 가지 눈에 띄는 기능들 가운데 하나는 자동화 웹 템플릿이 기본 내장되어 지원한다는 점이다. 이러한 템플릿들과 HTML 템플릿들이 다른 제품들과 구분되는 점은 프론트페이지 템플릿들이 자동 내비게이션 시스템을 포함한다는 것이며, 사용자가 추가했던 페이지들에 움직이는 버튼을 만들어 낼 수 있다. 오피스 2003을 끝으로 개발이 종료되었다. 데이터 접근 객체
컴퓨터 소프트웨어에서 데이터 접근 객체(data access object, DAO)는 일부 종류의 데이터베이스나 기타 퍼시스턴스 매커니즘에 추상 인터페이스를 제공하는 객체이다. 응용 프로그램의 호출들을 퍼시스턴스 계층에 매핑시킴으로써 DAO는 데이터베이스의 상세한 사항을 노출시키지 않고 특정 데이터의 일부 동작을 제공하게 된다. 이러한 분리는 단일 책임 원칙을 지원한다. 도메인 특화 객체 및 자료형(DAO의 퍼블릭 인터페이스) 관점에서 응용 프로그램이 필요로 하는 데이터 접근이 무엇인지를, 어떻게 이러한 요구사항을 특정 DBMS, 데이터 스키마 등을 만족할 수 있는지(DAO의 구현체)와 분리시킨다. 데이터 접근 계층
데이터 접근 계층 또는 데이터 액세스 레이어(data access layer, DAL)는 컴퓨터 소프트웨어에서 단순화된 접근을 객체-관계 데이터베이스와 같이 특정한 종류의 영구 스토리지의 데이터에 제공하는 컴퓨터 프로그램 계층이다. 이 두문자어 DAL은 마이크로소프트 환경에 현전히 많이 쓰인다. 컴퓨터 과학
컴퓨터 과학과 소프트웨어 공학의 관계에 대해서는 논란이 많다. 컴퓨터 과학과 소프트웨어 공학의 용어 정의가 많은 사람들에게 다소 모호하게 보이기 때문이다. 소프트웨어 공학은 컴퓨터 과학의 한 분야에 불과하다고 말하는 사람들이 있는 반면, 소프트웨어 공학은 다른 분야에 대한 응용이나 자원을 운용하는 방법 등 실용적인 특징에서 컴퓨터 과학의 다른 분야와 잘 구분된다. 도메인 모델
소프트웨어 공학에서 도메인 모델()은 행위와 데이터를 둘 다 아우르는 도메인의 개념 모델이다. 데이터베이스 설계
데이터베이스 설계라는 용어에는 다소 애매함이 있다.
데이터베이스 시스템 전체의 설계 가운데, 몇 개의 다른 구성요소에 대해 같은 용어가 사용되고 있다.
정확하게는 데이터를 저장하기 위해서 사용되는 기본 데이터 구조군의 논리적인 설계를 의미하는 것으로 생각되고 있다.
관계 데이터베이스(RDB)를 사용하는 관계 모형에서 데이터베이스 설계는 기저 관계(릴레이션, 테이블)의 집합과 도출 관계 (뷰)의 집합을 말한다.
한편, 데이터베이스 설계라는 용어는 설계 공정 전체에 대해서 적용되기도 한다.
그 경우에는 기본 데이터 구조뿐만 아니라 데이터베이스 관리 시스템(DBMS)에 대해 데이터베이스와 상호작용 하는 애플리케이션 소프트웨어 전체의 일부분으로서 사용되는 유저 인터페이스나 데이터 조작(데이터 질의 포함)도 데이터베이스 설계의 대상으로 포함된다. 컴퓨팅 플랫폼
컴퓨팅 플랫폼()은 소프트웨어가 구동 가능한 하드웨어 아키텍처나 소프트웨어 프레임워크(응용 프로그램 프레임워크를 포함하는)의 종류를 설명하는 단어이다. 일반적으로 플랫폼은 컴퓨터의 아키텍처, 운영 체제(OS), 프로그램 언어, 그리고 관련 런타임 라이브러리 또는 GUI를 포함한다. 중심지이론
고객과 소비자들이 중심지로부터 서비스를 제공받는 지역을 상권(market area) 또는 배후지(hinterland)라고 부른다. 상권을 결절 지역(nodal region)의 좋은 예라고 칭하는데 해당 상권의 원 내의 영역에서 재화 및 서비스의 도달 범위와 최소 요구치간의 관계를 파악하는 것이 중심지 이론의 핵심이다. 상권을 표현하는 가장 좋은 방법은 육각형 모형으로 도형의 이점상 서로 중첩되는 곳이나 배제되는 곳이 없다. 파이프라인 (컴퓨팅)
컴퓨터 과학에서 파이프라인()은 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조를 가리킨다. 이렇게 연결된 데이터 처리 단계는 한 여러 단계가 서로 동시에, 또는 병렬적으로 수행될 수 있어 효율성의 향상을 꾀할 수 있다. 각 단계 사이의 입출력을 중계하기 위해 버퍼가 사용될 수 있다. 컴퓨터 공학
하드웨어 부분에서 전자기학 이론 분야와 마이크로프로세서 분야, 전자 회로 분야로 나뉘고, 소프트웨어 부분에서 컴퓨터 과학 이론 분야와 컴퓨터 프로그래밍 분야, 컴퓨터 시스템 분야 등으로 나뉜다. 컴퓨터 과학과 전자공학이 연계되는 학문으로, 컴퓨터를 비롯한 전자제품이나 로봇 공학 등, 하드웨어와 소프트웨어 지식이 둘 다 필요한 이러한 분야들이 대표적이다. 데이터 소거
소프트웨어 기반 덮어쓰기는 응용 소프트웨어를 사용하여 여러 개의 0, 여러 개의 1, 또는 의미 없는 임의의 의사 데이터를 하드 디스크 드라이브 섹터 전반에 기록한다. 데이터 소거와 기타 덮어쓰기 방식과의 주된 차이점을 이야기하면, 후자의 경우 데이터를 온전하게 유지시켜서 데이터 누출, 신원 도용, 규제 순응 달성 실패의 위험을 안고 있다는 것이다. 비록 1차례의 덮어쓰기가 현대의 하드 디스크 드라이브에 충분하다고 널리 인식되고 있지만 수많은 데이터 소거 프로그램은 수차례의 덮어쓰기를 제공함으로써 정부 및 산업 표준을 지원한다. 양호한 소프트웨어는 데이터 제거에 대한 확인을 제공하며 이는 특정 기준의 충족에 필수적이다. MAME
MAME자체는 기본적인 사용자 인터페이스만을 갖추고 있기 때문에 MAME를 아케이드 게임 캐비넷이나 홈 시어터 PC등에서 사용하려면 좀 더 발전된 사용자 인터페이스를 갖춘 프론트 엔드</i>라는 특별한 실행기가 필요하다. 프론트 엔드는 다양한 종류의 사용자 정의가 가능하여 캐비넷의 이미지, 게임의 역사, 게임 조작팁등은 물론 게임 플레이 비디오나 데모 모드(attract mode)를 볼 수도 있다. 백본망
백본() 또는 백본망(, )은 다양한 네트워크를 상호 연결하는 컴퓨터 네트워크의 일부로서, 각기 다른 LAN이나 부분망 간에 정보를 교환하기 위한 경로를 제공한다. 백본은 같은 건물 안에, 다른 건물 안에, 또 캠퍼스 환경 안에, 아니면 넓은 지역에 걸쳐 다양한 네트워크를 묶을 수 있다. 일반적으로 백본의 용적은 그와 연결된 네트워크보다 더 크다.
수많은 지역의 대형 회사는 지역 전체를 한데 묶는 백본망을 가질 수 있는데, 이를테면 서버 클러스터가 각기 다른 지역에 위치한 여러 회사 부문에 의해 접근할 필요가 있을 경우가 그러하다. 이 부서들을 아우르는 네트워크 연결(예: 이더넷, 무선)을 네트워크 백본이라고 부른다. 백본을 설계할 때 네트워크 혼잡은 고려 대상이다. 버스 (컴퓨팅)
버스(, )는 컴퓨터 안의 부품들 간에, 또는 컴퓨터 간에 데이터를 전송하는 통신 시스템이다. 이러한 표현에는 관련된 모든 하드웨어 부품들 (선, 광 파이버 등) 및 통신 프로토콜을 포함한 소프트웨어를 아우른다.