개요
안녕하세요 빈코입니다! 오늘은 최근에 합격 SW개발_L3 자격증 공부 방법에 대해서 포스팅하려 합니다. SW개발_L3 자격은 일학습병행제의 일부로, 실무 중심의 소프트웨어 개발 능력을 테스트하는 시험입니다. 기존에는 필기시험, 실기 시험, 면접으로 총 3가지로 구성되었는데, 최근에 제가 본시험은 면접은 빠지고 필기시험과 실기 시험으로 구성되어 있었습니다.
시험 과목은 총 8가지로 필기는 '개발자 환경 구축, 애플리케이션 테스트 수행, UI 테스트, 애플리케이션 배포, 응용 SW 기초 기술 활용' 총 5가지 과목으로 되어 있고, 실기는 'SQL 활용, 화면 구현, 프로그래밍 언어 활용' 총 3가지로 구성되어 있습니다.
8개의 과목 중 6개의 과목을 Pass 하면 시험 통과이고, 5개부터는 Fail입니다. 오늘 포스팅의 주된 내용은 필기 5과목의 족보 정리입니다. 사실 책 한번 쓱 읽고 올려드린 족보만 외우시더라도 필기 과목 통과는 그리 어렵지 않다고 생각해요😊 그럼 하단에서 과목별로 족보 정리한 내용을 공유할게요!
응용 SW 기초 기술 활용📙
1-1 네트워크 프로토콜 활용
네트워크 프로토콜은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계이다. 네트워크 프로토콜의 특징은 단편화, 재조립, 캡슐화, 연결제어, 오류제어, 동기화, 다중화, 주소지정 이다
[OSI 7 계층]
필요성 : 각 계층에 사용되는 통신 규격을 프로토콜로 표준화함으로써 응용 소프트웨어 개발자, 서버/네트워크 엔지니어들이 본인이 연관된 계층만 고려하며 업무를 수행할 수 있도록 구성
- 7 계층(애플리케이션) / 사용자 입출력 및 서비스 제공 / L7 스위치, 웹 방화벽
- 6 계층(프레젠테이션) / 인코딩, 암호화, 압출, 코드 변환
- 5 계층(세션) / 송수신지의 프로세스 간 연결 관리
- 4 계층(트랜스포트) / 세그먼트 구성, 포트 지정, 메시지 분할 및 재조립 / 로드밸런서, 방화벽
- 3 계층(네트워크) / 패킷 구성, 논리 주소(IP) 지정 / 라우터, L3 스위치
- 2 계층(데이터 링크) / 프레임 구성, 물리주소(MAC) 지정 / NIC, L2 스-위치
- 1 계층(피지컬) / 비트 스트림의 전기 신호 전송, 비트의 부호화 및 복호화 / 허브, 리피터, 케이블
- 5~7 계층 / 애플리케이션 / HTTP, FTP, SMTP, TELNET 등
- 4 계층 / 트랜스포트 / TCP(패킷 송수신), UDP(패킷 단방향 송신)
- 3 계층 / 인터넷 / ARP(IP의 MAC 주소 변환), ICMP(NW 제어)
- 1~2 계층 / 네트워크 액세스 / RS-232(직렬 포트), FDDI(광섬유 케이블)
💫 인캡슐레이션 : 송신지 애플리케이션(7 계층)에서 발생한 데이터를 하위 계층으로 이동시키면서 각 계층에서 처리한 결과를 캡슐화
💫 디캡슐레이션 : 수신지의 하위 계층에서 인식한 데이터를 상위 계층으로 이동시키면서 각 네트워크 계층에서 처리 가능한 형태로 디캡슐화하는 과정
✔️ 정적 라우팅 : 네트워크 관리자가 직접 라우팅 테이블에 라우팅 경로를 입력하여 관리하는 방법
✔️ 동적 라우팅 : 네트워크 관리자가 직접 개입하지 않고 라우터 간에 정보를 교환하면서 라우팅 경로를 관리하는 방법
1) 거리 백터 라우팅(RIP-라우터 최대 수) 2) 링크 상태 라우팅(OSPF-자신의 변경 정보 전달)
✔️ IaaS(Infrastructure as a Service): 웹상에서 구글, 마이크로소프트, 아마존 등에서 제공하는 환경의 네트워크, 보안, 데이터 저장소, 콘텐츠 딜리버리 서비스를 포함한 다양한 인프라를 임대하여 이용할 수 있는 서비스
✔️ PaaS(Platform as a Service): 운영체제가 이미 구성되어 있는 상태에서 사용자는 데이터와 애플리케이션만 직접 관리할 수 있는 서비스
✔️ SaaS(Software as a Service): 인프라와 운영체제뿐만 아니라 사용할 수 있는 소프트웨어까지 갖추어져 웹상의 로그인만으로 다양한 소프트웨어를 사용한 만큼 비용을 지불해 가며 사용할 수 있는 서비스
2-1 미들웨어 파악
💫 미들웨어 : 하나의 시스템에서 다양한 목적의 응용소프트웨어가 동시에 수행되거나 복수 시스템의 응용소프트웨어가 서로 연계되어 수행되는 경우에도 안정적으로 실행될 수 있도 록 운영체제와 응용소프트웨어 사이에서 다양한 기능을 지원하는 소프트웨어
미들웨어 주요 기능 : 분산 시스템 SW, IT 자원 관리, 서비스 플랫폼, 네트워크 보안
[수행 순서]
1. 운영체제와 응용소프트웨어 사이에 존재하는 미들웨어의 역할을 파악한다.
2. 미들웨어에서 제공하는 기능 및 처리 흐름을 파악한다.
2-2 미들웨어 운용
✔️ 전자정부 프레임 워크 : 정부에서 Java 기반 시스템 구축 시 활용하는 개발 프레임워크
✔️ Scouter : 애플리케이션 성능 관리 도구, 엔지니어가 분산 환경에서 안정적으로 시스템을 운영 및 관리하도록 지원하는 미들웨어
[수행 순서]
1. 응용소프트웨어 특성에 따라 미들웨어를 선정하여 설치한다.
2. 응용소프트웨어 특성에 따라 선정된 미들웨어를 운용한다.
3-1 데이터베이스 특징 식별
💫 데이터베이스 관리시스템 특징 : 무결성, 일관성, 회복성, 보안성, 효율성
✔️ 계층형 데이터베이스 : 한 레코드는 필드로 구성, 빠른 접근 속도
✔️ 망형 데이터베이스 : 레코드에 부모 레코드의 포인터도 관리 가능, 유연성 좋음
✔️ 관계형 데이터베이스 : RDB, 레코드의 집합을 테이블로 구성
✔️ 객체지향형 데이터베이스 : OODB, 객체 재사용, 캡슐화, 상속 가능
✔️ 객체관계형 데이터베이스 : ORDB, 개발자가 데이터형 정의 가능
💫 트랜잭션은 데이터베이스의 상태를 변화시키기 위한 최소 작업 단위로 한 번에 처리되어야 하는 질의어(SQL)의 묶음(
원자성, 일관성, 고립성, 지속성), 특히 고립화 수준(Transaction Isolation Level)을 제어함으로써 트랜잭션 처리 과정에서 참조되는 의 일관성을 유지하여 트랜잭션 결과의 모호성을 방지
3-2 관계형 데이터베이스 테이블 정의
✔️ 데이터 모델링 : 시스템으로 구성하기 위한 데이터의 집합(실체)을 도출한 후 각 집합을 구성하는 세 부 속성과 식별자를 정의하고 각 데이터 집합 간의 관계를 정해진 표기법(Notation)으로 시각화하는 과정
✔️ 개념 모델링 : 현실세계의 정보를 추상화하여 주제 영역을 정의하고 식별자/관계/속성을 도출해 개념 ERD(Entity-Relationship Diagram) 작성
✔️ 논리 모델링 : 개념 데이터 모델을 특정 데이터베이스(계층형, 망형, 관계형)에 적합하 도록 구조화하여 논리 ERD를 작성하는 과정
✔️ 물리 모델링 : 특정 DBMS(Database Management System)에서 활용 가능하도록 물리 ERD 및 테이블 정의서 작성 과정
💫 E-R 데이터 모델 : 현실세계의 구성요소들을 데이터베이스로 관리하기 위해 유형화, 집단화, 일반화 과정을 통해 추상화하여 개체와 관계로 구조화한 데이터 모델 / 개체 표기법, 속성 표기법(PK, FK), 관계 표기법
💫 정규화 : 데이터 중복 등으로 발생하는 삽입/삭제/갱신 이상현상(Anomaly)을 방지하기 위해 속성 간의 종속 관계를 제거하여 무손실 분해하는 기법
💫 반정규화 : 완전한 정규화를 수행한 이후에 성능, 관리 편의 등을 고려하여 테이블 또는 칼럼을 통합하는 기법
3-3 관계형 데이터베이스 테이블 조작
💫 DDL : CREATE, ALTER, DROP, TRUNCATE
💫 DML : SELECT, INSERT, UPDATE, MERGE, DELETE
💫 DCL : GRANT, REVOKE
개발자 환경 구축📘
1-1 운영체제 식별
✔️ 운영체제 : 컴퓨터 시스템이 제공하는 하드웨어(H/W)와 소프트웨어(S/W) 기능을 사 용할 수 있도록 해주는 시스템 소프트웨어(S/W)로, 한정된 시스템 자원을 효율적으로 사용할 수 있도록 관리 및 운영
✔️ 윈도우 OS : 유료, 소규모 및 개인용에 사용
✔️ UNIX : 유료, 대용량
✔️ Linux : 무료, 중대 규모
✔️ iOS : 스마트폰 및 태블릿 PC
✔️ Android : 무료, 스마트폰 및 태블릿 PC
1-2 운영체제 기본 명령어 활용
💫 CLI : 사용자가 직접 명령어를 입력하여 컴퓨터 시스템에게 명령을 내리는 방식
💫 GUI : 사용자가 마우스 등을 통해 윈도에서 프로그램을 실행하고 파일을 이동하는 방식
💫 윈도우 기본 명령어 : systeminfo, regedit, netstat -na, sfc, dir 등
💫 리눅스 기본 명령어 : ls, cd, dp, mv, rm, mkdir, cat , alias 등
1-3 운영체제 작업 우선순위 설정
💫 준비리스트 : 우선순위를 부여하여 가장 높은 우선순위를 갖는 프로세스가 다음 순서에 CPU를 할당받는다.
✔️ 대기리스트 : 우선순위가 존재하지 않음
✔️ Nice, renice로 프로세스 우선순위 조정 (-19 ~20) 낮을수록 우선순위 높음
UI 테스트📒
1-1 테스트 기법 선정
✔️ 휴리스틱 평가 : 일련의 규칙들을 만들어 놓고 평가 대상이 규칙을 잘 지키고 있는가를 확인
✔️ 페이퍼 프로토타입 평가 : 프로토타입의 가장 빠른 방법, 자유롭게 의견을 개진하면서 발전시키는 방법
✔️ 선호도 평가 : 선호도에 영향을 미치는 속성들을 파악
✔️ 성능 평가 : 사용자가 실제로 제품을 사용해 보고 테스트 별 평가
[수행 순서]
1. 구현된 UI에 대해서 사용성 테스트의 목적과 필요성, 그리고 중요성에 대해서 이해관계자들 간에 인식을 공유한다. (인식 공유)
2. 수립된 UI 테스트 계획에 따라, 사용성을 검증하고자 하는 대상의 단계별 구체적인 내용을 파악한다. (내용 파악)
3. 사용성 검증을 위해 다양한 UI 사용성 테스트 기법을 조사하고 이해한다. (기법 이해)
4. 여러 가지 UI 사용성 테스트 기법 중 구현된 UI를 테스트하기에 가장 적절한 기법을 선정한다. (기법 선정)
1-2 테스트 환경 구축
✔️ 사용자 중심 디자인 : 사용자한테 시스템 기능에 맞춰 적응하게 유도하는 게 아니라, 사용자가 필요한 것을 디자인
✔️ 인터랙션 디자인 : 입출력 장치로 시스템과 사람이 주고받는 의사소통하는 것이 인터랙션
✔️ 프로토타입 : 중요 기능들이 포함되어 있는 시스템의 초기 모델
✔️ 와이어프레임 : 최종 화면에 표시될 콘텐츠를 요약하여 보여주는 것
✔️ 시장현황보고서 : 시장 현황 및 매력 요인을 도출하고 성공가능성을 예측하기 위한 보고서
✔️ 기술현황보고서 : 사용자 정보를 프로젝트 멤버들과 사업 분야별로 상표, 디자인 등 기업이 등록한 지적재산권 및 등록내용의 변화 추리를 조사한 보고서
[수행 순서]
1. 구현된 UI의 사용성 테스트의 주요 과제와 목표를 설정하고, 테스트 환경 구축의 필요성 및 중요성에 대해서 인식을 공유하고, 중요 테스트 항목을 정리한다. (목표 설정)
2. 구현된 UI의 사용성 테스트에서 일반적으로 검증해야 하는 주요 항목검증과 테스트 환경을 구축할 시 고려해야 할 사항에 대해서 정리한다. (항목 정의)
3. 구현된 UI의 사용성 테스트에 참여할 테스트 참여자를 확보하고, 테스트를 위한 룸을 준비한다. (참여자 및 룸 설정)
4. 사용성 테스트를 실시할 때 사용하는 서류, 장비 및 비품 등을 준비한다. (환경 설정)
5. 구현된 UI의 사용성 검증을 위한 사용성 테스트 진행 인원을 구성한다. (인원 구성)
1-3 사용성 테스트 계획서 작성
✔️ 사용성 : 학습용이성, 사용효율성, 주관적 기쁨의 요견을 충족시킴으로써 얻어지는 시스템의 특성, 회사 비용 절감 및 사용자 요구 충전하는 제품 만들기 위한 개발 사이클 전체에 걸쳐 사용자의 피드백을 받는 제품 개발 방식
✔️ 사용성 테스트 : HCI(Human Computer Interface)를 구성, 테스트의 중심은 사용자
✔️ 인터페이스 : 컴퓨터와 같은 디지털 시스템의 입출력 장치
✔️ 그래픽 사용자 인터페이스 : 그림으로 된 화면 위의 물체, 색상과 같은 그래픽 요소들을 기능과 용도를 나타내기 위한 인터페이스
✔️ UI 디자인 : 소프트웨어 화면 등 사람과 접하는 면을 디자인
✔️ UX 디자인 : 사용자가 제품을 경험하면서 느낀 총체적 경험
[수행 순서]
1. 사용성 테스트 계획을 수립하고, 계획서를 작성하기 위해, 사용성 테스트의 개요, 목적, 범 위, 대상 등에 대해서 정의한다.
2. 대상 제품(시스템, 패키지 소프트웨어, 홈페이지 등)에 사용성 테스트를 수행하는 데 있어서 사용자가 가장 관심 있어하는 항목 및 많이 하는 활동에 대해서 정의한다.
3. 사용성 테스트를 수행하는 데 있어서 주요한 이슈 사항을 정리한다.
4. 정리된 주요 이슈 사항을 기반으로 사용성 테스트에 대한 검토사항을 정리한다.
5. 대상 제품의 사용성 테스트 시나리오를 설계한다.
2-1 사용성 테스트 수행
💫 파일럿 테스트 : 실제 상황에서 실현하기 전에 소규모로 시험 작동 해보는 것
💫 심층 인터뷰 : 일대일 면접을 통해 소비자의 심리를 파악하는 조사법
💫 포커스 그룹 인터뷰 : 표적시장으로 예상되는 소비자를 몇 명 모아서 토론하여 자료를 수집하는 방법
✔️ 맥락적 인터뷰 : 인터뷰를 진행하면서 리서치는 민족지학적 기법으로 특정 행동을 관찰 및 조사
[수행 순서]
1. 파일럿 사용성 테스트를 실시한다
2. 사용성 테스트를 위한 사용자 프로필을 정의한다.
3. 사용성 테스트를 실시하기 위한 최종 점검을 실시한다.
4.UI 사용성 테스트의 취지, 목적, 일정, 간략한 방법에 대해서 설명한다.
5. 사용성 테스트를 수행한다.
2-2 평가 분석서 작성 및 이슈 도출
✔️ 태스크 성공 매트릭스 : 가장 일반적, UI/UX 디자인의 태스크 성공 여부의 빈도 분포로 표현
✔️ 에러 매트릭스 : 태스크 진행 중 얼마나 많은 실수가 있었는지
✔️ 효율성 매트릭스 : 태스크를 완료하기 위해 걸리는 시간, 인지적 노력과 물리적 노력의 양을 중요하게 여길 때 효과적
✔️ 시간 기반 태스크 매트릭스 : 어떤 제품이든 측정 가능, 태스크 완료 시간 측정
✔️ 데이터 이력기록기 : 온도, 유량 등 공정변수의 아날로그 입력을 디지털수로 변환하여 자동으로 기록하는 장치
💫 옵저베이션 : 어떤 대상, 어떤 과정이 어떻게 구성이 되었고, 어떻게 해서 생기는지에 대한 사실을 있는 그대로 확인하는 것
💫 NEM 기법 : 대상 제품을 처음 사용해 보는 초심자와 개발에 참여한 숙련자를 사용성 테스트에 참여
[수행 순서]
1. 사용성 테스트 결과의 분석을 실시할 때 유의할 점을 정리한다.
2. 대상 제품의 사용성 테스트 성공 또는 실패 여부를 분석하는 태스크 성공 매트릭스를 실시하다.
3. 사용성 테스트 참여자가 태스크를 달성하는데 소요된 시간을 측정하여 결과를 분석하는 시간 기반 매트릭스를 실시한다.
4. 사용성 테스트 참여자가 태스크를 달성하는 과정에서 페이지를 이동한 횟수, 클릭과 커서 횟 수, 이동 동선에 대해서 측정한 결과를 분석한다.
5. 사용성 테스트의 테스크 수행과 문제점(불편사항, 개선사항, 오류, 에러 등) 간의 관계를 분석한다.
6. 사용성 테스트 참여자가 사용성 테스트를 수행하는 과정에서 발생한 문제점(불편사항, 개선 사항, 오류, 에러 등)들을 분류 및 정리하고 분석한다.
3-1 UI 개선방안 및 수정계획 수립
✔️ UI 디자인 : 정보기기나 소프트웨어의 화면 등 사람과 접하는 면을 설계하고 디자인하는 것을 의미
✔️ UI 컨셉션 : UX(User Experience) 컨셉의 가시화 단계에서 진행되는 주요 화면(Key Screen)에 대한 UI 컨셉 설계를 의미
✔️ GUI 컨셉션 : UI 컨셉션과 함께, 화면 디자인 관점에서 UX 컨셉을 가시화하는 것으로, 주요 화면 (Key Screen)에 대한 시안을 디자인
✔️ UX 컨셉 리뷰 : UX 전략, UI 컨셉션, GUI 컨셉션의 결과물을 토대로 UX 전략이 잘 적용되었는지
💫 컨셉모델 : 여러 가지 추상적인 컨셉들 사이의 관계를 보여주는 다이어그램이며, 다양한 아이디어들을 간편하게 시각화하여 표현할 수 있는 유용한 방법
✔️ 멘탈모델 : 사람들이 대상 제품을 어떻게 사용하고 싶어 하는지 이해하기 위해 사람들 이 하는 행동들의 패턴을 찾고 그 패턴을 정의
✔️ 카드소팅 : 정보구조를 알 수 있는 가장 단순하면서도 효과적인 방법 중의 하나로서, 아이디어와 컨셉을 작은 카드에 적고 사용자가 카드를 그룹으로 분류 및 정렬하여 정보를 구조화
[수행 순서]
1. 사용성 테스트를 통해 도출된 이슈사항에 대해서 이해한다.
2.UI 개선 방안을 수립하는 목적을 정의하고, 참여 인원을 구성한다.
3. 사용성 테스트를 통해 도출된 이슈사항에 대해서 UI 개선 방안을 수립한다.
4.UI 개선방안을 기반으로 수정 계획을 수립한다.
3-2 UI 개선 결과보고서 공유
✔️ 사용자 중심 매뉴얼 : 실제 사용자들이 실제 사용환경에서 필요한 정보화 이해도 높은 편집 및 내용 구성을 적용한 매뉴얼
✔️ ISO/IEC 9126
→ 제1계층 : 사용자 관점에서 소프트웨어의 품질 목표를 정의한다.
→ 제2계층 : 품질 목표를 달성할 수 있는 광범위한 품질특성 (quality characteristics)이다.
→ 제3계층 : 상위 특성을 구성하는 구체적인 품질부특성(sub-characteristics)이다.
→ 제4계층 : 소프트웨어 특성을 측정하기 위한 메트릭(metric)이나 품질인자가 위치한다.
✔️ 기능성, 신뢰성, 사용성, 효율성, 이식성, 유지보수성
✔️ 정량적 리서치 : 경쟁사사이트, 벤치마킹사이트 또는 이전 디자인과 비교하여 현재 나의 UX 디자인 수 준을 평가하는 방법
✔️ 정성적 리서치 : 사용자의 행동과 관련된 콘텍스트와 인사이트를 얻기 위한 방법, 테스트를 통해 사람들의 반응을 봄
[수행 순서]
1. 수립된 UI 개선 방안과 수정 계획서를 기반으로 수행된, UI 개선 결과에 대해서 작성된 결과보고서를 확보하고 내용을 숙지한다.
2.UI 개선 결과보고서를 공유할 수 있는 방안을 수립한다.
3.UI 개선 결과보고서의 작성이 완료되었음을 관련 부서에게 알리고, 향후 UI 개선 시에 이를 활용할 수 있도록 공지한다.
4.UI 개선 방안과 수정 계획을 기반으로 작성된 UI 개선 결과보고서를 업무에 효과적으로 활 용할 수 있도록 설명회를 개최한다.
5.UI 개선 방안과 수정 계획을 기반으로 작성된 UI 개선 결과보고서를 업무에 효과적으로 활 용할 수 있도록 소규모 인원이 참석하는 세미나를 개최한다.
6.UI 개선 방안과 수정 계획을 기반으로 작성된 UI 개선 결과보고서를 공유 결과에 대해 보고 서를 작성한다.
애플리케이션 배포📗
1-1 애플리케이션 배포환경 구성
💫 컴파일 언어(C, C++) : 전처리기 → 파싱 → 번역 → 어셈블리 → 링킹
✔️ Byte Code 언어(Java, C#) : JRE, CLI 환경에서 기계어로 변환
💫 인터프리터 언어(js, python) : 한 줄씩 번역되어 실행
✔️ 웹서버 : 정적 리소스
✔️ WAS : 동적인 처리를 수행하는 프로그램 실행 부분 배포
[배포 단위]
✔️ jar = 라이브러리, 리소스 등
✔️ war = servlet, jar, WEB-INF 폴더 web.xml
✔️ ear = jar와 war를 묶어
💫 형상관리 : 계획부터 폐기까지 모든 활동을 지속적으로 관리
✔️ 형상항목 : 형상관리 대상이 되는 항목을 의미
✔️ 기준선 : 향후 기준이 되는 형상항목의 집합체
✔️ 마이그레이션 : 개발 단계에서 운영 단계로 전환 시 관련 소스 파일을 저장 공간으로 이관 작업
✔️ 리포지터리 : 저장 공간
✔️ 워크플로 : 정해진 절차가 형상관리 시스템 안에 구현됨
✔️ 반출 : 형상항목을 변경하기 위해 형상 리포지터리부터 전송받는 것
✔️ 반입 : 반출된 형상항목을 변경 후 다시 형상 리포지터리로 전송
[수행 순서]
1. 프로젝트의 배포관리 요건을 분석하고 배포환경 구성 방안을 계획한다.
2. 애플리케이션 배포를 위한 도구와 시스템을 선정하고 설치한다.
3. 애플리케이션 개발 기간(개발 프로젝트) 중 적용할 배포 절차 및 역할을 정의한다.
2-1 애플리케이션 소스 검증
💫 코드 인스펙션
→ 정의 : 정적 테스트의 가장 일반적인 유형, 사전에 정의된 코드 작성 규칙 기반으로 점검
→ Rule : 성능 개선, 코드 작성 규칙, 에러 발생 가능성
→ 심각도 : 필수(Blocker), 권고 상(Critical), 권고 중(Major), 권고 하(Minor), 정보(info)
[수행 순서]
1. 코드 인스펙션 점검 Rule을 정의한다.
2. 변경 대상이 되는 애플리케이션 소스를 형상관리 서버로부터 반출(Check Out)한다.
3. 코드 인스펙션을 수행하고 점검 결과를 검증한다.
4. 코드 인스펙션 점검 결과를 반영한 Rule을 가이드하고 개발 조직이 반영하게 한다.
5. 도입된 테스트 프레임워크를 기반으로 테스트 코드를 작성하고 테스트를 수행한다.
애플리케이션 테스트 수행📓
1-1 테스트 수행 → 테스트는 정확성이 생명
💫 단위 테스트 : 작은 소프트웨어 단위(컴포넌트 또는 모듈)를 테스트하는 것
💫 통합 테스트 : 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호 작용 테스트
💫 시스템 테스트 : 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지 테스트 (성능 및 장애 테스트)
✔️ 인수 테스트 : 최종 사용자 테스트 및 개발된 제품에 대한 운영 여부 결정 테스트
✔️ (비기능적 요구사항) 화이트 박스 테스트 : 프로그램 내부 구조 및 복잡도 검증, 제어 흐름 & 조건 결정
✔️ (기능적 요구사항) 블랙박스 테스트 : 목적 및 실행 코드 기반의 실행을 통한 테스트, 동등 분할 & 경계 값 분석
1-2 결함관리
✔️ 순서 : 결함 등록 → 결함 검토 → 결함 할당 → 결함 수정 → 결함 조치 보류→ 결함 종료 → 결함 해제
✔️ 결함 심각도
→ High : 시스템이 중단되어 더 이상 프로세스를 진행할 수 없게 만드는 결함
→ Medium : 시스템의 흐름에 영향을 미치는 결함으로 부정확한 기능, 데이터베이스 에러 등의 경우
→ Low : 시스템의 흐름에는 영향을 미치지 않지만 상황에 맞지 않는 용도와 화면 구성 결함 등을 의미
2-1 조치 우선순위 결정
✔️ 단위 테스트 기법 : JUnit, Mock
✔️ Mock 기법
→ Dummy : 객체의 전달에만 사용되고 실제로는 사용하지 않는 것
→ Fake : 실제로 동작하도록 구현되지만, 보통 빠른 구현을 위해 실제 환경과는 다르게 구현 할 수 있다.
→ Stubs : 테스트를 위해 미리 준비한 응답만을 제공하는 것
→ Mocks : 스펙을 통해 정의된 응답을 받고 다른 응답을 받을 경우 예외를 발생하도록 구현되 어 있으며, 응답에 대한 확인을 수행하는 역할을 한다.
✔️ 통합 테스트 기법 : 업무 간의 연계성과 상호 운영성 중심의 테스트 수행
[결함 관련 용어]
💫 에러 : 소프트웨어 개발 또는 유지 보수 수행 중에 발생한 부정확한 결과로, 개발자의 실수로 발생한 오타, 개발 명세서의 잘못된 이해, 서브루틴의 기능 오해
💫 오류 : 프로그램 코드 상에 존재하는 것으로 비정상적인 프로그램과 정상적인 프로그램 버전 간의 차이로 인하여 발생
💫 실패 : 정상적인 프로그램과 비정상적인 프로그램의 실행 결과의 차이를 의미
💫 결함 : 버그, 에러, 오류, 실패, 프로그램 실행에 대한 문제점, 프로그램 개선 사항 등의 전체를 포괄하는 용어
[결함 판단 기준]
✔️ 기능 명세서에 가능하다고 명시된 동작을 수행하지 않는 경우
✔️ 기능 명세서에 불가능하다고 명시된 동작을 수행하는 경우
✔️ 기능 명세서에 명시되어 있지 않은 동작을 수행하는 경우
✔️ 기능 명세서에 명시되어 있지 않지만 수행해야 할 동작을 수행하지 않는 경우
✔️ 테스터의 시각에서 볼 때 문제가 있다고 판단되는 경우
마치며
과목의 개수는 8개로 적지 않은 편이지만, 각 과목당 외울 족보는 생각보다 많지 않아서 크게 어려움 없이 통과할 수 있는 시험이라고 생각합니다. 저는 2일 정도 공부했고, 서두에서 언급했듯이 8권의 책을 빠르게 훑어보고 중요하다고 생각하는 부분들만 족보로 정리하여 외워갔습니다. 실기 시험은 제가 웹 개발자여서 어렵지 않게 통과했어요
웹 개발자가 아니신 분들은 실기 2~3번 정도 연습해 보고 가면 통과할 정도로 난이도는 낮은 편입니다. 모두 합격하시길 바라요😃
👨👩👦👦 오픈채팅방 운영
취업을 준비하는 예비 개발자분들을 위한 질문&답변할 수 있는 공간을 만들었습니다. 취업과 이직을 하기 위해서 어떤 걸 중점적으로 준비해야 하는지부터 포트폴리오&이력서 작성법 등 다양한 질문들을 받고 답변을 드립니다. 참여하셔서 다양한 정보 얻고 가시면 좋을 것 같네요😁
참여코드 : 456456
'자격증' 카테고리의 다른 글
네트워크 관리사 2급 실기 단기간(3.5일) 합격 후기 (1) | 2022.10.05 |
---|---|
네트워크 관리사 2급 필기 단기간(3일) 합격 후기 (0) | 2022.08.24 |
컴활 1급 필기 합격 단기간(5일) 공부법 및 후기 (0) | 2022.04.19 |
SQLD 자격증 비전공자 단기간(5일) 합격 후기 (158) | 2022.04.11 |