-
"지속가능한 SW 개발을 위한 코드리뷰"를 리뷰
세미나를 들은지는 조금 지났는데 더 잊어버리기전에 느낌을 정리하고 싶어서 글을 쓰게 되었습니다.
사실 최근에 유튜브 알고리즘에 의해 백명석님의 유튜브를 알게되어서 구독을 해두었다가 나중에 대기시간이 길어지는 대중교통을 타게될때 보려고 했었는데, 이렇게 우아한테크세미나에 출연한다고 하셔서 얼른가서 봤습니다.
우선 본인은 코드리뷰를 경험해본적이 없고 코드리뷰문화를 동경하고 있기 때문에 끝까지 즐겁게 봤습니다.
왜 코드 리뷰를 해야하는가? 에서 부터 코드리뷰의 기법에 대해서 설명을 해주셨는데 하나하나 기억남는점이나 제 생각들을 더하여 기록하겠습니다.
1. 왜 코드 리뷰를 해야하는가?
시장은 VUCA 하기 때문에 개발 조직의 성능(생산성)이 중요해졌기 때문인데요
VUCA란 Volatiliy(변동성) Uncertainty(불확실성) Complexity(복잡성) Ambiguity(모호성)
불확실하고, 복잡하고, 모호하며 변화가 많은 세상이 될 것이라는 건데요.
저는 어플리케이션에 기능을 추가하고 변경하는 작업들이 빈번해질 수 있다는 것으로 이해하였습니다.
위의 표는 시간에 따른 개발의 속도를 나타내는 표입니다.
시간이 길어지고 새로운 기능을 추가할때마다 좋은 디자인으로 설계를 하는것을 보여줍니다.
그리고 SW의 진정한 비용은 유지보수로 전체의 80%이상을 차지하고, 한번 작성한 코드는 10번 이상 읽기떄문에 이해에 10배의 노력이 소모되어 90%이상을 어떤 코드를 이해하는데 사용한다고합니다.
그렇기 때문에 서로가 이해할 수 있는 코드, 품질 좋은 코드들을 지향하기 위해 코드를 리뷰를 해야한다고 느꼇습니다.
결과적으론 비용의 문제인거죠.
세미나에서도 백명석님은 개발자가 아닌사람들에게 코드리뷰의 필요성을 어필하기위해서는 비지니스 벨류를 강조해야한다고 합니다.
2. 코드리뷰의 절차
저자가 코드를 작성 후 리뷰요청(PR이라고 표현합니다)-> 리뷰어가 코드를 읽고 머지가 가능하지 않다면 다시 처음으로
변경한 코드를 리뷰의들에게 검사(?)를 받는 과정입니다.
3. 왜 코드리뷰가 어려운가
코드리뷰를 해보지 않아서 완전히 공감하기는 어렵지만, 어느정도 공감이되고 이해가 되는 내용이였습니다.
그중 제일 이해가 가는 단어가 "코드에 대한 비판을 자신에 대한 비판으로 이해" 라는 부분이였는데요.
저도 누군가가 제 코드를 리뷰를 한다고 했을때 서로의 생각이 다를 수 있는 부분에서 오는 피드백이 그날의 기분 또는 상황, 표현에 따라 기분이 안나쁠수는 없을것 같다 라는 생각을 가졌는데 이것을 내가 아닌 코드를 비판을 한다고 생각을 한다면 내가 작성한 코드가 정말 잘못된 것인지에 대한 생각을 한번 더 해볼 수 있을 것 같다는 생각이 들었습니다.
그리고 무엇보다 똑같은 기능에 대해 간접적으로 그 사람의 코드를 볼 수 있기 때문에 클린코드뿐만 아니라 나를 성장시키는, 코드리뷰를 동경하는 이유가 되지 않을까? 라는 생각이 많이 들었습니다.
4. 기법들
하드 스킬에는 경험이 없어 그런가보다 했고 소프트 스킬은 상대방에 대한 존중과 믿음, 그리고 적절한 단어의 선택이 중요할 것 같았다. 실제 코드리뷰 문화가 있는 회사로 가게될때 다시 한번 더 보고 가면 좋을 것 같고, 평소 인간성이 반영이 많이 되는 것 같아서 본인에게는 크게 어려움은 없어(?)보입니다..
5. 마치며
최근 마틴파울러의 리팩토링의 중요성에 대한 세미나도 시청을 했었는데, 코드리뷰, TDD, 리팩토링이 말하는 클린코드의 필요한 가장 큰 이유는 비용문제가 가지는 비지니스 벨류 때문인게 가장크다고 느껴졌고, 더더욱 코드리뷰 문화가 있는 곳을 가고 싶다는 생각이 많이 들었던 세미나 입니다. 다른사람의 생각을 코드를 통해 봄으로써, 다른사람이 쌓아온 경험에서 느껴지는 것도 많고 배울수 있는 기회도 참 많을것 같아서 it회사에 코드리뷰문화가 더 많아졌으면 좋겠네요.
아래는 데브원영 DVWY님이 공유해주신 자료중 제가 들었던 마틴파울러의 리팩토링의 중요성에 대한 세미나입니다.
재미있게 봐서 시간나면 보시는걸 추천드립니다.
https://www.youtube.com/watch?v=mNPpfB8JSIU&t=1362s
모든 자료는 문제가 될시 삭제하겠습니다.
'기타' 카테고리의 다른 글
2022 회고 (3) 2023.01.03 DTO에 대한 고민 (2) 2022.12.30 [JMeter] 설치 및 환경 구성 + 사용방법? (0) 2022.12.19 환경변수 관련 이슈 (0) 2022.02.13 세미나 리뷰 (TDD, 리팩토링) (0) 2021.11.21 댓글