Email - tksgk77@gmail.com
Name - 이산하 (SanHa, Lee)
Git Name - Mountrivers (이름의 뜻인 mountain + river 을 합하여 만들었다..)
프로젝트 계획
https://mountrivers.github.io/20190625diary/
프로젝트
코로나 맵 프로젝트 - https://github.com/mountrivers/coronaMAP
오버레이 메모 프로젝트 - https://github.com/mountrivers/OverlayMemo
자기소개
자기 자신을 진솔하게 소개하여 주시기 바랍니다.(자신의 성격/취미/가치관/주변환경)
[ 나를 만나다 ]
저는 어렸을 때 소심한 성격이어서 무언가 새로운 도전을 할 때마다 망설이며 포기했던 적이 많았습니다. 그러다 우연히 김미려가 노래한 “나를 만나다.”라는 노래를 듣게 되었습니다. 그 노래 가사 중에는 “후회는 없어 시작도 못 한 채 포기하느니, 그보단 멋질 테니까”라는 가사가 있었습니다. 예전의 경험들을 생각해 보아도, 고민만 하다가 시작도 못 하고 포기 한 일이 많았고, 이로인해 후회하는 일이 많았습니다. 이 노래를 듣게 된 이후로, 무언가 망설여질 때는 이 노래를 흥얼거리며 만약 시작도 못 하고 포기한다면 나중에 자신이 후회할 것인가에 대해 깊이 생각해보고, 일단 하기로 마음을 먹으면 철저하게 계획을 세워 목표를 향해 최선을 다해 노력하고 있습니다.
[ 신뢰 ]
의사, 변호사의 직업윤리는 상대가 누구든 열심히 치료해야 하며, 변호해야 합니다. 그래야 환자나 의뢰인이 상대에게 신뢰를 느낄 수 있기 때문입니다. 저는 프로그래머도 마찬가지라고 생각합니다. 누가 사용하든 쉽게 사용할 수 있으며, 사용에 따라 발생할 수 있는 문제를 최대한 사용자가 고려하지 않아도 되도록 완벽하게 만드는 것이 프로그래머로서의 직업윤리라고 생각합니다. 요즘 식당에서는 키오스크를 많이 볼 수 있는데, 사람에 따라서 주문을 하는데 각자 다른 시간이 소요됩니다. 젊은층이나 사용을 많이 해본 사람은 몇 초 만에 터치 몇 번으로 원하는 메뉴를 주문합니다. 그러나 외국인이나 연령대가 높으신 분들은 한참을 기계와 씨름 하다가 결국 직원을 불러서 해결하는 것을 자주 보았기 때문에 이런 생각을 가지게 되었습니다.
## 팀 단위의 과제 혹은 프로젝트 활동 경험을 한 가지 선택하여 자세하게 소개해 주세요.
[새로운 시도]
진로를 선택할 때 제가 컴퓨터를 좋아하던 것도 있었지만, 현실과 밀접한 것을 만들 수 있다는 생각으로 프로그래밍을 선택하였습니다. 대학에 합격하여 프로그램 수업을 듣기 시작하였는데, 다양한 프로그램 수업을 들었지만, 늘 결과물은 도스 창이었습니다. 물론 밖으로 보이는 것보다 내부를 튼실히 하는 것도 중요한 것이지만, 제가 원했던 생활과 밀접한 것에서는 거리가 멀어 보였습니다. 혼자서 UI를 입히는 것을 시도해 보았지만, 좀처럼 진도가 나가지 않았습니다. 그러다 어느 날 조별 과제가 나왔고, 다른 제한이 없었기에 조원들과 UI를 제대로 만들어 보기로 상의했습니다. 평소에 가장 자신 있던 C++ 을 이용하여 팀원들과 공부를 하며 만들어 나갔지만, C++은 UI를 만들기에는 다른 툴보다는 더 복잡하단 것을 알게 되었고, C#이 UI를 만들기 더 좋다는 것을 알게 되어서 처음 사용해 본 적은 없지만, 사용자가 있다면 사용자를 사로잡을 수 있을 만큼 좋은 UI를 만들고 싶었기에, 팀원들에게 C#으로 만들어 볼 것을 제시하였습니다. 처음에는 팀원들도 같은 C 계열이라도 처음 써보는 언어에 대한 거부감이 있었지만, 사용법과 자료들을 찾아 팀원들을 설득하는 데 성공 하였고, 매일 모여 C#을 공부 하였습니다. 결과적으로 꾸준히 공부하며 필요한 것들을 찾아 UI를 만들고 내부 프로그래밍을 완성하게 되었습니다. 항상 기존의 것을 고집하기보단, 새로운 방법 필요하다고 느끼면 과감히 새로운 것에 도전하는 것이 좋을 수 있다고 깨달았습니다. 결과적으로 잘 완성된 UI 덕분에 교수님의 칭찬과 가산점을 받았습니다.
[ 111 < 0.5 +0.5 + 0.5 ]
대학교 재학 시절, 교내 알고리즘 팀 대회 열린 적이 있었습니다. 코딩은 잘 못 하지만 평소에 친하게 지내던 친구 2명과 팀을 만들어 참여하게 되었습니다. 그 덕에 저희 팀원들은 다른 조에 비해 평균 코딩 능력이 뒤떨어졌고 다른 친구들이 저희 팀을 보며 ‘입상하긴 힘들겠네!’라는 식으로 비꼬았습니다. 하지만 저는 개개인의 능력보다 얼마나 서로 협력을 하는지가 더 중요하다고 생각하였고 각자 역할을 나누어 분업을 하는 것이 더 중요하다고 생각했습니다. 대회에서는 규칙이 있었는데, 팀당 단 하나의 노트북만 사용해야 한다는 규칙이었습니다. 그래서 저희는 3명의 인원이 나누어져 한 명은 영어로 된 문제를 핵심을 추려 분류하고, 한 명은 수도코드나 알고리즘 적 접근방법으로 해결방법을 제시하고 제가 코딩을 하는 방식으로 분업하였습니다. 저희보다 평균 코딩 실력이 높던 팀들은 각자 한 문제씩 맡아서 풀었고, 제한된 노트북 한 대로 서로 돌아가며 코딩을 하다 보니 의사소통과 의기투합이 안 되어 오히려 시간이 오래 걸렸고, 그 결과 비록 금상이나 은상까지는 받지 못했지만, 동상을 받게 되었습니다.
[ 내가 벌인 일은 내가 책임진다 ]
학교에서 졸업 프로젝트로 8개월 장기간 캡스톤 프로젝트를 진행하게 되었는데, 4명이서 우선 조를 짠 후 주제를 정해 진행하는 프로젝트였습니다. 졸업 프로젝트인 만큼 어느 정도 기술력이 필요하고 참신한 것이 요구되기 때문에 저희는 주제를 정하는데 한참 토의를 하다가, 제가 영화 ‘박물관이 살아있다’에서 영감을 얻어 AR/VR로 먼 거리에서도 박물관을 볼 수 있도록 만들어 보는 게 어떠냐는 제안을 하여 프로젝트를 진행하게 되었습니다. 처음에는 다들 열정적으로 진행 기획과 구상에 같이 노력을 해주었지만, 점차 시간이 지날수록 같은 팀원들이 생소한 개발 환경과 복잡한 기술 때문에 진행 정도를 따라오지 못하게 되어서 중간에 휴식 겸 각자 공부할 시간을 가지며 진도를 맞추기로 했습니다. 그러나 휴식 시간을 가졌음에도 불구하고 진도가 계속 느려지며 발표일이 점차 다가오게 되었습니다. 결국, 저는 제가 제안한 프로젝트이며 생소한 프로젝트에 대하여 완성하기까지 시간이 부족 할 것이라는 점을 미처 생각 못 했다는 것을 깨달았습니다. 결국, 제가 총대를 메고 모든 개발을 하기로 하였습니다. 그리고 한 명에게는 제 옆에서 기술 문서를 작성하도록 하였고, 한 명은 발표용 팸플릿과 발표 자료를 만들도록, 나머지 한 명은 AR/VR에서 동선을 짜보고 QA 역할을 맡고 저 혼자 개발을 진행하게 되었습니다. 아무래도 원래는 4명이서 같이 개발할 분량을 혼자서 진행하다 보니 항상 시간에 압박을 느끼게 되어 매일 새벽 1~2시까지 진행하였고, 과제 마감일 3일 전부터 이틀 동안 3시간만 자고 모든 개발을 완료하고 결국 완성 하여 개발문서와 발표자료를 하는 팀원에게 성공적으로 넘겼습니다.
창의성을 발휘한 경험을 자세하게 소개해 주세요.
[ 배 타는 육군 군대 위키를 만들다. ]
저는 군대에서 보직이 레이다 운용 병이었지만 특이하게도 육경정이라는 조그마한 배를 탔습니다. 관련한 교육을 받은 적 없이 갑자기 배를 타게 되어 적응하기 힘들었습니다. 인원 편재 또한 격오지 부대였던 만큼 적었고, 작전과 부대관리로 인하여 체계적인 교육이 될 수 없었고 그에 따라 배에 대하여 직접 현장에서 배를 타면서 배워야 했습니다. 배 또한 많이 노후 된 상태에서 정비 또한 병사들이 직접 해왔는데, 어느 날 배에 문제가 생겨서 배를 점검하기로 하였고, 일병이 기관실에 점검을 위해 내려갔지만, 제대로 배우지 못한 탓에 배 밑 밸브와 뚜껑을 해체하는 바람에 바닷물이 들어왔고 배가 가라앉을 위기에 처하게 됐습니다. 결국, 저희의 말로 속칭 ‘버스트 콜’이 떨어져 모든 배의 정장, 부정장, 기관사가 호출되어 배가 침몰하는 것은 겨우 막게 되었습니다. 저는 배에 대한 교육이 부족하고 교육의 체계가 없어서 이런 일이 생겼다고 생각하여, 이를 어떻게 해결할까 생각하던 중 후임 한 명이 사이버 지식 정보 방에서 나무 위키를 즐겨 보는 걸 보고 아이디어가 떠올랐습니다. 우리 부대만의 위키사전을 만드는 것을 간부에게 건의하였고, 흔쾌히 허락을 받아냈습니다. 상황병 컴퓨터에 문서를 하나 만들고, 목차를 만들어 전우들과 한 달에 걸쳐 배에 대하여 모든 것을 기록하며 완성하였고, 완성된 것을 프린트하여 모든 인원에게 나누어 주어 안전한 군대 생활이 되기 위해 교육 시간에 함께 숙지하였고, 그 이후 큰 사건·사고 없이 전역하게 되었습니다.
지원분야의 전문성을 기르기 위하여 준비한 것에 대해 소개해 주세요
[ 다른 사람을 거울로 나를 본다 ]
프로젝트를 진행하게 될 때는 개개인의 코딩 능력도 중요하지만, 남들이 알아보기 좋게 주석도 남기고, 남의 코드를 빠르게 캐치 하며, 명확한 코딩을 하는 것이 중요하다고 생각했습니다. 그렇게 되기 위하여 제일 처음으로 노력한 것은 코딩을 할 때 i, j N, M 등 단순히 그때그때 필요할 때마다 대충 네이밍을 하던 습관이었습니다. 당장에 이렇게 짜면 빠르게 짤 수 있지만, 나중에 다시 보게 된다면 이게 어디에 쓰이던 것인지 이해를 하는 데 어려움을 겪기 때문에 코드가 길어지더라도 해당 변수들이 무엇을 의미하는지 확실하게 네이밍을 하도록 노력했습니다. 그다음으로 노력한 것은 대학에서 과제를 진행할 때 동기들과 완성 코드를 공유하며 비교 분석 하고, 코딩하다가 에러가 나거나 막히는 부분이 있으면 저에게 오라고 했습니다. 그렇게 말한 것은 제가 코딩 실력이 뛰어나서가 아니라 다른 사람의 코딩 하는 방법에 대하여 알아보고 그 친구가 겪는 문제가 언젠 가의 저 또한 겪을 수 있는 문제이기 때문에 저에게도 도움이 되리라 생각하였고, 다른 사람의 코드를 보는 능력을 기르기 위함이었습니다. 꾸준히 그렇게 하다 보니 비록 저의 과제만 할 때보다 시간 소모는 비약적으로 많아졌지만, 자연스럽게 코드를 보며 친구들과 이야기하며 디버깅해보는 시간이 늘었고, 다른 사람의 코드를 읽는 것이 능숙해지며 코드에 관해 설명하는 일이 많았습니다. 결과적으로 동기들 사이에서 “어떻게 남의 코드를 그렇게 빨리 이해하느냐”는 말까지 듣게 되었습니다.
프로그래머스
2020.04.10
2020.04.12
2020.04.12
2020.04.13 - 레벨 5 획득 실패….