Replies: 1 comment
-
코드 컨벤션을 정하고 도입하는 과정이 쉽진 않지만, |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
안녕하세요 3기 이오입니다 🐧
혹시 이런 코드 리뷰 받아본 적 있으신가요?
아니면, 다른 사람이 작성한 코드를 보고 이런 생각을 떠올려본 적 있으신가요?
오늘은 '함께' 개발하기 위해 필요한 규칙에 대해 이야기해 보려고 합니다.
Code Convention 이란? 🤔
Code Convention이란 함께 개발하는 팀 안에서 코드를 작성할 때
모두가 공통적으로 지키는 규칙입니다.
예를 들어, 변수나 함수명을 어떻게 지을지, 들여쓰기는 몇 칸으로 할지 등!
코드를 작성할 때 고려해야 할 규칙들을 이야기합니다.
왜 규칙이 필요할까요?
Code Convention이 없으면, 개발자 모두 각자의 스타일로 코드를 작성하면서
프로젝트의 일관성이 깨지기 쉽습니다.
그리고 협업 과정에서 문제가 생길 수도 있죠!
코드 스타일이 통일되어 있으면 팀원들이 코드를 쉽게 이해할 수 있습니다.
그렇지 않을 땐,
코드 리뷰를 하거나 디버깅하는 과정에서 본질적으로 해야 할 일에 앞서
코드를 '이해'하는 데 시간을 더 들여야 할 것입니다.
심지어 내가 작성한 코드라도 단 2-3주 후에 다시 보면,
(사실 몇 시간 후에 다시 보더라도)
코드를 읽고 이해하는 데 시간을 써야 할 수도 있을것입니다.
또한, 코드의 형식에 대한 고민을 줄이고 본질적인 문제 해결에 집중할 수 있습니다!
특히 앞서 이야기한 코드 리뷰에서 '들여쓰기는 4칸으로 해주세요!' 와 같이
형식적인 피드백을 줄이는 데도 큰 도움을 줄 수 있습니다.
Code Convention은 다수의 개발자들이 참여한 프로젝트더라도
한 사람이 작성한 것처럼 깔끔하고 통일성 있게 보일 수 있도록 해줍니다.
악동쿠키들의 Code Convention 🍪
id? Id? ID?
함께 저녁을 먹다가 이런 이야기가 시작되었습니다.
"id를 쓸 때 id로 써? Id로 써? ID로 써?"
저는 고민을 하다가 id로 쓰는 것 같은데? 라고 답을 했지만,
또 다른 팀원은 id 앞에 맥락에 맞게 user를 붙이지 않나? 라는 질문을 던졌습니다.
단순히(단순하지는 않지만..) id 하나에도 각자의 스타일이 다르니
우리 모두가 이해하기 쉬운 코드를 쓰려면 규칙이 필요하다고 생각했습니다.
악동쿠키들(Macro 팀)도 본격적으로 개발을 시작하기에 앞서
우리가 지켜나갈 규칙들을 정했습니다.
변수명이나 들여쓰기, View의 이름과 같은 규칙들과 함께
ViewController 내에서 property와 method의 위치,
method도 그 역할에 따라 어떤 이름을 가져야 하는지 등을 정했습니다.
똑같은 화면인데도 코드가 다르네?
악동쿠키들이 개발 전 UIKit 스터디를 하면서
하나의 화면을 각자 개발하는 과정을 경험했습니다.
하나의 UI 요소를 그리기 위한 코드임에도
ViewController 내부의 다양한 위치에 두고 있었습니다.
예를 들어, 아래는 UIView를 생성하고,
색상이나 여러 속성 설정 및 레이아웃 구성을 method 내에서 진행 후에
viewDidLoad에서 실행합니다.
다음은 property를 생성하면서 동시에 속성을 설정합니다.
레이아웃 구성은 method로 분리해 작성합니다.
(
.set
은 Then 라이브러리 대신에 생성한 저의 method입니다..then
과 동일한 역할을 합니다!)(저의 코드입니다 하하)
마지막은 클로저 내에서 생성하고 설정 후 return한 값을 property에 할당합니다.
이렇게 같은 화면을 개발함에도 서로 다른 방식으로 작성된 코드로 인해
코드를 이해하고 분석하는 데 시간이 더 들었습니다.
원하는 코드를 바로 찾으려면 ViewController 내에서 구조적으로 잘 정리가 되면 좋을텐데!
이러한 불편함을 줄이기 위해
저희는 ViewController 내에서 property와 method의 순서를 정했습니다.
이렇게 ViewController 내부를 잘 정리해서
모두가 같은 형식을 지키며 개발을 진행하기로 했습니다.
그럼 Code Convention 어떻게 정하죠? 🐥
Swift code를 더 읽기 좋게 쓰기 위한 규칙을 정할 때
참고할 수 있는 두 가지 가이드라인이 있습니다!
Swift API Design Guidelines
👉 Swift API Design Guidelines
Swift API Design Guidelines는
명확하고 일관된 코드를 작성하기 위한 가이드라인을 제공합니다.
여기서 'API'라는 표현은 Swift 표준 라이브러리와 함께
나 또는 팀원들이 사용할 Class, Struct, function 등도 포함됩니다.
그래서 개발자가 사용하기 편한 함수, 속성, 클래스, 프로토콜 등을 설계할 때
어떻게 사용하게 될지를 고민하고,
직관적으로 이해할 수 있도록 작성하는 방법을 알려주고 있습니다.
아카데미에도 규칙도 있어요! 🙌
👉 Apple Developer Academy swift-style-guide
악동쿠키들의 Convention을 정할 떄 가장 먼저 참고한 가이드입니다.
(저희는 팀에 맞게 조정해 규칙을 정했습니다!)
Swift code를 쓸 때 네이밍, 주석, 띄어쓰기를 어떻게 하는지
그리고 SwiftUI로 View를 선언하는 방법 등을 정해두었습니다.
이 두 가지 가이드라인 외에도
Google, Airbnb 등 여러 기업의 Swift Style Guide가 있습니다!
팀 내의 Convention을 정할 때, 다양한 가이드를 비교하며
팀의 프로젝트에 맞게 적절히 조정하면 좋을 것 같습니다.
끝!
오늘은 Code Convention에 대한 이야기를 했습니다.
통일되고 일관된 스타일로 작성된 코드는 그렇지 않은 코드보다 훨씬 이해하기 편해집니다.
Code Convention은 단순히 '규칙' 이상으로
팀원들뿐만 아니라 미래의 나를 위한 중요한 약속이기도 합니다.
그래서 Code Convention은 어떻게 잘 지킬 수 있을까요?
이어서 작성한 다음 글에서 확인해 보세요!
👉 그래서 Code Convention 어떻게 지키나요? - SwiftLint 사용법!
여러분도 나와 팀원을 위한 Code Convention을 고민하고,
팀에 맞는 규칙을 만들어 보시기 바랍니다! 🐧🐧
감사합니다!
Beta Was this translation helpful? Give feedback.
All reactions