2021 하계 SW개발 채용전제형 인턴십 <SW개발> · 2021 상반기
작성자
한**
대학
독일 TU9 대학
전공
산업공학
GPA
3.26/4.0
TOEIC
930점
자격증
2.. 담배연기 탐지 & 미세먼지 농도 측청 가로등 2018년 9월~11월에 걸처 준비한 인천창조경제혁신센터 주최의 아이디어 메이커톤에서 웹 솔루션 파트와 사진 전송 소켓 프로그래밍을 담당하였습니다. 프로젝트는 크게 두 부분으로 나뉘었는데, 가로등에 부착하는 하드웨어 부분과 이를 관리하는 웹 솔루션 입니다. 하드웨어 파트에서는 니코틴 감지 센서, 미세먼지 측정 센서 기반으로 사람 탐지를 위해 OpenCV도 사용하였습니다. 웹 솔루션은 JAVA Spring을 사용해 구축하였습니다. 기본적인 데이터 흐름은 가로등 아래에서 흡연자가 있을 경우, 니코틴 감지 센서로 이를 감지한 후 해당 가로등 아래를 촬영한 다음 해당 사진과 가로등의 번호를 서버로 전송한 후, 서버에서 OpenCV를 사용해 해당 사진에서 몇명의 사람이 있는지 파악하고, 이를 DB에 사진과 함께 저장하는 구조입니다. 저는 웹 솔루션에 Naver Map API를 사용해 지도를 넣고, 각 가로등의 경도, 위도을 이용해 지도에 마커로 표기하였습니다. 마커를 클릭하면 최근 찍힌 사진과 인원 수, 미세먼지 농도, 대략적인 니코틴 농도를 볼 수 있게 웹 솔루션을 구축하였습니다.
기능은 다른 커뮤니티와 비슷하게 정당별 게시판, 댓글, 답글 CRUD등의 기본적인 기능과 회원들끼리 서로 모의 투표를 해볼 수 있는 모의 선거 서비스로 구성하였습니다. 프론트는 다른 팀원분이 react native로, 백엔드는 제가 평소에 사용하던 Spring으로 구현하고 관심이 있었던 RESTFUL API 방식을 적용해 구현하였습니다. 가장 먼저 프론트 담당이 데이터 요청 형식을 손쉽게 보기 위해 swagger.ui, 데이터베이스 명세서 등 문서 작업을 수행하였습니다. 또한 crud 게시판, 소셜 회원가입과 같은 커뮤니티 기본 기능과 모의 선거 서비스와 같이 기획에 맞추어 개발하기 위해 요구사항 정의서를 명확히 작성하는 작업도 거쳤습니다. 개발 과정에서 crud 게시판, 댓글 같은 커뮤니티의 기본적인 기능들은 비교적 관련 자료들이 많아 구현하는 데 큰 어려움은 없었지만, 모의 선거와 이런 기능들을 restful 하게 구성하는 데는 처음이라 난항을 겪었습니다. 대표적으로 get, post, put, delete와 같은 http 메소드를 정확히 사용하기 위해 개발하면서 다시 한번 공부하곤 했습니다. 또한 uri에 정보의 자원을 표현하기 위해 프론트 개발자분과 상의하여 함수명이나 uri 호출 형식을 정하기도 하였습니다. 플레이 스토어에 릴리즈를 하지 않은 채 인턴 기간이 끝났기 때문에 대량의 트래픽 요청이 들어온 경우에 발생하는 오류나 실 사용자들의 피드백같은 사항은 알 수 없지만, 사내 직원분들(10~20명 가량)이 테스트 했을 때는 의도하였던 대로 작동하였습니다. 하지만 예상 사용자 수가 약 1천 명 가량이기 때문에, 추후 보완 프로젝트로 로드 밸런서같이 대량의 트래픽을 관리할 수 있는 환경을 구축해 보고 싶습니다.