ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JBIC를 개발하며 배우고 성장한 점들
    Projects/JBIC (Jira Bug Issue Crawler) 2020. 2. 16. 23:03

    JBIC는 연구실에 와서 처음으로 맡은 개인 프로젝트였다.

    이전까지 스스로 설계부터 구현 및 테스팅 그리고 배포까지 해본 경험이 없었는데 JBIC를 개발하며 소프트웨어 개발의 전 과정을 체험할 수 있었다.

    그래서 이전보다 개발자의 입장을 더 깊이 공감할 수 있게 되었다.

    이는 내게 훌륭한 소프트웨어 공학자가 되어 개발자를 돕고 싶다는 마음을 불러 일으켰다. 

     

    이 외에도 개발하면서 배운 좋은 태도와 습관들이 있는데 그것들은 아래와 같다.

     

    1. 동료들에게 도움 구하는 것을 부끄러워하지 않기

     

    내가 좋아하는 사자성어 중 불치하문(問) 이라는 사자성어가 있는데 이는 '아랫 사람에게 묻는 것을 부끄러워하지 않는다'라는 뜻이다.

    우리 조상님들께서 비록 아랫사람일지라도 그(녀)에게 묻는 것을 부끄러워하지 않아야 한다고 가르쳐주셨는데 하물며 동료들에게 묻는 것을 부끄러워 하면 당연히 안 될 것이다.

     

    그래서 나도 설계할 때 크롤링에 사용되는 라이브러리 추천과 빌드툴인 Gradle 초기 설정하는 방법을 연구실 형, 누나에게 묻고 도움을 얻을 수 있었다. 

     

    2. Do not reinvent the wheel

     

    'Do not reinvent the wheel'이란 유명한 프로그래밍 관련 격언이다.

    간단히 말하면 이는 '네가 구현하려는 기능을 누군가 이미 library로 잘 만들었기 때문에 웬만하면 그것을 가져다 써라' 라는 말이다.

    나도 JBIC를 개발하면서 3가지 library를 사용했는데 그것들은 아래와 같다.

     

    1. Apache commons CLI
    2. Apache commons IO
    3. Jsoup

     

    3. 개발자 커뮤니티에 직접 묻기

     

    과제를 하면서 모르는게 생겼을 때 Stackoverflow 게시물을 참고해서 문제를 해결한 경험은 있지만 내가 직접 Stackoverflow에 질문을 올린 적은 한번도 없었다.

    하지만 JBIC를 개발하면서 스스로 해결하기 어려운 수준의 문제가 발생했고 직접 Stackoverflow에 질문을 올려 전 세계 개발자들의 도움을 받기로 했다.

     

    내가 처음 Stackoverflow에 올린 질문은 아래 주소에서 볼 수 있다.

     

    https://stackoverflow.com/questions/56981527/why-html-code-in-chrome-devtools-and-html-code-parsed-by-jsoup-are-different

     

    질문을 올린지 7시간 만에 터키에 사는 firat님께서 답장을 해주셨다. 그리고 친절하게 comment로 부연설명도 해주셨다.

    사실 firat님의 코드는 내가 원하는 대로 동작하진 않았지만 어떤 이익도 바라지 않고 친절하게 도와주는 개발자 문화에 감동받아 체크 하나 드렸다 :~)

     

    이 일이 있고 난 뒤 또 다른 문제가 발생해서 Stackoveflow에 두번째 질문을 남겼다. 아래 주소로 가면 볼 수 있다.

    https://stackoverflow.com/questions/57017836/how-to-download-the-csv-file-from-auto-download-link-using-jsoup

     

    그랬더니 이번에는 한 3일 정도지나서 krystian G라는 분께서 시크하게 '그런 거 못 해요.' 라고 comment를 남겨주셨다. 

     

    전 세계 어딘가에 있는 개발자가 내 질문에 같이 고민해주고 아무런 대가없이 도움을 주는 문화가 정말 감동적이었다. 그리고 나도 누군가가 질문하면 그 질문에 답장을 해줄 수 있을 만큼 훌륭한 프로그래머가 되고 싶다는 마음이 생겼다.

     

    4. Javadoc 읽기

     

    난 개인적으로 Java의 강력한 점들 중 하나는 Javadoc이라고 생각한다.

    왜냐하면 Javadoc은 가독성이 굉장히 높은 문서이기 때문이다.

    Javadoc은 고정된 형식을 가지고 있어서 class간 관계, method의 사용법 등을 빠르게 파악할 수 있다.

     

    하지만 영어로 적혀 있어서 읽으면서 마음을 어려워진 적이 종종 있다.

    그 때는 블로그나 외국 글 등에서 예시 코드를 참고하긴 했지만 그것들을 관찰하면서 아래와 같은 문제점들을 발견했다.

     

    1. 블로그에서 사용하는 예시 코드는 지금은 deprecated인 method를 사용하는 경우가 있다.
    2. 한국어로 작성되긴 했지만 읽어도 이해가지 않는 경우가 있다.

    그래서 웬만하면 Javadoc과 공식 문서를 이용하여 라이브러리를 이해하고 구현하는 것이 올바른 길이라는 사실을 깨달았다.

     

    5. 매일 Devlog 작성하기

     

    난 이 습관이 JBIC를 개발하면 얻은 가장 큰 수확이라고 생각한다.

    난 Microsoft의 OneNote를 이용해서 개발일지를 작성하는데 그 이유는 학교 계정을 사용하면 무료이기 때문이다!

     

    나의 개발일지는 4가지 섹션으로 구성되어 있는데 그것들은 오늘의 목표, 오늘 한 일, 오늘의 생각, 오늘의 배움 이다.

    여러가지 형식을 시도해봤지만 이 형식이 가장 편하고 효율적이어서 이 글을 쓰고 있는 지금까지도 개발일지는 이 형식으로 작성하고 있다.

    JBIC를 개발하며 배우며 얻은 소중한 개발 습관들과 내가 만든 JBIC의 주요 알고리즘을 연구실 사람들 앞에서 발표했다.

    자료는 아래 주소를 통해 볼 수 있다.

     

    https://drive.google.com/file/d/1Gr4iQ9rgtujlBKF9lcqCXerMwH2rZEUo/view?usp=sharing

     

    20190814_JBIC_Devlog_가_아니라_개발__야,_너두!_지롱.pdf

     

    drive.google.com

     

    'Projects > JBIC (Jira Bug Issue Crawler)' 카테고리의 다른 글

    JBIC (Jira Bug Issue Crawler)에 대하여  (0) 2020.02.09

    댓글

Designed by Tistory.