[인턴실습- 첫 단독 프로젝트]
20**년 상반기, **전자 네트워크 부서에서 인턴사원으로 근무하며 개인 프로젝트를 진행하였습니다. 리눅스 서버 상에 해당 서버로 관리되는 네트워크 장비들의 CPU와 메모리 사용률, thread count, DB connection, 프로세스별 리소스 사용 정보 등을 매시간 기록한 대용량 로그가 날짜별로 저장되고 있었습니다.
장비에 장애가 발생하는 경우 이 로그를 확인하여 원인을 찾아야 하는데, 기가바이트 단위의 로그 파일을 현장으로부터 전달받고 일일이 확인하는 데 상당한 시간이 소요되고 있었습니다. 이러한 불편을 해결하기 위해 텍스트로 기록된 로그를 파싱하고 웹 페이지에 그래프와 테이블로 그려내는 것을 목표로 툴 개발을 진행하였습니다.
리눅스에 대한 지식이 전혀 없었기에, 먼저 필요한 지식과 기술을 습득하고 설계 방향을 구상하였습니다. 별다른 설치 없이 리눅스 상에서 가볍고 빠르게 프로그램이 실행될 수 있도록 전체적인 코드를 쉘 스크립트로 작성하였으며 로그 분석에는 awk와 sed를 사용하였습니다. 툴 실행시 사용자가 분석을 원하는 날짜를 입력하면 로그파일을 탐색하고 내용을 읽어오도록 하였습니다. 분석한 로그의 내용은 HTML, CSS, 자바스크립트(JQuery)를 사용하여 그래프와 테이블로 한눈에 볼 수 있도록 나타내었습니다.
로그 분석으로 인해 서버 상에 부하가 가해지면 프로그램을 사용하는 의미가 퇴색되므로 리소스를 크게 사용하는 부분에서 sleep을 주어 속도를 조절하여 효율을 높이고자 하였습니다. 그래프에는 항목별 on/off(toggle)기능과 확대/축소 기능을 제공하였고, 테이블에 각 항목의 최대/최소/평균값과 최대값을 기록한 시간을 함께 표시하여 이상이 발생한 시간과 원인을 빠르게 확인할 수 있게 하였습니다.
해당 툴을 사용함으로써 현장 문제 발생 시 주고받아야 할 파일이 기가바이트 단위 대용량 로그에서 html파일 하나로 축소되었고, 하나하나의 로그를 직접 분석해야하는 번거로움이 사라지고 하나의 웹 페이지만 열어 한눈에 로그 내용을 확인할 수 있게 되었습니다.
부족한 지식과 개발 경험 때문에 프로젝트를 끝까지 해낼 수 있을까 하는 우려가 컸으나, 요구된 사항을 충족시키기 위하여 필요한 지식과 기술이 무엇인지 빠르게 파악하고 습득하여 적용시키는 장점을 발휘하여 차근차근 진행하고 결과물을 낼 수 있었습니다.
또한 실무와 직결된 프로젝트를 맡아 큰 책임감을 가지고 임하였고, 처음부터 끝까지 직접 작성한 수백 줄의 코드가 실제 현장에서 사용되어 업무 효율에 큰 도움을 줄 수 있다는 생각에 매우 뿌듯하였고 큰 성취감을 느꼈습니다. 결과물은 프로젝트 최종 발표에서 좋은 평가를 받았고 개발자로서 스스로의 가능성을 발견할 수 있었습니다.
[꼭 맞는 교육을 통해 한걸음 앞으로]
현재, **DB진흥원에서 진행하는 교육을 수강하고 있습니다. DB와 자바, 웹 프로그래밍에 대해 공부하고 프로젝트를 진행하는 교육과정입니다. sql에 대한 기본 지식을 바탕으로 Oracle 사용법을 익히고 다양한 예제를 통해 실습을 하였습니다.
JAVA에 대해서는 학교 강의에서 미처 배우지 못했던 부분까지 꼼꼼히 익히며, 기초를 탄탄히 다지고 보다 실무에 가까운 활용 방법을 익혔습니다. Swing을 통해 GUI를 구성하고, 소켓을 이용해 네트워크를 구성하여 간단한 채팅 서버를 만들어 보았습니다.
JDBC로 Oracle과 자바를 연동한 프로그래밍 실습 또한 하였으며 Mybatis를 이용하여 보다 체계적인 프로그래밍을 익혔습니다. 현재 tomcat을 사용한 웹 프로그래밍 실습을 진행중이며, 관련 프로젝트가 계획되어 있습니다.
평소 웹 분야에 관심이 있어 HTML, CSS, 자바스크립트 기초를 독학하고, 인턴실습에서 개발을 진행하며 웹 관련 실무 경험을 쌓았습니다. 뿐만 아니라 현재 JAVA 응용에 대한 감각을 키우고 있으며, 수강중인 교육과정에서 웹 프로그래밍과 java, xml, Oracle 활용을 경험하였기에 푸르덴셜 생명보험의 시스템개발팀에 꼭 맞는 인재로서 역량을 펼치고자 합니다.
글자수 2,026자3,373Byte