한 주간 종일 과정으로 진행한 'KOSA - 서버프로그램 구현' 강의를 완료했다.
특히, 개발자 후배들을 대상으로 진행한 것이기에 좀 더 구체적인 사례와 실습을 담기 위해 노력한 한주였다.
실습을 늘려 진행하니 강의는 좀 여유(?)로운 듯 하지만, 문제없이 준비하려니 과정은 더 힘들었다. @.@
참석하신 분들과 이야기를 나누어 보니, 'JAVA, Spring, JavaScript 등을 이용하여 서버사이드 개발'을 하고 계신다.
한 주간의 강의를 어떻게 풀어갈까?
첫날에 상황 파악을 하고 강의주제를 빠르게 보완하여 결정한다.
프로그래밍 언어에 대한 설명은 꼭 알아야 할 것(예: 비동기 호출 / Promise 등)을 중심으로 최소화하고,
서버 프로그램 구현을 위해 필요한 원리와 이론, 특히 '마이크로서비스 아키텍처를 중심으로 한 설계/구현/배치/운영'에 대한 설명과 실습에 집중하기로 하였다.
소프트웨어 공학(요구사항과 개발방법론), 테스트(품질), 네트워크(HTTP) 및 운영체제(리눅스)에 대한 주요 이론을 빠르게(?) 정리하여 확인하고, 바로 실습에 들어간다.
실습은 'MSA(Micro Service Architecture)를 지향한 소프트웨어를 설계 → TDD(Test Driven Development)을 이용한 개발 → 서비스 인프라 구축 → 개발코드 배치 → 테스트 및 테스트 자동화'의 시나리오를 기반으로 한다.
이론과 실습을 병행하다 보니, 앞/뒤 순서가 바뀐 경우도 있지만 '전체적으로 연관성을 유지'하기 위해 '현재의 우리 위치를 확인하고 앞/뒤 상황을 정리'하면서 한 걸음씩 나아갔다.
AWS와 같은 클라우드 서비스를 이용할 상황이 못 되어 아쉬운데로 VirtualBox에 CentOS를 설치하여 기본 환경을 구성하였다.
서비스의 배치와 연동을 실습하기 위하여 ngnix가 API Gateway(Proxy)의 역할을 담당하도록 구성하였고, node.js를 이용하여 기본 서비스를 개발하였다.
이후 Docker 컨테이터를 추가하여 여러 개의 서비스가 함께 동작하고 연동할 수 있음을 실습하고 확인하였다.
특히, 이러한 인프라를 처음 구성하고 Docker를 처음 사용하는 후배들에게 '별것 아니에요~ 하면 돼요~'라는 자신감을 심어 주고 싶었다. ^^~
테스트와 테스트 자동화는 TTA 강의 경험을 살려 Selenium 실습을 추가하고, Jenkins를 이용한 자동화 구축, Apache jMeter를 이용한 성능 테스트 방법을 실습하였다.
Apache jMeter의 UI가 변경된 것을 알고 (너무 오랜만에 새것을 다운로드 받았다 @.@) 잠시 당황~~
다행히 큰 차이가 없다. ㅋ~
금요일, 마지막 날이 되니 여러 가지 생각이 든다.
그중 대부분 개발에 익숙하신 분들이란 이유로 '코딩을 너무 간단히 한 것'은 아닌가? 하는 것과 '보다 솔루션다운 프로그램을 구현'해 보았으면 더 좋았을 텐데 하는 아쉬움이 남는다.
한편으론 참석하신 분 들 중 '여러가지 익숙하지 않은 분들도 있을 텐데, 너무 빨리 진행했나?' 하는 생각도 든다.
아마도 몇번은 더 진행할 강의일 테니, 이후엔 좀 더 보완해서 더 잘해 보기로 한다.
특히, '하나의 솔루션을 주제로 하여 쭈~욱 완성해 보는 프로젝트 스타일의 강의'를 기획하여 진행해 보아야겠다.
강의를 하면서, 회사의 개발 품질과 인프라에 대해서 회고하게 된다.
다른 이들에게 설명하고 강조하는 것에 앞서 내가 속한 회사의 인프라와 개발 품질도 잘 챙겨야 할 텐데, 한편 부끄러운 맘이다.
조금 더 노력해 보자.
'DevSmile 하는 일 > 강의와 멘토링 (IT기술-정보보안-SW개발)' 카테고리의 다른 글
정보시스템 보안성 / 위험기반 테스트 - 강의를 마무리 했다. (2) | 2021.07.23 |
---|---|
4차 산업혁명 시대의 정보보안 - 3일간의 강의를 마무리 한다. (0) | 2021.07.15 |
2021년 KISA-행정기관 보안 강의를 시작한다. (0) | 2021.07.11 |
4차 산업혁명 시대의 정보보안 - 행정기관 정보보호 강의를 시작한다. (0) | 2021.06.28 |
서버프로그램 개발 과정 - 강의를 통해 내가 가장 많이 배운다. (0) | 2021.06.26 |