'ETC/면접정보'에 해당되는 글 3건

  1. 2008.02.25 * 오라클 기술면접 예상질문
  2. 2007.11.30 인성면접 1
  3. 2007.05.21 .NET 기술면접 족보 4
posted by 권오성의 Biomedical Engineering 2008. 2. 25. 15:16

1. 오라클 백업과 복구전략

2. 데이타 마이닝은 무엇이면 어떤 노력을 해왔나? 또는 어떤 노력을 할 것이냐?

3. PK 와 FK (AK) 에 대해 아는대로 설명

4. 제약조건에 대해서 아는대로 설명

5. 옵티마이져에 대해 아는대로 기술

6. 트랜젝션의 4가지 특성에 대해 아는대로 기술

7. 시퀀스와 캐쉬

8. SELECT SS FROM TABLE WHERE AA=AA ....  과 같은 구분의 처리 순서는?

9. 오라클의 커서는 무엇인가?

10. RBO 는 무었인가?

12. 부분범위처리는 무엇이며, 왜 필요한가?

13. 트리거란?
데이터베이스 내에서 트리거가 가지는 조건 테이블에 어떤 이벤트(UPDATE, INSERT 등)가 발생할 때마다, 트리거가 생성될 때 정의된 BEGIN ~ END사이의 문장들을 먼저 처리하여 사용자가 원치않는 테이블의 변경작업을 방지할 수 있는 방법

14. 시노님(SYNONYM) or 시노늄이란?
복잡하고 긴 사용자명과 테이블명을 간단하게 요약해서 사용하는 방법

15. 시퀀스와 캐쉬는?

16. PL/SQL 에 관한 경험이 있는가?

17. 바인딩 쿼리는 무엇인가?

18. 오라클 설치시 문제점 또는 까다로웠던점, 어려웠던 점.

posted by 권오성의 Biomedical Engineering 2007. 11. 30. 17:14

자기소개

--> 통상 2~3분 가량 자기소개를 Free Style 로 해보라고 많이 한다. 이럴경우 2~3분을 그저그런 내용으로 소모할것이 아니라

도입부 30%는 일반적인 사항(출생년도, 고향, 전공을 선택한 동기 등20

중간 부문 50%는 업무관련 자기 업적 자랑(개발자는 뭐를 어떻게 개발했다. 영업은 무엇을 누구에게 어떻게 영업했다) : 2

마무리 20%는 인생의 좌우명이나 가치관 직업관등으로 클로징하면 효율적이고 인상적인 자기 소개가 될 수 있다. :40

==> 자기소개서를 앵무새처럼 줄줄 말하면 외워서 온듯한 느낌이 들기 때문에 한문구 한문구 말할때마다 0.5초 정도의 간격을 두면서 지금 생각하면서 말하는듯한 느낌이 들수있도록 하십시요.

너무 준비를 많이 해서 후보자중에 앵무새처럼 일사천리로 말해 버려 좋지 않은 결과가 나오는 경우가 종종 있습니다.

면접의 정답은 없습니다.

다만 면접관의 맘을 사로 잡을수 있는 임기응변과 진실된 자세만이 좋은 결과를 가져올 수 있습니다.

 

  이직사유(전직사유)

 --> 솔직하게 말하되 부연설명을 명확하게 해야함.

솔직하되 합리적인 솔직함이 되도록 이직/전직 사유을 나름대로 가다듬어야 한다. 전직장의 비판은 절대로 하지 말아야함. 

면접관들이 주목하고 있는 것은 전직장에서 어떤 경력을 가지고 있으며 자신의 미래와 비전과 역량을 가지고 있으며 전 직장에서 어떤 평가를 받았는지를 가장 궁금해 한다.

 

  언제나 긍정적인 답변
 -->
인터뷰는 지원자의 약점이나 성격적 결함을 찾고자 하는게 아니다

지원자의 긍정적인 측면을 발견해 합격을 시킬 당위성을 발견하고자 하는 긍정적적인 측면이 강하다

그렇기에 무슨 대답을 하던 언제나 마무리는 긍정적으로 끝을 맺어야 한다.


1) 영어를 잘하십니까

     --- 모범답안 : 토익 450점으로 만족할만한 수준이 아닙니다. 하지만 매일 어학학원을 다니며 꾸준히 1시간씩 공부하고 있습니다.


2) ** 개발(보유지식)험이 있습니까?

     --- 모범답안 : 제가 직접 개발 경험은 없지만 이와 유사한 것을 많이 개발해 보았기에 저에게 시간만 조금 주신다면 누구보다 빨리 싶게 업무에 적응 할 수 있을거라고 생각합니다.


 

좋은 인상을 주어야 합니다.

:. 자신감을 가집시다.

일단 서류심사를 통과했다는 것은 기본적 요구사항을 충족한 것이고 회사에서도 관심을 표명한 것입니다.
따라서 본인의 경력사항에 대해 자신감을 갖고 회사가 요구하는 직무에 충분히 적합한 능력을 보유하고 있으며 열심히 일하겠다는 긍정적인 표현을 하는 자세가 필요합니다.
여유있는 자세와 밝은 표정은 필수입니다.

 

:. 믿음을 주어야 합니다.

         신중하고 믿음을 줄 수 있는 답변태도를 보여야 합니다.
임기응변식이 아닌 실제의 경험에서 비롯된 신뢰감을 줄 수 있는 답변이 좋습니다.
너무 많이 웃어도 가벼워 보일 수 있으며 경직된 표정도 곤란합니다.
인터뷰 동안 바른 자세를 유지하는 것이 좋습니다.

 

:. 필요한 답변을 간결히 합니다.

      짧은 질문에 장황한 답변은 절대 금물입니다. 면접관의 질문은 끝까지 경청하고 신중하게 생각하는 듯 2-3초 간의 간격을 두고 답변을 시작하되 질문의 요지에 맞게 간결한 어법으로 답변하는 것이 좋습니다.
구체적인 예시로 답변을 더욱 충실히 할 때도 객관적인 시각으로 간결히 합니다.
특히 전직장의 이직사유 같은 질문이나 다른 부정적인 질문에 대한 답변은 간결하고 분명하게 하는 것이 좋습니다.

대화의 흐름을 유지해야 합니다.

      시종일관 자연스런 대화분위기를 유지하고 특정 질문에 대한 답을 하면서 또 다른 긍정적인 내용을 설명할 수 있는 질문을 유도할 수 있다면 대단한 인터뷰 스킬을 보유했다고 할 수 있습니다.
공격적인 질문에도 우호적인 답변을 해야 합니다.
어느 회사는 의도적으로 공격적인 질문을 하여 그 반응을 보려고 합니다. 이런 때는 당황하지 말고 질문의 의도를 정확히 파악하여 객관적이고 여유 있는 자세로 대답을 하고 오히려 반대되는 가벼운 질문으로 답변을 대신 할 수도 있습니다.

 

급여나 복리후생제도에 관한 질문은 미루어 두십시오.
자세한 급여수준이나 복리후생제도에 관하여는 다소 여유 있는 모습을 보이는 것이 좋습니다. 
회사 내의 규정이나 기존 직원들과의 형평 등 여러 요인들이 감안되므로 회사의 결정에 맡긴다거나 헤드헌터가 중간에서 조정할 수 있도록 미루어 두는 것이 좋습니다.
특히 복리후생제도는 새로운 입사자 뿐만이 아니라 모든 직원에게 공통으로 적용되는 것이니 만큼 필요 이상의 질문으로 업무기여 보다는 보상에 더 신경을 쓰는 듯한 오해를 줄 필요가 없습니다.
 

    

본인 이력서의 내용을 숙지해야 합니다.

:. 연도별 경력사항을 충분히 숙지해야 합니다.

첫 인터뷰는 우선 이력서에 기재된 내용을 중심으로 경력을 확인하기가 쉽습니다.
연도별로 또는 분야별로 책임을 맡았던 업무에 대하여 충분히 숙지하여야 합니다. 혹시 이력서의 내용과 다른 설명이 된다면 이력서 상의 기재사항이나 인터뷰 내용에 믿음을 얻기 어렵습니다.

 

:. 구체적인 업무 성과를 정리해 둡시다.

이력서에 기재된 내용 이상으로 자세한 업무를 질문 받습니다.
본인의 책임 하에 진행되었던 프로젝트, 특별한 성과를 내었던 업무 중심으로 자신의 능력을 충분히 나타낼 수 있는 설명을 준비합시다. 본인의 성과에 대하여 이야기할 때는 겸손하게 하여야 합니다.

 

:. 오픈되어 있는 직무의 성격 및 채용조건을 숙지해야 합니다.
응시 회사에서 찾고 있는 직무에 대한 이해를 충분히 하여 어떤 조건의 사람을 원하는가를 파악하는 것이 중요합니다.
자신의 경험에서 그 조건과 부합되는 내용을 충분히 인지시키는 기술이 필요합니다. 헤드헌터를 적극 활용하는 것도 한 방안입니다.


--> 면접 시 태도 및 자세 항상 긍정적으로 그리고 열정적인 모습으로 취해주시면 좋은 결과 나올실겁니다.

* 현대정보기술 면접내용 *
1. 다른 기업에도 지원했는가? 다른 기업에도 합격한다면 어디를 다니겠는가?
2. 자신이 왜 이 회사에 직원이 되어야 한다고 생각하는가?
3. 이직 사유는?
4. 개발과 운영중 어느것이 더 어려운가?
5. 웹 경력은 얼마나 되는가?
6. 주로 어느업무를 개발또는 운영했는가?
7. 의료분야 개발이나 운영에서 가장 어려운 업무가 무엇인가?
- 수납부분이라고 생각합니다.
8. 수납업무를 설명하라.
9. 처방되어 가져간 약을 환불하는 업무 루틴은?
10. 파우더 처리는 어떻게 했나?
11. 이전직장에서의 개발방법론에 대해 설명하라.
12. CBD에 대해 설명하라
13. 자신이 지향하는 이상적인 솔루션은?
14. 사용자에 대해서 정의하라.
민법상으로는 노무를 제공할 것을 약정한 상대방(피고용자)에게 보수를 지급할 것을 약정한 자(655 ·756조 참조), 노동법상으로는 사업주 또는 사업의 경영담당자 기타 근로자에 관한 사항에 관하여 사업주를 위하여 행동하는 자(근로기준법 15조, 노동조합법 5조).
- 사용자란 끊임없이 요구하는 사람이다.
15. 기타 기술적인 질문들과 신변에 관련된 한두개의 질문

posted by 알 수 없는 사용자 2007. 5. 21. 00:59

1. window 2000과 2003의 차이
-윈도우 2003서버는 기본적으로 .net프레임워크가 설치되어 있다.

1-1. IIS란?
-Internet Information Server (인터넷정보서버)

2. 닷넷 프레임워크 3.0의 구성요소
WPF(Windows Presentation Foundation)
- 백터 그래픽 기반의 UI 개발통합환경
WCF(Windows Communication Foundation)
- 서비스 지향 어플리케이션을 신속하게 개발하기 위한 통합된 서비스 프로그래밍
- 통일성, 높은 생산성, 상호 운용성
WF(Windows Workflow Foundation)
- WF로 작업하면 워크플로우를 명확하게 정의할 수 있고,
- 워크플로우가 바뀌었을때 코드를 수정하지 않아도
- 간단하게 Drag&Drop 만으로 작업 흐름을 수정할 수 있다.
CardSpace(Windows CardSpace)
- 사용자가 인터넷으로 이용하는 여러 개의 로그인 ID나 패스워드를 관리하는 방법 개선

2-1. 실버라이트란? [FLEX vs Silver Light]
실버라이트(Silverlight)는 Microsoft에서 밀고 있는 Flash와 유사한 웹용 GUI 플러그인이다.
백터방식으로 DVD급 화질을 느낄 수 있고, Windows Media Encoder로 스트리밍이 가능

3. Enterprise Service(인프라 서비스 라이브러리)
. .net 개체가 Com+서비스에 접근할수 있도록 하는 역할
-순서-
. 클래스라이브러리 생성
. using EnterpriseService
. AssemblyInfo.cs에 using EnterpriseService
. 강력한 이름설정(sn -k 파일이름.snk)
. [Assembly:ApplicationActivation[ActivationOption:Server]]
. [Assembly:ApplicatinoName["화일이름“]]
. [Transaction[TransactionOption.NotSupported]]
. 클래스 상송 public class aaa : ServicedComponent
. 등록 regsvcs 이름.dll

4. SOA(Service Oriented Architecture)
SOA는 아키텍처와 인터페이스의 다른점을 신경 쓰지않고 모든 어플리케이션을 네트워크를
경유하여 서비스로서 자유롭게 조합하여 이용할 수 있도록 하기위한 시스템 설계상의 방법입니다.

5. WebService
SOAP(분산 컴포넌트 간의 정보를 교환하기 위한  XML기반의 메시지 프로토콜)
SOAP와  웹서버를 이용한 Remoting
* 자세히
서로 다른 컴퓨팅 환경에서 사용되는 모든 애플리케이션들이 직접 소통하고 실행될 수 있도록 동적 시스템 환경을 구현해 주는 소프트웨어 컴포넌트. 단순 객체 접근 프로토콜(SOAP), 웹 서비스 기술 언어(WSDL), 전역 비즈니스 레지스트리(UDDI) 등의 표준 기술을 사용하여 네트워크에 연결된 다른 컴퓨터 간의 분산 컴퓨팅을 지원하는 소프트웨어 및 기술들이다. 웹 서비스는 논리적 응용 프로그램의 단위로 데이터와 서비스를 다른 응용 프로그램에 제공하고, 응용 프로그램의 작성 시 HTTP, XML, SOAP와 같은 표준화된 웹 프로토콜데이터 형식을 사용함으로써 운영 체계(OS) 등 특정 플랫폼과 상관없이 모든 컴퓨터 간 원활한 데이터의 흐름을 보장해 준다. 웹 서비스를 활용하면 어려운 프로그램 작성 언어를 배우지 않고도 간단하게 여러 가지 웹 서비스들을 조합하여 새로운 애플리케이션을 만들어 낼 수 있다.

5-1. SOAP란?
SOAP은 XML과 HTTP 통신을 기반으로 하여 네트워크 상에 존재하는 각종 컴포넌트간의 호출을
효율적으로 실현하기 위한 방법을 제시하는 규약

6. .net Remoting
RPC(Remote Procedure Call) 클라이언트가 원격지에 존재하는 함수를 호출한 후,
그결과를 원격지로부터 받아내는 기술
[닷넷 환경에서의 개체기반 RPC 모델]
원격서비스에 등록되어 있는 원격 클래스의 함수를 호출하기위한 아키텍쳐
======================================
Marshaling(마샬링), Unmarshaling(언마샬링)
Serilalization(직렬화), Deserilalization(역직렬화)
[보내기 받기]
======================================
네트워크 통신을 하기 위한 채널(TCP, HTTP)
포맷터(SOAP-xml, Binary-바이너리)
바이너리가 속도는 좋지만 이기종간의 토인을 위해서 SOAP를 사용

채널등록
TcpClientChannel channel = new TcpClientChannel();
ChannelServices.RegisterChannel(channel, flase);

프록시 객체 생성
object obj =
Activator.GetObject(typeof(SaoHello), "tcp:localhost:9009/BaboSaoHello");
SaoHello h = (SaoHello)obj;

원격함수 호출
Console.WriteLine(h.SayHello("홍길동“));

7. Component
. 잘정의된 인터페이스를 가지며
. 그 인터페이스를 통해서만 서비스들을 호출할 수 있고
. 명세화 되어 있고
. 배포될 수 있고
. 독립적인 기능을 수행하는 소프트웨어모듈
. 재사용 가능한 소프트웨어 빌딩 블록

8. MSF/CD
. 컴포넌트 개발 방법론
. 기존방법론에 비하여 물리적인 설계부분에서 강점
 - 개념적(업무프로세스 모델설계)
 - 논리적(클래스와 서비스설계)
 - 물리적

9. CBD란?
CBD (Component Based Development)라는 용어의 약어로 소프트웨어 개발 방법론의 하나로 프로그램의 순서를 따라서 각각의 독립적인 컴포넌트로 구성하고 이를 짜 맞춰 전체 프로그램을 구성하는 것을 말합니다.
이때 컴포넌트는 실행 버튼과 같은 작은 단위에서부터 간단한 프로그램 전체에 이르기까지 그 형태가 다양하며 만들어지며 개발 언어에 비지니스 로직을 접목한 개념이라고도 볼 수가 있습니다.  
CBD를 이용해서 짠 프로그램의 가장 큰 장점은 재사용이 가능하고 다른 프로그램과의 호환성 및 이식성이 우수하다는 것입니다.
따라서 개발 생산성이 전반적으로 높아지는 효과를 가져다 줍니다.
CBD에 입각해서 만들어진 컴포넌트들은 특정 애플리케이션에 구애 받지 않으며 데스크톱용 프로그램이나 웹 브라우저 등 어떤 소프트웨어 환경에서도 표준 프로토콜을 이용해 불러 들일 수가 있습니다. 게다가 한 번 사용한 컴포넌트는 버리는 것이 아니라 다른 종류의 애플리케이션을 만들 때 재사용할 수가 있다는 것입니다.

10. Stored Procedure(저장프로시저)
쿼리를 하나로 묶은 것, 자주 사용하는 SQL 쿼리를 매번 입력하는 것이 귀찮게 여기질 때 유용하게 사용할 수 있다.
저장 프로시저를 만들어 놓으면 이후로는 저장프로시저의 이름을 호출하는 것만으로 SQL쿼리를 실행할 수 있다.
. 어떤 동작을 일괄처리하기 위한 용도
. 저장프로시저도 데이터베이스의 개체
. 프로그램기능, Return, try/catch, 매개변수가 가능
. 수정은 ALTER, 삭제는 DROP Procedure를 사용
Create Proc test
@testValue NVARCH(10),
@outValue INT OUTPUT
AS
Insert Into testTbl Values(@test);
select @OutValue = IDENT_CURRENT('testTbl');
Exec test 'aaa';

11. DB모델링
계획-분석-설계-구현-테스트-유지보수

업무분석
개념적 모델링 - 업무분석을 토대로 엔티티 추출, 속성, 관계정의
논리적 모델링 - 정규화를 통한 스키마설계
물리적 모델링 - 제약조건, 인덱스, 역정규화

12. 정규화 : 자료의 중복성과 비정규성을 제거하고 검색키를 설정하기 위해 데이타베이스의 logical schema를 작성하는 것

제1정규화
 - 반복되는 그룹 속성을 제거한 뒤 기본 테이블의 기본키를 추가해
새로운 테이블을 생성하고 기존테이블과 일대다의 관계를 형성한다.
- 반복되는 그룹의 속성이 존재할 경우 그 그룹을 분리하여 새로운 실체를 추가한 후 기존의 실체와 일대다의 관계를 형성함으로서 속성들의 원래 제자리를 찾아준다.

제2정규화
- 복합키에 전체적으로 의존하지 않는 속성들을 제거한다.
- 복합키의 일부에만 종속되는 속성들을 제거

제3정규화
-기본키에 의존하지 않고 일반컬럼에 의존하는 컬럼들을 제거한다.

기타 정규형
BCNF(Boyce Codd Normal Form)라고도 하는 제 4 정규형과 제 5 정규형도 있지만 이 형식은 실제 디자인에서 거의 고려되지 않습니다. 이러한 규칙은 무시해도 데이터베이스 디자인의 완벽성은 덜하겠지만 기능적으로는 영향이 없습니다.

정규화의 문제점
때로는 정규화 이론에 어긋나는 릴레이션 구조를 선택해야 할, 실용적인 필요성이 우선하는 경우도 있습니다. 정규화 작업은 특히 처리속도와의 trade-off관계가 심사숙고의 대상이 되며 고도의 정규화를 추구하다보면 레코드의 종류가 늘어나고 프로그래밍도 복잡해 져서 결국은 전체적인 performance가 떨어지게 됩니다. 이는 양자간의 절충으로 어느정도 해결될 수 있지만 개발자와 사용자간에 깊이 생각해 보아야 할 문제라고 할수 있겠군요.

13, 인덱스
- 데이터베이스 내의 테이블에서 원하는 데이터를 좀더 빨리 찾아줄 수 있게끔 데이터의 위치정보를 모아놓은 데이터베이스 내의 개체이다.
클러스터드인덱스(영어사전) - 범위검색에 용이
비클러스터드인덱스(일반책) - 특정값 검색에 용이

14. 트리거 : 특정 테이블이나 테이블의 레코드에 어떠한 사건(이벤트)이 발생하였을 때 내부적으로 실행되도록 데이터베이스에 저장된 프로시져를 말함.
부탁된 테이블에 특정한 업무 수행시 자동 실행(스토어드 프로시저랑 비슷)
- DML(Insert, Update, Delete)
- DDL(Create, Drop, Alter)

이 프로그램은 QL/SQL 혹은 자바로, 또는 C의 콜아웃(callouts)으로서 작성될 수 있다. 오라클에서는 사용자가 이들 프로그램을 정의할 수 있으며, insert, update, delete문이 연관된 테이블, 뷰, 또는 데이터베이스 작업을 대상으로 수행 될 때에 이들을 수행할 수 있다.

트리거는 데이터베이스 보안의 적용, 유효하지 않은 트랜잭션의 예방, 업무 규칙의 적용, 감사(auditing) 제공, 복제된 테이블의 유지등에 사용될 수 있다.

Create Trigger test
ON testTbl
After Delete, Update
AS
Print ('메세지‘);

14-1. 커서의 개념
커서는 테이블에서 여러 개의 행을 쿼리한 후에, 쿼리의 결과인 행 집합을 한 행씩 처리하기 위한 방식이다. 항 행씩 읽을 때마다 파일 포인터는 자동으로 다음 줄을 가리키는 것과 같은 동작을 한다.
단점.커서는 SQL Server의 성능을 떨어뜨리는 큰 요인 중 하나임.

15. Thread
- 하나의 프로그램 내에서 실행되는 함수
- 한순간에 두 개의 함수가 동시에 실행되면 두 개의 스레드가 동작하는 것.
(우선권, 동기화)
- 프로세스, 멀티테스킹

16. .net Framework
 -공용런타임(Common Language Runtime)
. 시행환경을 제공하며 CLS의 언어규칙을 따라야 CLR에서 실행된다.
-.net framework클래스 라이브러리
.개발에 필요한 모든 라이브러리 환경을 제공

17. 자바에서 String과 String Buffer 의 차이점
String Class는 문자열을 저장 및 기본적인 문자열을 다룰수 있는 메소드들을 제공하고 있고, StringBuffer Class는 문자열에 관한 연산들, 즉 문자열을 다루는 고급적인 메소드들이 있다고 대충 생각 하시면 됩니다.

18. 트랜젝션 : 트랜잭션은 하나의 논리적 작업 단위로 수행되는 일련의 작업
트랜젝션의 특성은 크게 4가지 단어로 표현을 하고 각 단어의 첫 단어를 따서 ACID 라고 불린다.
Atomic, Consistent, Isolated, Durable

Atomic (원자성)
트랜젝션은 하나이상의 단위업무를 묶은 작업의 단위이다.
원자성은 모든작업이 이루어지거나 그 반대로 아무것도 이루어지지 않거나 하는것을 이야기 한다.
만약 모든 단위업무가 정상적이라면 트랜젝션은 성공된 것이고, 어떤 단위업무라도 실패가 난다면 전체 트랜젝션이 실패가 난 것이고 롤백이 이루어진다.

Consistent (일관성)
트랜젝션의 성공, 실패여부와 상관없이 일관성있는 상태를 유지해야한다.

Isolated (독립성)
트랜젝션 수행시 다른 트랜젝션이 중간에 끼어들지 못하도록 보장하는것을 말한다.
따라서, 각각의 트랜젝션은 독립적이어야하며 동일한 데이터를 동시에 읽고 쓸 수 없어야한다.

Durable (영속성)
트랜젝션이 완료가 되면 시스템에 어떤 오류가 있던지간에 그 결과는 영구히 반영이 되어야 한다.

19. 제약조건
제약조건이란 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 여러 가지 규칙을 적용해 놓는거라 생각하면 됨. 간단하게 테이블안에서 테이터의 성격을 정의하는 것이 바로 제약조건
 ★ 데이터의 무결성 유지를 위하여 사용자가 지정할 수 있는 성질
 ★ 모든 CONSTRAINT는 데이터 사전(DICTIONARY)에 저장
 ★ 의미있는 이름을 부여했다면 CONSTRAINT를 쉽게 참조할 수 있음.
 ★ 표준 객체 명명법을 따르는 것이 좋다.
 ★ 제약조건은 테이블을 생성할 당시에 지정할 수도 있고, 테이블 생성 후 구조변경(ALTER)명령어
     를 통해서도 추가가 가능하다.
 ★ NOT NULL제약조건은 반드시 컬럼 레벨에서만 정의가 가능하다.

-----------------------------------------------------------------------------------------

* 8번, 9번 추가내용
MSF(Microsoft Solution Framework)는 팀이나 기관으로 하여금 그들의 고객에게 비즈니스 요구에 따른 기술적 솔루션을 보다 성공적으로 제공할 수 있도록 하는, 마이크로소프트에 의해 실제적으로 입증된 여러 인적, 프로세스적 가이드라인으로 구성된다.
MSF/CD(Component Design)는 특히 컴포넌트 기반의 개발 방법론인 CBD를 위한 것이다. 요구사항 분석, 아키텍처 수립, 개념 설계, 논리 설계, 물리 설계를 위한 모든 과정의 가이드라인을 충실히 제공하고, 각 단계의 산출물을 정형적으로 정의함으로써 컴포넌트 기반의 애플리케이션 구축을 전반적으로 지원한다.
본서에서 제시하는 가이드라인은 RUP와 같은 다른 CBD 방법론과 많은 특성을 공유하지만 다음과 같은 부가적인 특징이 있다.
1) 아키텍처 측면에서 볼 때 데이터베이스 액세스뿐만 아니라 외부 서비스와의 통합을 위한 서비스 에이전트를 데이터 계층에 포함시켜 설명하고 있고, 비즈니스 계층에서도 외부에 기능성을 공개하기 위한 서비스 인터페이스를 도입하고 있다. 이들은 이질적인 플랫폼에서 개발되고 운영되는 프로그램의 통합과 상호운용을 활용하기 위한 서비스 지향 아키텍처(Service-Oriented Architecture, SOA)를 설계 방법론에 적극 도입한 결과이다.
2) 설계 지원 도구는 수단일 뿐 목표가 아니므로 특정 도구에 의해 방법론이 왜곡되거나 특정 도구만을 위한 방법론을 개발하는 것은 바람직하지 않다. 본서는 MSF/CD를 개념과 실천을 위한 가이드라인으로 충실하게 소개하고, 여러 도구를 사용하여 구현 사례를 산출함으로써 도구 중립적인 특징이 있다.
3) Visual Studio Team System이 도입될 경우 본 방법론에 따른 프로젝트의 전체 라이프사이클과 모든 산출물을 보다 자동적이고도 체계적으로 관리할 수 있을 것이다.
모든 기술은 상황에 적합하여야만 의미가 있으며, 단지 기술을 사용하기 위하여 문제를 오히려 복잡하게 하거나 왜곡시키는 것은 결코 바람직하지 않다. 비유적으로 말하자면 손에 망치를 가졌다고 주변의 모든 사물을 못으로 착각해서는 안 될 것이다.
본서를 통하여 설계 방법론의 여러 원칙과 기술을 충실히 배양하고, 적절한 문제에 이들을 효과적으로 적용하는 경험과 안목을 더하는 것은 고급 개발자가 되기 위한 필수적인 과정일 것이다. 많은 개발자가 있지만 시스템 분석과 설계에 높은 안목을 가진 아키텍트는 절대적으로 부족한 현실에서 본서가 진정한 아키텍트와 수준 높은 개발자의 길로 안내하는 데 큰 도움을 주리라 확신한다.