1.1 자료구조의 기본 개념*자료구조-구조(structure)는 그룹의 각 원소들 사이의 연관성-자료 구조는 컴퓨터 기억 공간 내에 데이터의 표현이나 처리방법, 그들 간의 관계를 파악하여 임의의 작업 수행을 위한 알고리즘 연구*자료구조의 필요성컴퓨터가 효율적으로 문제를 처리하기 위해서는 문제를 정의, 분석하여 그에 대한 최적의 프로그램을 작성해야 하기 때문에 자료구조에 대한 개념과 활용을 필요로 한다.1.2.1 수의 표현과 진법*수치 영역의 10진수 표현1.2.3 보수*자료에 대한 음수 표현 기법*2진수 : 0과 1만으로 구성-1의 보수① 전체 비트를 1은 0으로, 0은 1로 바꾼다② 01001010의 1의 보수는? 10110101-2의 보수① 1의 보수 +1② 01001010의 2의 보수는? 10110110*16진수-0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F-15의 보수-16의 보수1.3 자료의 표현*컴퓨터에서 데이터의 표현 방법1.3.1 문자 자료의 표현*문자에 대한 이진수 코드를 정의하여 사용*문자에 대한 이진수 코드표-BCD코드① 6비트를 사용하여 문자 표현② 상위 2비트 : 존 비트③ 하위 4비트 : 2진수 비트④ 존 비트와 2진수 비트를 조합하여 10진수 0~9와 영어 대문자와 특수문자를 표현-EBCDIC 코드① 8비트를 사용하여 문자 표현② 상위 4비트 : 존 비트③ 하위 4비트 : 2진수 비트④ 존 비트와 2진수 비트를 조합하여 10진수 0~9와 영어 대문자/소문자와 특수문자를 표현-ASCII 코드① American Standard Code for Information Interchange② 마이크로 컴퓨터 및 자료통신에 많이 이용③ 통신의 시작과 종료 등의 제어조작이 편리④ 7비트를 사용하여 문자 표현zone bit (왼쪽1비트)1 : 문자0 : 숫자, 특수문자zone bit (오른쪽 2비트)00 : 대문자 A - O(0001-1111)01 : 대문자, 숫자 P - Z (0000-1010)10 : 소문자 a - o11 : 소문자 p - z-한글의 표현① 영어는 8비트로 모든 알파벳 표현이 가능하지만 한글은 16비트로 표현가능② 조합형, 완성형 모두 최상위 비트가 1일 경우에는 한글이 된다는 것을 나타낸다③ 조합형 : 초성 5비트, 중성 5비트, 종성 5비트 = 15비트예를 들어 ‘간’을 쓰려면 (실제코드 X )ㄱ은 11101, ㅏ는 10011, ㄴ은 001101 11101 10011 00110 이 ‘간’의 한글코드가 되는것④ 완성형 :간의 한글 코드는 1 00011 11001 00001갇의 한글 코드는 1 00011 11001 00010갈의 한글 코드는 1 00011 11001 00011이런식으로 많으 쓰이는 한글 각각의 자마다 코드를 부여한 것1.3.2 수치 자료의 표현-존 형식의 10진수 표현 형식① +**************************1F2F1C(+)3② -**************************1F2F1D(-)3-팩 형식의 10진수 표현 방식① 존부분에 1111을 사용함으로써 기억공간을 낭비하고 처리시간을 지체시키는 문제를 해결하기 위한 방안② +2130*************00213C(+)③ -2130*************01213D(-)※예제* +186과 -186을 존 10진수 형식으로 표현해 보자.① +**************************0② -**************************0* +186과 -186을 팩 형식으로 표현해 보자.① +*************101100② -*************101101-2진수의 정수 표현① n비트의 부호 절대값 형식② 최상위 1비트 - 부호 표시양수(+) : 0음수(-) : 1③ 1바이트를 사용하는 부호 절대값 형식의 예+21 -21-n비트의 2진수를 1의 보수로 만드는 방법
*변수의 종류변수는 클래스변수, 인스턴스변수, 지역변수 모두 세 종류가 있다. 변수의 종류를 결정짓는 중요한 요소는 ‘변수의 선언된 위치’이다.-멤버변수를 제외한 나머지 변수들은 모두 지역변수-멤버변수 중 static이 붙은 것은 클래스 변수, 붙지 않은 것은 인스턴스 변수class Variables{int iv; // 인스턴스변수static int cv; // 클래스변수(static 변수, 공유변수)void method(){int lv = 0 ; //지역변수}}모든 Variables에는 "iv"라는 인스턴스 변수가 들어있다.클래스 안에서, 하지만 메소드 밖에서 선언된 변수가 인스턴스 변수이다.메소드 안에서 선언된 변수는 지역변수.변수의 종류선언위치생성시기클래스변수클래스 영역클래스가 메모리에 올라갈 때인스턴스변수인스턴스가 생성되었을 때지역 변수클래스 영역 이외의 영역변수 선언문이 수행되었을 때(1) 인스턴스변수클래스 영역에 선언되며, 클래스의 인스턴스를 생성할 때 만들어진다. 그렇기 때문에 인스턴스 변수의 값을 읽어 오거나 저장하기 위해서는 먼저 인스턴스를 생성해야 한다.(2) 클래스 변수클래스 변수를 선언하는 방법은 인스턴스변수 앞에 static을 붙이기만 하면 된다. 클래스 변수는 모든 인스턴스가 공통된 저장공간(변수)을 공유하게 된다. 그러므로 한 클래스의 모든 인스턴스 들이 공통적인 값을 유지햐아 하는 속성의 경우, 클래스 변수로 선언해야 한다.(3) 지역 변수메서드 내에 선언되어 메서드 내에서만 사용가능하며, 메서드가 종료되면 소멸되어 사용할 수 없게 된다.지역 변수에는 기본값이 없다. 따라서 사용 전에 반드시 지역 변수를 초기화해야 한다.*변수의 초기화변수를 선언하고 처음으로 값을 저장하는 것을 ‘변수의 초기화’라고 한다.멤버변수는 초기화를 하지 않아도 자동적으로 변수의 자료형에 맞는 기본 값으로 초기화가 이루어지므로 초기화하지 않고 사용해도 되지만 지역변수는 사용하기 전에 반드시 초기화를 해야 한다.자료형기본값booleanfalsechar'?u0000'byte0short0int0long0Lfloat0.0fdouble0.0d 또는 0.0참조형변수null-초기화 예int i=10; // int형 변수 i를 선언하고 10으로 초기화한다.int j=10; // int형 변수 j를 선언하고 10으로 초기화한다.int i=10, long j=0;// 에러!! 타입이 다른 변수는 함께 선언하거나 초기화할 수 없다.*JVM의 메모리 구조JVM : 자바 가상 머신응용 프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다.
전형적인 생산관리의 목표, 즉 생산목표(operations objective)는 원가(cost), 품질(quality), 납품(delivery), 유연성(flexibility)의 네 가지 이다.(1) 원가-생산원가에는 재료비, 노무비 및 간접비가 포함 된다-생산관리의 목표가 원가 또는 비용 최소화라면① 설비는 가능한 오래 사용하며 낮은 비용으로 유지② 완제품과 원자재의 재고는 최소화③ 품질관리 에서는 재작업과 폐기물비용의 감소(2) 품질제품이나 서비스의 가치, 탁월성, 규격일치성, 고객이 느끼는 유용성 등을 의미(3) 납품고객이 원하는 시간과 장소에 제품이나 서비스를 인도할 수 있는 생산의 능력(4) 유연성수요의 양적 및 질적 변화에 신속하게 대응할 수 있는 능력[가장 이상적인 생산활동이란 낮은 원가, 높은 품질, 신속한 납품 및 높은 유연성을 동시에 달성하는 것][생산관리의 목표는 제조기업의 생존과 성장을 위해서 필요][생산관리의 목표는 우선순위를 결정해야 한다](1) 아이디어 산출-생산 가능한 신제품을 생각해내는 단계-시장조사와 고객요구로부터 아이디어 산출-기존 기술로부터 아이디어 산출(2) 제품선택-산출된 아이디어 중에서 자기회사와 적합한 아이디어를 찾아내는 것-시장 잠재력, 재무적 타당성, 생산적합성을 분석-제품선택에 대한 분석은 매우 주관적인 성격을 가지고 있다(3) 예비제품설계-신제품 아이디어에 대한 최상의 설계를 개발-시장 경쟁력이 있어야 한다-생산부문에서 생산 가능한 제품설계를 개발해야 한다(4) 원형제작-완제품과 유사하거나 동일한 모형을 만드는 과정(5) 시험-원형을 시험하는 단계-마케팅 및 기술상의 성능을 확인하는 것이 목적-시장에서의 성공 가능성을 평가하기 위해 시험시장(test market)에 내놓는다(6) 최종제품설계-제품의 설계도와 명세서가 개발 된다-원형시험의 결과 요구되는 변경은 최종제품설계에 반영 된다제품을 가공하는 과정분류제품의 흐름에 따라 : 라인공정, 단속공정, 프로젝트공정고객 주문의 유형에 따라 : 재고생산공정, 주문생산공품은 고객의 주문에 의해 조립생산 ex)자동차-보통 납기의 길이와 납기준수율과 같은 납품관련 기준으로 생산 활동의 성과가 측정 된다제 1장[1] 생산관리의 정의-조직내 생산기능의 효과적, 효율적 관리이다-생산기능 : 제품이나 서비스를 생산하는 기능 (담당: 생산관리자)(1) 생산기능-어느 조직에서나 제품이나 서비스를 생산하는 기능을 의미-마케팅이나 재무와 같은 조직기능의 하나(2) 변환시스템시스템적 견해에서는 제품과 서비스의 생산 활동을 투입물을 원하는 산출물로 바꾸는 변환시스템으로 정의(3) 생산의사결정-생산관리자는 생산기능에 관한 의사결정을 한다-문제해결방안을 해결하는것, 대안을 찾아내는것[2] 생산관리의 역사적 발전[3] 생산시스템시스템적 견해에서는 생산관리를 투입물을 제품이나 서비스와 같은 산출물로 변환시키는 변환시스템 혹은 생산시스템의 효과적, 효율적 관리로 정의 한다-투입물을 원하는 산출물로 변환시키는 기능을 수행하는 일련의 구성인자의 총체라고 할 수 있다-투입 - 변환 - 산출의 과정을 갖는다-산출물이 유형의 제품 : 제조업 (보관 및 수송이 가능)-산출물이 무형의 제품 : 서비스업 (생산과 소비가 동시에, 보관 및 수송 불가능)(1) 재고와 생산능력-제조업 : 산출물이 유형의 제품이므로 재고로 유지할 수 있고, 따라서 재고를 이용하여 생산과 수요 간의 차이를 상당 부분 조정 가능-서비스업 : 재고를 통한 생산과 수요 간의 조정 불가능(2) 품질-제조업 : 서비스업보다 품질수준의 설정과 평가가 용이-서비스업 : 품질 평가가 쉽지 않고 주관적이며 평판에 좌우(3) 입지-제조업 : 생산활동을 한 지역에 집중시킬 수 있다-서비스업 : 지점이나 대리점을 만들어놔야 한다(4) 마케팅과 생산기능-제조업 : 마케킹과 생산기능을 쉽게 식별하기가 쉽다-서비스업 : 생산과 소비가 동시에 일어나기 때문에 마케팅과 생산기능 식별이 어렵다[4] 생산의사결정생산관리는 생산기능에 관한 각종 의사결정을 다룬다. 따라서 생산의사결정을 분류하고 정의하는 틀이 필요하다(1) 생산공정, 사업의 선택 및 이를 위한 자원의 획득과 배분에 관한 전략-사업전략 : 사업부 수준에서의 사업영역의 정의, 목표의 설정, 경쟁우위의 성취방안에 관한 전략이다-기능별전략 : 사업전략의 하위전략으로서 각 기능부문 수준에서의 목표의 설정과 경쟁력 재고방안에 관한 전략이다 (생산전략, 마케팅전략, 재무전략 등이 포함)생산전략이란 생산의사결정의 전반적인 방향을 설정하는 비전(vision) 또는 지침이다. 생산전략은 기업 전략이나 사업전략과 부합해야 하며, 생산전략의 결과는 일관된 생산의사결정과 경쟁우위의 달성으로 나타나야 한다.[2] 생산전략모형생산 전략을 수립하기 위한 절차를 표시하는 모형(1) 기업전략과 사업전략-기업전략 : 기업의 사업 이념을 결정-사업전략 : 기업전략의 하위전략으로서 특정 사업이 어떻게 경쟁할 것인가를 결정 (저원가전략, 차별화전략 및 집중화전략)① 저원가전략 : 원가를 낮추기 위한 일련의 기능별 정책을 통하여 산업 내에서 원가상의 우위를 달성하는 것② 차별화전략 : 기업이 제공하는 제품이나 서비스를 차별화함으로써 그 기업이 독특하다고 인식될 수 있는 그 무엇을 창조하는 것③ 집중화전략 : 특정시장, 특정 구매자 집단, 제품라인의 일부분 또는 특정 지역을 집중적으로 공략하는 것-생산전략을 수립하기에 앞서 사업전략을 먼저 정의하는 것이 중요(2) 외부 및 내부환경 분석-외부환경요인 : 고객의 요구, 신기술, 원자재, 법적 요인, 노동인력의 변화, 경쟁 등-내부환경요인 : 내부자원의 가용성, 현재의 조직문화, 작업자의 기술과 능력, 기존 설비의 입지와 노후화 정도, 통제시스템의 유형 등(3) 생산의 사명-기업전략 및 사업전략과 관련하여 생산기능의 목적을 정의 한다-생산의 사명에는 생산관리의 4대 목표인 원가, 품질, 납품 및 우연성간의 상대적인 우선순위가 명시되어야 한다(4) 차별적 능력-생산에 있어 경쟁자에 비해 특별한 능력 또는 우월한 능력을 말한다-차별적 능력은 생산의 사명과 부합해야 한다(5) 생산목표-생산의 사명을 계량적이고도 측정 가객의 요구, 신기술, 원자재, 법적 및 사회적 조건, 경쟁 등과 같은 외부요인에 기업이 적응할 수 있도록 수립되어야 한다* 글로벌 기업의 출현에 따라 설비(공장)의 입지, 구매, 제품설계, 공정기술, 로지스틱스, 조직 등이 글로벌 관점에서 이루어지도록 생산전략도 글로벌 생산전략으로 변해야 한다* 집중화 생산 또는 집중화 공장의 개념은 각 공장이나 설비에 단 하나의 사명만을 부여하고 이에 초점을 맞추어 생산 활동을 수행함으로써 경쟁력을 높이자는 것이다* 공장집중화의 기준으로는 제품특성, 공정유형, 기술유형, 수요의 크기 및 특성, 재고생산/주문생산 등이 단일로 또는 결합되어 사용 된다제 3장[1] 신제품 도입전략(1) 시장지향적 전략-요구되는 신제품의 유형은 시장조사나 고객의 피드백을 통해 결정(2) 기술지향적 전략-신제품은 시장과는 거의 관계없이 생산기술로부터 비롯-적극적인 연구 개발과 생산활동을 통해 시장에서 우위를 차지하는 우수한 제품을 만드는 것을 목표로 한다(3) 기능간 협력전략-신제품 도입은 기업내 여러 기능과 관련되어 있으므로 마케팅, 생산, 엔지니어링 및 기타 기능간에 협력이 요구된다고 본다-신제품은 기술을 최대한 활용하면서도 동시에 시장의 요구를 충족 시키도록 개발-다양한 부서간의 통합/조정을 위하여 태스크 포스(task force)와 같은 특별 조직이 사용된다[2] 신제품 개발과정-Page 1[3] 품질기능전개-품질기능전개(QFD : Quality Function Deployment)란 고객의 요구를 제품(또는 서비스)의 설계명세에 반영하는 체계적인 방법이다-1972년 일본 미쯔비시에서 연구[4] 가치분석/가치공학-제품과 서비스의 가치를 증대시키기 위한 체계적인 혁신의 한 방법-가치 = 유용성/원가-가치분석(VA : Value Analysis)① 이미 생산되고 있는 제품에 적용② 원가절감기법으로 사용-가치공학(VE : Value Engineering)① 생산단계 이전의 제품설계시에 사용② 원가회피방법[5] 모듈러 설계-모듈러 설계(modular 태스크 포스(task force)와 같은 특별 조직이 요구 된다* 신제품 개발과정은 아이디어 산출, 제품선택, 예비제품설계, 원형제작, 시험, 최종제품설계의 6단계로 구성 된다. 하지만 현실의 실무에서는 반드시 이 6단계를 처음부터 끝까지 순서대로 거치는 것은 아니며, 어느 단계는 생략되기도 하고 또한 중간에서 이전의 단계로 여러 번 피드백이 이루어지기도 한다* 품질기능전개(QFD)란 고객의 요구사항을 제품(또는 서비스)의 설계명세에 반영하기 위한 체계적인 방법으로서 ‘품질의 집’을 도구로 사용 한다* 가치분석(VA) 또는 가치공학(VE)이란 제품이나 서비스의 기능성을 검토하고 개선함으로써 원가 대비 유용성, 즉 가치를 향상시키는 체계적인 방법이다* 모듈러 설계란 한정된 수의 구성품으로부터 다양한 제품을 생산하기 위한 방법이다. 이 접근법은 구성품이나 모듈의 수를 제한하여 생산의 효율성을 추구하면서도 다양한 제품을 생산하는 데 사용 될 수 있다*로버트 설계란 환경조건의 변화에 영향을 받지 않도록 제품을 설계하는 것이다*오늘날에는 컴퓨터지원설계(CAD), 동시공학, 글로벌 설계 등이 제품설계의 새로운 추세가 되고 있다제 4장[1] 서비스의 정의-인간의 욕망을 충족시키는 무형의 상품-서비스의 가장 큰 특징은 생산과 소비가 동시에 일어난다는 것-서비스는 생산자와 고객 간의 사회적 작용이다. 따라서 서비스에 있어서는 고객과 생산공정은 밀접히 관련되어 있으며, 이러한 상호작용은 반드시 생산공정에 반영되어야 한다[2] 서비스의 분석 틀-Pass[3] 서비스 전략-제공할 서비스의 종류 및 유형과 경쟁우위의 성취방안이 제시 되어야 한다-서비스 경쟁을 위한 장기 계획-경쟁수단과 순서가 명시-서비스 전략은 국제 경쟁을 고려[4] 서비스상품의 설계-대부분의 서비스는 무형의 서비스와 유형의 재화의 묶음, 즉 서비스 꾸러미(service package)로 제공된다-서비스 상품의 설계 순서① 서비스 상품의 요소를 정확히 정의② 고객의 기대를 파악③ 서비스 표준을 설정 : 종업원 훈련근법
소프트웨어가 개발되기 위해 정의되고 사용이 완전히 끝나 폐기될 때까지의 전 과정을 단계별로 나눈 것을 소프트웨어 개발 생명 주기(SDLC : Software Development Life Cycle)라 한다. 소프트웨어 개발 생명 주기의 유형에는 폭포수 모형, 프로타이핑 모형, 나선형 모형, 반복적 개발 모형, RAD(Rapid Development) 모형 등이 있는데, 이 보고서에서는 폭포수 모형에 대해 알아보고자 한다.* 폭포수 모형 정의폭포수 모형은 SDLC에 기반하고 있는 소프트웨어 개발 기법 중 하나 이다. 이 모형은 소프트웨어 개발 단계에서 각 단계를 확실히 매듭짓고 그 결과를 철저하게 검토하여 승인 과정을 거친 후에 다음 단계를 진행하며 이전 단계로 다시 넘어갈 수 없는 방식을 갖고 있다.* 폭포수 모형의 특징- 폭포수 모형은 소프트웨어 공학에서 가장 오래되고 가장 폭넓게 사용하며 고전적 생명 주기 모형이라고도 한다.- 소프트웨어 개발 과정의 앞 단계가 끝나야만 다음단계로 넘어갈 수 있는 선형 순차적 모 형이다.- 각 단계별로 산출물이 나오며 단계별 평가서가 존재한다.- 두개 이상의 과정이 병행하여 수행되지 않는다.* 폭포수 모형의 장점- 단계별 정의가 분명하고, 각 단계별 평가가 확실하게 이루어진다.- 프로젝트의 관리가 용이하다.- 각 프로세스 단계의 역할 이해가 용이하다.- 단계별 산출물이 정확하여 개발공정의 기준점을 잘 제시한다.- 산출물 제작이 개발의 중간목표로 간주(프로젝트 통제에 유용).* 폭포수 모형의 단점- 시스템개발이 완료되어야 문제점을 발견할 수 있다.- 요구분석이 끝나면 수정이 쉽지 않다 (고객의 feedback 반영이 어려움).- 규모가 크고 복잡한 시스템에는 적합하지 않다.- 대부분 순환이 발생하기 때문에 순차적인 흐름을 따라가는데 어려움이 있다.- 각 단계의 병행작업 불가로 요구분석에 상당한 시간을 소요할 수 있다.- 고객은 개발된 제품이 자신이 원하는 것인지 알기 위해서 프로젝트 후반까지 기다려야만 한다.* 폭포수 모형의 개발 순서[그림 1] 폭포수 모형의 개발 순서① 계획 (Planning)- 사용자의 문제를 정의하고 전체 시스템이 갖추어야 할 기본 기능과 성능요건을 파악하 여, 이를 개발코자 하는 소프트웨어의 기본요구로 전환한다.- 시스템의 타당성 분석한다.- 산출물: 시스템 정의서, 프로젝트 계획서② 요구 분석 (Analysis)- 사용자의 문제를 구체적으로 이해하고 소프트웨어가 담당해야 하는 정보영역을 정의하며, 의사소통 기술이 필수적이다.- 산출물 : 요구 사양서③ 설계 (Design)- 소프트웨어의 구조와 그 성분을 명확하게 밝혀 구현을 준비하는 단계이다.- 외부 시스템 및 사용자와의 인터페이스를 중시하는 외부 설계와 시스템 내부를 설계하는 내부 설계로 분류되기도 하고, 전체적인 구조와 데이터 알고리즘을 설계하는 단계를 분리 해서 기본설계와 상세설계로 분류하기도 한다.- 산출물 : 설계 사양서(기본설계사양서, 상세설계사양서)④ 구현 (Implementation)- 프로그래밍을 하고, 각 모듈의 코딩 디버깅 수행하는 단계이다.