WBS(Work Breakdown Structure, 업무 분해 구조)는 복잡한 프로젝트를 관리 가능한 작은 단위로 쪼개어 계층화하는 핵심 도구입니다. 이를 통해 업무 누락을 방지하고 책임 소재를 명확히 할 수 있습니다.
- 1단계: 프로젝트 범위 정의
- 프로젝트의 최종 목적과 주요 결과물을 명확히 인식합니다.
- Asana 가이드를 참고하여 프로젝트 계획을 시각화할 수 있습니다.
- 2단계: 주요 결과물(Deliverables) 분할
- 프로젝트를 주요 단계(기획, 설계, 개발 등)나 큰 기능 단위로 나눕니다.
- 이때 '100% 룰'을 적용하여 하위 항목의 합이 상위 항목의 전체를 포함하도록 합니다.
- 3단계: 작업 패키지(Work Package) 생성
- 더 이상 쪼갤 수 없는 최하위 실행 단위를 만듭니다.
- 보통 한 사람이 1~2주 내에 완료할 수 있는 크기가 적당하며, 소요 시간과 비용을 추정할 수 있어야 합니다.
- 계층 구조화: 엑셀이나 전용 툴을 사용하여 대항목-중항목-소항목 순으로 들여쓰기하거나 스마트 아트를 활용해 시각화합니다.
- 속성 부여: 각 작업 패키지에 고유 ID, 담당자, 시작 및 종료일, 진척도 등의 필드를 추가합니다.
- 상호 보완: WBS가 '무엇(What)'을 하는지 정의한다면, 이를 바탕으로 간트 차트를 만들어 '언제(When)' 할지 일정을 시각화합니다.
- 누락 방지: ServiceNow의 단계 기반 WBS 예시처럼 시작부터 종료까지 5단계 프레임워크를 활용하면 체계적인 관리가 쉽습니다.
- 문서화: 상세 설명서인 WBS 사전을 함께 작성하면 업무 범위에 대한 오해를 줄일 수 있습니다.
AWS 퍼블릭 클라우드를 직접 구축하고 네트워크를 설계할 수 있는 능력 습득
• AWS Bastion 서버를 통한 Web-Server/Was-Server 생성 및 운영 기술 습득
• Route53를 통한 웹서버 URL 게시 능력 습득
Verilog 활용 RTL 설계
- 추상화 수준: 트랜지스터 수준보다는 높고 알고리즘 수준보다는 낮은 단계에서 하드웨어를 묘사합니다.
- 구성 요소: 주로 레지스터(Flip-Flops)와 이들 사이의 데이터 흐름을 결정하는 조합 논리 회로(Combinational Logic)로 구성됩니다.
- 합성(Synthesis): 작성된 RTL 코드는 Synopsys Design Compiler나 Xilinx Vivado 같은 EDA 툴을 통해 실제 물리적인 게이트 수준(Gate-level) 회로로 변환됩니다.
- 구문 분리: 조합 논리 회로는
always @(*)블록을 사용하고, 순차 논리(레지스터)는always @(posedge clk)블록을 사용하여 명확히 구분합니다. - 대입 연산자 활용:
- Non-blocking (
<=): 레지스터(Sequential) 로직 설계 시 타이밍 문제를 방지하기 위해 사용합니다. - Blocking (
=): 조합(Combinational) 로직 내에서 중간 값을 계산할 때 사용합니다.
- Non-blocking (
- Latch 방지:
if문이나case문에서 모든 경우의 수(default)를 할당하지 않으면 의도치 않은 래치(Latch)가 생성되어 동작이 불안정해질 수 있습니다.
- Micro-architecture 설계: 코딩 전 데이터 흐름도와 제어부(FSM) 구조를 정의합니다.
- RTL 코딩: Verilog HDL을 사용하여 모듈별로 기능을 구현합니다.
- 기능 시뮬레이션: ModelSim이나 VCS를 사용하여 설계한 로직이 의도대로 동작하는지 확인(Testbench 작성)합니다.
- 합성 및 구현: RTL 코드를 게이트 회로로 변환하고 FPGA 또는 ASIC 타겟에 맞게 배치 및 배선(P&R)을 수행합니다.