드디어 이전부터 예정돼있던 개발자 대상 사내 세미나를 진행했다. 세미나 시작 한시간 전부턴 긴장돼서 토할 것 같았는데 세미나 끝나고 다들 수고했다, 잘 했다 격려해주셔서 감사했다ㅜ 질문 더 하셨었어도 됐는데 생각보단 많이 안 들어왔다. 감사합니다.....
이번엔 처음 세미나 준비하면서 느낀점 위주로 기록해보려한다.
세미나를 하게 된 이유
내가 인턴으로서 직무상 무엇을 하고 있는지 개발팀에게 알려주면서, 그 부분에 대해선 저에게 물어보면 됩니다~ 라고 알려드리기 위함이었다. 같은 팀의 인턴분과 1부, 2부로 나눠 1부엔 GraphQL, 2부엔 코드 컨벤션을 주제로 진행했다(Spring Boot + GraphQL도 흥미로운 부분이 많아서 나중에 정리해보고 싶다...!!).
원래 내가 발표할 주제는 "코드 컨벤션의 필요성과 정의한 것" 정도였는데 준비과정에서 코드 컨벤션이 잘 유지되려면 툴의 도움이 필요하다는 생각이 들어 추가로 "코드 컨벤션의 유지 방법" 까지 넣게됐다.
Code Convention
코드 컨벤션.. 잘 안다고 생각했는데 실무에 도입하려니 생각보다 고려할 사항이 많았다. 고려할 사항들은 이랬다.
- 우리 회사는 코드 컨벤션을 처음 도입한다. 아무것도 정해진게 없었다.
- java 뿐 아니라 js, html, css도 정의해야했다.
- 컨벤션을 만든다고 개발자분들이 꼼꼼히 지켜주실까? 감사하게도 그렇다 하더라도 실수가 생길 수 도 있다.
그래서 나는 이렇게 했다.
- 오픈 컨벤션을 참고했다.
- 언어별로 얼마나 다른 코드 스타일이 있을지 가늠이 안됐고 그 중 어떤 방식이 가독성 좋을지 판단하기 어려웠다.
- 그에 비해 오픈 컨벤션들은 어느정도 타당성이 있는 것으로 보여져 참고했다.
java js html/css google style guide airbnb google style guide
- 목차를 추렸다.
- 처음 도입하는 케이스라 처음부터 너무 세세하게 짜놓으면 현재 코드에서 수정할 사항이 너무 많을 것이라 생각했다. (근데 툴 선택하면서 굳이 이랬어야했나..?)
- 그래서 주관적인 경험상, 팀의 코드를 리뷰하면서 스타일 다양성이 생기는 부분을 중심으로 컨벤션을 짰다.
- 툴을 제안했다.
- 작게는 IDE 의 extension
- 크게는 CI의 plugin
느낀점
- 실제로 CI에도 code style check 해주는 플러그인이 적용되면 좋겠다.
- 컨벤션을 읽고 정의해보려면 꽤 많은 시간을 투자해야해서 지금까지 컨벤션이 없었던 것 같다.
- 어느정도의 필요성은 다들 느끼고 계셨던 것 같다.
- 개그 짤을 넣어도 발표의 일부로 인정해주시는 것 같다.
- 세미나 vs 대화로 설명 중 대화가 좋은 점은 내가 호흡 고를 시간이 있다는 것+ interactive하게 주고받으면서 상대가 어떤 점이 궁금한지 명확하게 알 수 있다는 점이다.
- 세미나는 혼자 긴 시간을 말해야해서 호흡 고르기 부자연스러웠던 것 같다.
- 그래서 발표 중 질문을 던져도 청중 반응 살피기 어려웠다.
- Airbnb의 코드 컨벤션을 참고하다가 Contribute도 해봤다~
'ICT인턴십' 카테고리의 다른 글
인턴일지: 인턴 종료(6월18일) (6) | 2021.07.23 |
---|---|
인턴일지: -3주 사소하게 느낀 점, 배운 점들 (1) | 2021.05.28 |
인턴일지: 2개월차(Agile한 개발 방식) (1) | 2021.05.17 |
2021 상반기 ICT인턴십 지원 후기 (0) | 2021.03.01 |
댓글