[목차여기]
TOPCIT은 국가가 주관하는 IT역량지수를 평가하기 위한 자격증 시험이다. TOPCIT을 처음 응시하는 사람이라면, 아마 기출 문제나 자료집을 찾기가 어려울 것이다. 추측하건데 2014년부터 실시되어 왔기 때문에 비교적 오래 되지 않았고, 응시하는 사람이 많이 없기 때문인 것도 같다. 이 분야 전공생으로서 주변 친구들을 보면 다른 자격증 시험을 많이 치거나 자격증 보다 다른 활동에 더 집중하고 있는 것 같다.
나도 학교 전공 수업에서 이 시험을 필수로 응시하라고 했기 때문에 준비를 하게 되었는데 사실 많은 시간을 쏟기에는 아깝다는 생각이 들었다.. 그래서 이틀 벼락치기를 해봤다. 사실 하루도 가능하다.
이 글은 벼락치기 하는 방법과 벼락치기 조차도 하기 싫은 분들을 위한 개념과 문제 풀이를 작성해 두었다.
본인이 전공생이고, TOPCIT 시험에 큰 의의를 두지 않고 있다면 이 글이 도움이 될 것이다.
TOPCIT 공식 홈페이지
먼저, TOPCIT 시험을 응시하기 위해 공식 홈페이지를 방문한다.
메뉴를 보면, 학습가이드라는 카테고리가 있는데 학습자료 | 자료게시판 | TOPCIT 연습하기 가 하위 카테고리로 존재한다.
탑싯 벼락치기를 위해서 자료게시판과 TOPCIT 연습하기를 사용할 것이다.
학습자료를 사용하지 않는 이유는 학습자료가 'TOPCIT 에센스'라는 것을 제공하는데 이것의 양이 너무 많기 때문이다. 6개의 영역마다 약 150페이지의 학습서가 존재한다. 시간이 많다면 다운받아서 읽어보면 될 것 같다. 전공생이라면 기술영역만 공부하는 것도 전략이 될 것 같다.
1. 자료게시판
자료게시판에서 '2020 TOPCIT 문제풀이 (전 영역)' 글을 찾는다. 이 영상은 6개의 영역에 대해서 2020년도 문제를 풀이한다. 어떤 문제가 나오고, 그 문제를 풀기위한 개념은 무엇인지 공부를 하면 된다.
2. TOPCIT 연습하기
TOPCIT 응시 환경을 체험할 수 있도록 모의 응시와 UML/컴파일러 도구를 제공한다. 객체지향과 패턴 관련 수업을 수강한 학생들이라면 UML 정도야 금방 그릴 수 있을테니 간단한 사용법만 익히면 될 것 같다. UML 도구는 draw.io와 거의 동일했다.
핵심은, 모의응시를 진행해 보는 것이다. 아래의 모의응시 바로가기 버튼을 클릭한다.
버튼을 클릭하면 새로운 창의 응시 환경이 나타난다.
그리고 문제풀이 영역이 보인다. 여기서 확인할 수 있는 총 20개의 문제를 풀어보고, 관련 개념을 공부하면 된다.
정리하자면 2020년 문제 풀이 영상, 모의응시 문제 이 두 개만 공부하면 되는 것이다. 그런데 이것도 공부하기 싫은 사람이.. 분명히 있을 것이다. 그래서 지금부터는 이 두 개를 공부하며 내가 필기한 내용을 작성하도록 하겠다.
개념 정리 및 문제 풀이
2020년 문제 풀이 + 개념
기술 영역
데스크톱 가상화(VDI, Virtual Desktop Infrastructure)
→ 데스크톱 가상화는 코로나-19 확산으로 인해 재택근무를 위한 환경으로 부각되고 있음
- 사용자의 데스크톱은 입출력을 위한 장치로만 사용된다.
사용자의 업무 수행을 위한 데이터, 문서등은 서버에 저장된다.데스크톱에 저장 X- 서버에서 애플리케이션 실행결과가 데스크톱 환경에 이미지 형태로 전송된다.
- 클라이언트, 세션관리자, 가상머신, 스토리지 등의 논리적 계층 구조로 구성된다.
SALT 값
고객의 비밀번호만 해쉬함수를 적용하여 저장/관리하게 되면 레인보우(Rainbow) 공격 등과 같은 취약하기 때문에 비밀번호에 (SALT)값을 추가하여 해쉬 함수를 적용하고, (SALT)값은 안전하게 보관하기로 결정
뷰(View)를 생성하기 위한 DDL(Data Definition Language)
(1) 데이터베이스 뷰의 개념에 대해 서술하시오.
기본 테이블인 ‘고객’ 테이블에서 등급이 ‘VIP’인 고객의 고객아이디, 고객성명, 핸드폰번호를 추출하여 ‘VIP고개’이라는 이름의 뷰를 생성한다. 뷰는 데이터베이스에서 하나 이상의 기본 테이블로부터 유도되어 물리적으로는 존재하지 않는 논리적 가상 테이블이다.
(2) 밑줄 친 WITH CHECK OPTION 의 의미는?
(일반적인 내용으로 접근) 뷰를 생성할 때 WITH CHECK OPTION을 사용하면, 뷰를 생성할 때의 조건에 해당하는 데이터에 대해서만 추가/변경/삭제가 가능하도록 제한한다.
(보기의 사례에 적용하여 접근) ‘VIP고객’ 뷰에서 등급이 VIP인 고객정보는 변경할 수 있지만, 등급이 VIP가 아닌 고객정보를 추가/변경/삭제가 불가하도록 제한한다. 뷰를 생성할 때 WITH CHECK OPTION을 사용하면 뷰를 생성할 때의 조건에 해당하는 데이터에 대해서만 추가/변경/삭제가 가능하도록 제한한다.
상위 클래스 추출(Extract Superclass) vs 클래스 추출(Extract Class)
- 상위클래스 추출은 여러 클래스에 포함된 유사한 기능의 필드나 메서드를 추출하여 상위 클래스를 추출하여 공유하도록 하는 리팩토링 기법
- 클래스 추출은 하나의 클래스가 관련 없는 여러 기능을 수행하는 경우 새로운 클래스를 생성하여 일부 기능을 수행하는 필드와 메소드를 새로운 클래스로 이관하는 리팩토링 기법
비지니스 영역
프로그램 저작권 보호 대상
- 프로그램 소스코드
- 프로그램 목적코드
- 프로그램 구조 및 배열
문제 해결을 위한 절차나 방법으로서의 알고리즘(X)
보고서의 개선 사항
- 제목은 문서의 내용을 바로 알 수 있도록 구성해야 한다. 특히 바쁜 상사나 경영진에게는 제목만 보아도 바로 내용이 상상되게 끔 제목을 잘 잡는 것이 중요하다.
- 수요자가 제목만 보고도 전체 내용이나 취지, 보고 성격을 알 수 있도록 내용을 최대한 포괄해야 하는데 되도록 20자 이내로 압축해서 표현하는 것이 좋다.
위험 대응 전략
A사는 차세대 프로젝트에서 인공지능 신기술에 대한 기술적 해결이 어려워, 인공지능 솔루션 공급사와 회의를 하여 공급사가 수행하기로 협의하고 프로젝트를 진행하기로 하였다.
A사가 선택한 위험 대응 전략은?
전가(Transfer) : 영향력 및 대응의 주체를 제 3자에게 이동시켰다.
- 부정적인 위험(위협)에 대한 전략 : 회피, 전가, 완화, 수용
- 긍정적인 위험(기회)에 대한 전략 : 활용, 분담, 증대, 수용
SPI, CPI
- SPI = EV / PV = 일정성과지수
- CPI = EV / AC = 원가성과지수
- 획득 가치 분석(EVM)은 모든 분석 단위를 화폐로 계산하여 분석하는 방법이다.
- SPI < 1 이면 일정 지연이 예상된다.
- CPI < 1 이면 원가 초과가 예상된다.
CRM 재무적 성과 평가 - ROI, PP
CRM 시스템 적용 결과 시스템 도입 전과 비교하여 40억원의 영업이익(순이익은 동일) 획득.
CRM 시스템 도입 위하여 개발 인건비 및 인프라 비용으로 150억원을 투자.
CRM 시스템 관련 50억원의 기타 비용 사용.
ROI(Return of Investment)는 투자수익률로 총 비용 대비 순 효과의 비율이다.
따라서 ROI = 40억 / (150억 + 50억) * 100 = 25%
PP(Payback Period)는 투자비용을 언제 회수할 수 있는지에 초점을 맞춘다.
따라서 PP = (150억 + 50억) / 40억 = 5년
비지니스 환경 분석
국내 프라이빗 클라우드 컴퓨팅 서비스 1위인 A기업은 퍼블릭 클라우드 컴퓨팅 영역으로의 사업 확장을 고려하고 있다. A기업은 IT 전략 수립을 위해 비지니스 환경 분석을 수행하고자 한다. [보기1]의 상황을 참고하여 다음 (1), (2)번 문제에 답하시오.
[보기1]
한국의 많은 기업들은 핵심 비즈니스모델의 혁신과 IT 비용 절감을 동시에 해결하기 위해 클라우드도입을 고려하고 있다. 또한, 정부는 2015년 9월 '클라우드 발전법'을 제정하고공공분야의 민간 클라우드 이용을 통한 산업 활성화를위한 '클라우드컴퓨팅 발전 기본계획'을 발표하였다. 아마존웹서비스(AWS)는2016년 한국 내 클라우드 컴퓨팅 강화를 위해 데이터센터인 서울 리전(Regjion)가동을 시작하였으며, 특히 한국의 퍼블릭 클라우드 시장은 안정성, 보안 등이 검증되면서 연평균22.6%라는 빠른 성장세를 나타내고있다.
(1) IT 전략 수립을 위해 A기업의 SWOT을 분석하시오.
- Strength : 프라이빗 클라우드 사업 영역에 대한 기술적 우위를 차지하고 있다.
- Weakness : 프라이빗 클라우드를 주사업 영역으로 가지고 있어서 퍼블릭 클라우드 운영에 대한 인프라, 서비스 기반이 부족하다.
- Opportunity : 2015년에 제정된 정부의 ‘클라우드 발전법’, ‘클라우드 컴퓨팅 발전 기본계획’으로 인해 공공 분야에서 클라우드에 대한 관심이 고조된 상태다.
- Thread : AWS가 2016년 한국 내 클라우드 컴퓨팅 영역을 차지하기 위해 ‘서울리전’을 가동하기 시작했다.
(2) A기업은 사업 투자를 고려하고 있는 퍼블릭 클라우드와 기존 사업 영역인 프라이빗 클라우드의 개념을 비교하여 설명하시오.
- 퍼블릭 클라우드는 불특정 다수에게 IT서비스를 인터넷을 통해 제공하는 형태이다.
- 프라이빗 클라우드는 기업이 시스템 자원을 직접 소유하고 자신들의 회사 전용의 클라우드로 사용하는 형태다.
[보기2]
- 개발자 3명으로 구성된 소규모 인적 기업으로, 도큐먼트, 스프레드 시트 등의 문서 앱을 개발하고자 한다.
- 실제 어플리케이션을 개발하기 위한 도구 및 인프라를 갖추고 있지 않다.
- 그러나, 현시점에서는 개발용 시스템 구매에 대한 투자는 어려운 상황이다.
- 향후 개발된 시스템은 사용자 증가 시 Scale-out 등이 자동으로 이루어지도록 하고 싶다.
(3) [보기2]는 B기업의 운영 현황을 나타낸 것이다. B기업은 기업 내외부 환경을 고려하여 클라우드 서비스를 받기로 결정하였다. 클라우드 서비스 모델은 크게 SaaS, PaaS, IaaS로 나눌 수 있는데 B기업이 사용하기에 적합한 클라우드 서비스 모델을 추천하고, 해당 모델에 대해 간단히 설명하시오.
PaaS(Platform as a Service)가 적합하다. 애플리케이션을 개발하거나 실행하기 위한 시스템 기능을 서비스로 제공하며 데이터베이스, 개발 프레임워크, 실행 시에 필요한 라이브러리 및 모듈을 제공하는 클라우드 서비스 모델이다.
- SaaS(Software as a Service) : 특정 소프트웨어를 구매하고 설치하는 대신, 인터넷을 통해 액세스하여 사용, IT 리소스가 제한적인 중소기업이나 스타트업에서 소프트웨어 유지보수와 업그레이드의 부담을 줄이고 싶어할 때 사용
- PaaS(Platform as a Service) : 웹 애플리케이션 개발 및 배포가 필요한 개발자들이 사용, 개발자와 개발 팀이 개발 과정을 간소화하고자 할 때
- IaaS(Infrastructure as a Service) : 대규모 컴퓨팅 자원이 필요한 경우, 데이터 센터의 유지 관리에 대한 비용과 복잡성을 피하고 싶은 기업에서 사용
웹 접근성 및 호환성 준수, 모바일 지원, 보안성 강화
(1) 웹 접근성과 웹 호환성의 개념을 각각 설명하시오
- 웹 접근성은 장애인, 고령자 등이 웹 사이트에서 제공하는 정보에 비장애인과 동등하게 접근하고 이해할 수 있도록 보장하는 것이다. 인적, 환경적 용인에 제약 없는 웹 정보 접근!
- 웹 호환성은 서비스 이용자 단말기의 하드웨어 및 소프트웨어 환경이 다른 경우에도 동등한 서비스를 제공하는 것이다. 웹 브라우저 버전이나 종류에 관계없는 웹 사이트 접근, 크로스 브라우징, 웹 표준 준수를 통한 브라우저 호환성을 확보한다.
(2) 반응형 웹과 적응형 웹의 개념을 각각 설명하시오
- 반응형 웹은 디스플레이 종류에 따라 화면 크기 및 해상도가 자동으로 조절된다.
- 적응형 웹은 미리 정해진 몇 가지 화면 크기를 기준으로 두고 비율에 맞춰 페이지를 구성하는 방식이다.
(3) SQL삽입(Injection) 공격에 취약점은 시큐어 코딩을 통해 예방할 수 있다. [보기]의 소스코드를 ‘수정 후’와 같이 보안 취약점이 없도록 작성해라. preparedStatement 방식을 사용, 4줄 이내 작성
String query = "SELECT * FROM ? WHERE Name = ?";
stmt = con.prepareStatement(query);
stmt.setString(1, tableName);
stmt.setString(2, name);
모의 응시 20문제 + 개념
M1. 소프트웨어
오버로딩 vs 오버라이딩
오버로딩
- 오버로딩은 같은 이름의 메서드를 여러 개 정의한다. 각 메서드는 서로 다른 매개변수 목록을 가진다.
- 같은 클래스 내에서 발생한다.
- 컴파일 타임에 결정된다.
오버라이딩
- 부모 클래스의 메서드를 자식 클래스에서 재정의한다.
- 상속 관계에서 주로 사용되고 메서드의 이름, 매개변수 목록, 리턴 타입이 부모 클래스의 메서드와 일치해야 한다.
- 런타임에 결정된다.
CPU Scheduling
비선점 스케줄링이란? Nonpreemptive
- 우선순위 스케줄링 알고리즘이다.
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없다.
- CPU 사용 시간이 긴 하나의 프로세스가 CPU 사용시간이 짧은 여러 프로세스를 오랫동안 대기시킬 수 있으므로 처리율이 떨어질 수 있다.
비선점 스케줄링의 종류
- FIFO
- SJF(Shortest Remaining Time First Scheduling) : 평균 대기 시간을 최소화 하기 위해 CPU 점유 시간이 가장 짧은 프로세스에 CPU를 먼저 할당, 실행 시간이 짧은 프로세스에게 할당 우선 순위에 밀려 연기 상태에 빠질 수도 있다.
- HRN(Highest Response-ration Next) : 실행시간이 긴 프로세스에 불리한 SJF 기법 보완으로 대기시간과 서비스 시간을 이용하는 방식, 우선순위에 대기시간을 고려하고 우선순위가 높은 것을 먼저 수행한다. 이때 Aging기법이 사용되어 Starvation을 방지한다.
잘못된 코드 찾기
B 학생이 잘못 작성하였다. 의도한 결과를 일관되게 도출하지 못하고, 코드의 가독성이 떨어진다. 또한 비트 연산을 사용하는 대신, A학생의 코드처럼 모듈로 연산(%)을 사용하는 것이 더 정확하고 직관적이다.
- A 학생은 num에서 num을 8로 나눈 나머지를 빼서 num을 8의 배수로 만들었다. num을 가장 가까운 낮은 8의 배수로 변환한다.
- B 학생은 num을 입력받고 num을 오른쪽으로 3비트, 왼쪽으로 3비트 이동시킨다.
- num >> 3 은 num을 8로 나눈 몫을 구하고, num <<3은 그 몫에 8을 곱한다.
- 그런데 num이 8에서 15사이의 값을 가질 때, num이 모두 8로 변환된다. (즉, 가장 가까운 낮은 8의 배수로 변환되지 않는다.)
M2. 데이터
DCL 구문
DCL(Data Control Language) 구문은 데이터베이스 관리 시스템(DBMS)에서 데이터베이스에 대한 권한과 관련된 작업을 수행하는 명령어들이다. DCL 구문은 사용자에게 권한을 부여하거나 철회하는 데 사용된다.
- GRANT : select, insert, update, delete 등을 수행할 수 있도록 권한을 부여
- REVOKE : 부여받은 권한을 취소
- COMMIT : 트랜잭션을 완료하여 저장
- ROLLBACK : 트랜잭션을 취소하여 이전 상태로 되돌림
다음 T_EMP 테이블의 SQL문 실행 전과 후의 값을 참고하여 ㉠, ㉡에 들어갈 정확한 DCL구문을 적으시오(각 5점)
BEGIN TRANSACTION A;
UPDATE T_EMP SET SALARY = 3000 WHERE EMP_NO = '0001';
COMMIT TRANSACTION A; -- ㉠
BEGIN TRANSACTION B;
UPDATE T_EMP SET SALARY = 5000 WHERE EMP_NO = '0003';
ROLLBACK TRANSACTION B; -- ㉡
M3. 시스템 아키텍처
서브네팅
210.82.10.0/24 네트워크를 각 서브 네트워크 당 50개의 호스트가 사용할 수 있도록 서브네팅을 수행할 때, 효율적인 서브넷 마스크(Subnet Mask)를 제시하시오.(10점) (Prefix, 비트표현 등 표현 방법 무관, 단 완전한 형태로 작성)
가용한 네트워크는 210.82.10.0/24이다. 50개의 호스트가 필요하기 때문에 최소한 50개의 IP 주소를 제공할 수 있어야 한다. 이를 위해 서브넷 마스크를 /26으로 설정하여 64개의 IP주소를 확보한다.
210.82.10.0/24 네트워크를 64개씩 나누면 총 4개의 서브넷이 생성되며 각 서브넷은 다음과 같다.
210.82.10.0/26: 210.82.10.0 ~ 210.82.10.63 (서브넷 마스크: 255.255.255.192)
210.82.10.64/26: 210.82.10.64 ~ 210.82.10.127 (서브넷 마스크: 255.255.255.192)
210.82.10.128/26: 210.82.10.128 ~ 210.82.10.191 (서브넷 마스크: 255.255.255.192)
210.82.10.192/26: 210.82.10.192 ~ 210.82.10.255 (서브넷 마스크: 255.255.255.192)
서브넷 마스크를 /26으로 설정하여 210.82.10.0/24 네트워크를 64개씩 나누었기 때문에 각 서브넷의 크기가 동일하다.
따라서, 서브넷 마스크: 255.255.255.192
앞 문제를 수행할 때 분할된 서브 네트워크 수를 적으시오. (10점)
4개
서브네팅을 수행한 후, 세 번째 서브 네트워크의 서브넷 주소와 브로드캐스트 주소를 제외한 호스트 IP주소의 범위를 제시하시오.(20점)
서브넷 주소: 210.82.10.128
브로드캐스트 주소: 210.82.10.191
호스트 IP 주소의 범위는 서브넷 주소와 브로드캐스트 주소를 제외한 주소다.
따라서, 210.82.10.129 ~ 210.82.10.190
MTU(Maximum Transfer Unit)
MTU는 네트워크에서 한 번에 전송할 수 있는 최대 패킷 크기를 나타낸다. MTU는 링크 계층의 프로토콜에 따라 다르며, 각 네트워크 인터페이스는 자체 MTU 값을 가진다.
M 플래그 : M 플래그는 IP 패킷 헤더에서 단편화된 패킷의 마지막 단편 여부를 나타내는 플래그 비트다.
- 1(설정됨) : 더 많은 단편이 뒤에 올 것임을 나타낸다. 즉 현재 단편이 마지막 단편이 아님을 의미한다.
- 0(해제됨) : 현재 단편이 마지막 단편임을 나타낸다. 뒤에 더 이상 단편이 없음을 의미한다.
오프셋(offset) : 오펫은 단편화된 패킷에서 원래 데이터의 위치를 나타내는 값이다. 시작 위치를 나타낸다고 생각하면 된다.
- 단위 : 8바이트(64비트)
- 만약, 단편화된 데이터의 크기가 1400byte라면 두 번째 fragment의 오프셋은 1400/8 = 175이다. (0부터 시작하니까)
다음은 MTU(Maximum Transfer Unit)가 1,500byte인 이더넷(Ethernet) 환경에서 크기가 4,000byte인 데이터를 전송하기 위한 단편화 과정을 요약한 것이다. 헤더 크기가 100byte이고 오프셋이 8byte로 표현될 때, [보기의 ㉠에 들어갈 오프셋 값을 계산하시오.
답 : 175 + 175 = 350
M4. 정보보안
데이터 무결성 보장
- HMAC-SHA-1 : SSL(Secure Sockets Layer)프로토콜에서 데이터 변조 여부를 확인하여 데이터 무결성을 보장하고자 할 때 사용하는 알고리즘
- DES(Data Encryption Standard) : 대칭 키 암호화 알고리즘으로, 동일한 키를 사용하여 데이터를 암호화하고 복호화
- RC4(Rivest Cipher 4) : 데이터를 바이트 단위로 암호화하며, 암호화와 복호화 과정에서 동일한 키 스트림을 사용
- RSA (Rivest-Shamir-Adleman) : 두 개의 키(공개 키와 비밀 키)를 사용하여 데이터를 암호화하고 복호화한다. 주로 초기 핸드셰이크 과정에서 세션 키를 안전하게 교환하는 데 사용
SQL 인젝션
웹사이트에서 주로 발생하는 공격 방법으로, 사용자가 입력한 정보가 걸러지지 않은 채 SQL 쿼리에 그대로 사용되어 의도하지 않은 명령을 실행하거나 관리자의 권한을 얻을 수 있는 공격 방법이다. 악의적인 SQL 코드를 입력 폼이나 URL 파라미터를 통해 주입하여 데이터베이스를 조작한다.
예방 방법
- Prepared Statements (준비된 문장): SQL 쿼리를 미리 컴파일하여 입력 데이터를 바인딩하는 방식으로 SQL 인젝션을 방지한다.
- Stored Procedures (저장 프로시저): 데이터베이스 내에서 미리 정의된 쿼리를 실행한다.
- Input Validation (입력 검증): 사용자 입력을 철저히 검증하여 악의적인 데이터를 걸러낸다.
- Parameterized Queries (파라미터화된 쿼리): 쿼리 내에 변수 자리표시자를 사용하여 입력 데이터를 안전하게 바인딩한다.
- Escaping: 입력 데이터에서 SQL 메타문자를 이스케이프 처리한다.
M5. IT비즈니스와 윤리
다음 중 정보화전략계획(Information Strategy Planning)에 대한 설명으로 적절하지 않은 것을 고르시오.
① IT투자, 구축, 운영 측면의 세분화된 실행방안이 포함된 실천계획서
② 조직의 목표달성을 위해 IT자원을 관리하고 운영하는 전략적 방향서
③ 조직의 정보화 요구사항, 설계 및 개발절차를 기술한 정보화 운영지침서 (X) → 정보화운영지침서에 관한 내용
④ 조직의 정보화 요구사항을 분석하여 정보화 최적화 방안을 수립한 계획서
다음 중 빅데이터의 개념 및 관련기술에 대한 설명으로 가장 먼 것을 고르시오.
① 빅데이터 분석 기법은 텍스트 마이닝, 오피니언 마이닝, 소셜 네트워크 분석, 군집 분석 등을 포함한다.
② 빅데이터의 특성을 나타내는 3V는 데이터의 양, 데이터 입출력의 속도, 그리고 데이터 종류의 다양성을 의미한다.
③ 토픽 분석은 대량의 문서에서 토픽을 추출하는 기법으로, 하나의 문서가 다수의 토픽에 대응될 수 있다.
④ NoSQL 제품들은 공통적으로 Foreign Key를 사용하여 데이터 간 관계를 정의한다. (X) → 관계형 데이터베이스에 대한 설명
S회사에서는 ERP를 재구축 하고자 한다. 그 대안으로 상용패키지 도입과 자체개발(In-House)을 고려하였고, 결국 자체개발로 결정했다. 다음의 ‘S회사의 현황’을 고려하여 아래 물음에 답하시오.
S회사의 현황
① S사는 협력업체와의 관계가 복잡하고 프로세스가 정형적이지 않으며,통합적이지 않다.
② 영업 및 구매 프로세스가 일번적이지 않고 고유한 프로세스를 갖고 있다.
③ 전체 프로세스를 관리하기 쉬워야 한다.
④ 경영진들은 혁신적 선진 프로세스를 도입하길 원하지만,실무진들은 UI(User Interface)편의성이 높은 시스템을 원한다.
⑤ 벤더 종속적이지 않은 ERP 시스템을 원한다.
자체 개발에 대한 장점은?
- 고유한 프로세스에 대한 요구사항을 완벽하게 반영한 ERP 시스템을 설계할 수 있다.
- 자체 개발된 ERP 시스템은 특정 벤더에 대한 종속성을 줄일 수 있다. 외부 벤더의 기술 지원이나 라이선스 갱신에 의한 비용 부담을 피할 수 있다.
자체 개발에 대한 단점은?
- 높은 개발 비용 및 시간이 소요된다.
- 자체 개발의 인력들이 회사를 이탈하면 유지 보수가 어려워질 수 있다.
M6. TC와 PM
Quality Control 기법 (품질 관리)
- 특성요인도 (Cause and Effect Diagram)
- 문제의 원인을 식별하고 조직하는 데 사용된다.
- 이시카와 다이어그램 또는 생선뼈 다이어그램이라고도 불린다.
- 파레토도표 (Pareto Diagram)
- 빈도 또는 중요도에 따라 문제의 우선순위를 정한다. 80/20 법칙을 기반으로 전체 문제의 80%가 주요 원인 20%에서 발생한다고 가정한다.
- 빈도 또는 영향 정도를 막대그래프로 표시한다.
- 산점도 (Scatter Diagram)
- 두 변수 간의 관계를 시각적으로 표현하는 도구이다.
- X축과 Y축에 플롯된다.
- 히스토그램 (Histogram)
- 데이터 분포를 시각적으로 나타낸다. 데이터를 연속적인 구간으로 나누고 각 구간에 속하는 데이터 포인트의 빈도를 막대그래프로 표시한다.
- 중앙값, 분산, 왜도 등을 시각적으로 분석할 수 있다.
- 관리차트 (Control Charts)
- 프로세스의 변동을 모니터링하고, 프로세스가 통제 상태에 있는지를 평가하는 도구다. 프로세스 데이터 포인트를 시계열로 플롯하여, 프로세스가 통계적 관리 상태에 있는지 확인하고, 비정상적인 변동을 식별하는데 유용하다.
- 중심선(CL) : 프로세스의 평균값
- 관리 상한선(UCL) : 통계적으로 설정된 상한값
- 관리 하한선(LCL) : 통계적으로 설정된 하한값
- 계층도 (Startification)
- 데이터 수집 시 서로 다른 변수에 따라 데이터를 분리한다.
- 데이터를 계층화하여 각각의 그룹에서 발생하는 문제를 별도로 분석한다.
일정 관리 프로세스
㉣ 활동 순서 배열 → ㉡ 활동 자원 산정 → ㉢ 활동 기간 산정 → ㉠ 일정 개발 → ㉤ 일정 통제
PERT(Program Evaluation and Review Technique)
낙관치(To) : 활동이 가장 순조롭게 진행될 경우의 최소 소요 시간이다.
최빈치(Tm) : 활동이 일반적으로 기대되는 소요 시간이다. (가장 자주 발생할 것으로 예상되는 시간이다)
비관치(Tp) : 활동이 가장 불리한 상황에서 진행될 경우의 최대 소요 시간이다. 가장 나쁜 상황이 발생한다고 가정할 때 걸리는 시간이다.
주공정 = Critical Path
- 주공정은 네트워크 다이어그램에서 가장 긴 경로로, 프로젝트의 시작에서 끝까지의 경로 중 가장 많은 시간이 소요되는 경로이다. 즉, 기대시간이 가장 긴 경로
- 주공정에 있는 활동들은 모두 여유 시간이 없어 이 활동들이 지연되면 전체 프로젝트 일정이 지연된다.
- 주공정의 길이는 프로젝트를 완료하는 데 필요한 최소 시간을 나타낸다.
기대시간 (Expected Time)
다음은 PERT(Program Evaluation and Review Technique) 네트워크를 도식한 것이다. 화살표 위의 숫자는 낙관치(To), 최빈치(Tm), 비관치(Tp)를 순서대로 나열하여 표시하고 있다. PERT기법을 이용하여 주공정(Critical Path)과 주공정의 기대시간을 계산하시오.
㉠ 주공정 : 1 -> 3 -> 4 -> 5
㉡ 주공정의 기대시간 : 22
M7. 통합 역량
백업
- 아카이브 로그 모드 : 데이터베이스의 모든 변경 사항을 로그 파일에 기록하여 장애 발생 시 포인트 인 타임 복구를 가능하게 한다.
- 비 아카이브 로그 모드 : 데이터베이스 변경 사항을 로그 파일에 기록하지 않기 때문에 저장공간을 절약할 수 있어서 주로 테스트 환경에서 사용된다.
- 전체 백업 : 데이터베이스의 모든 데이터를 백업하는 방식이다.
- 차등 백업 : 마지막 전체 백업 이후 변경된 모든 데이터를 백업하는 방식이다.
- 증분 백업 : 마지막 전체 백업이나 증분 백업 이후 변경된 데이터를 백업하는 방식이다.
A회사는 고객관리 시스템을 재구축하려 한다. 다음은 현재의 고객관리시스템 현황과 시스템 담당자와의 인터뷰 내용과 이다. 다음을 참고하여 아래 물음에 답하시오. (하위문제 2개)
문제1 현재 고객관리 시스템에 대한 백업정책의 문제점을 분석하시오.(30점)
- 비 아카이브 로그 모드로 운영 중이기 때문에 데이터 변경 사항이 로그로 기록되지 않아, 장애 발생 시 마지막 백업 이후의 데이터는 복구할 수 없다.
- 일 1회 전체 백업만 수행되어서 최대 24시간 분량의 데이터 손실 위험이 존재하며, 일 1회 차등 백업만으로는 12시간 분량의 데이터 손실 위험이 존재한다.
- 시간당 데이터 변경 로그가 1GB씩 발생하지만, 비 아카이브 로그 모드에서는 이를 활용할 수 없다.
문제2 인터뷰 내용을 참고하여 새로운 고객관리 시스템에 가장 적합한 데이터베이스 백업운영방안을 전체, 차등, 아카이브 로그 측면으로 제안하시오.(30점)
- 아카이브 로그 모드로 변경을 하여 데이터 변경 사항을 기록한다. 그러면 장애 시 포인트 인 타임 복구가 가능하다.
- 차등 백업 대신 증분 백업을 도입하여 더 자주 백업한다. 전체 백업을 주간 또는 월간으로 설정하고 나머지 시간은 증분 백업으로 보완한다.
- 백업 과정을 자동화하고 모니터링하여, 백업 실패 시 즉시 대응할 수 있도록 한다.
고객 기본정보 출력 코드에서 취약점 두 가지가 발견되었다.
취약점’ ①번이 발견되었다. 이를 해결하기 위해 코드의 예외상황 발생 시에도 DB접속 자원이 정상적으로 해제되도록 7번 라인을 10번 라인으로 이동하여 코드를 수정하시오.(30점)
finally를 추가한다.
try {
String query = "SELECT * FROM 고객 WHERE 고객번호 = ?";
stmt = con.prepareStatement(query);
stmt.setString(1, custID);
rs = stmt.executeQuery();
// 결과 처리
...
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 자원 해제
try {
if (con != null) con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
‘취약점’ ②번의 해결을 위해 ‘고객 기본정보 출력 코드’의 3번, 4번 라인을 수정하시오.(40점)
String query = "SELECT * FROM 고객 WHERE 고객번호 = ?;
stmt.setString(1, custID);
끝!
제21회 탑싯 성적이 나와서 공유합니다.
보통 "군, 산업계 지원시 서류전형 가산점 최소 기준인 3수준(400점)이상" 이라고 하니 나름 괜찮은 것 같습니다!!
'자격증' 카테고리의 다른 글
[AWS] SAA 자격증 합격 후기, 합격 팁 공유 - Solutions Architect Associate (4주 소요) (9) | 2024.09.01 |
---|---|
2024 AWS 자격증 할인 바우처 ~ 24. 09. 30 (0) | 2024.08.08 |