프로젝트의 가독성, 성능을 높이기 위해 시도해봤던 9가지 노력

2021. 10. 28. 17:06iOS/iOS

728x90
반응형

안녕하세요 bannavi입니다^ㅅ^

오늘은 프로젝트의 가독성과 성능을 높이기 위해 시도해봤던 리팩토링 기법에 대해 기록해보려고합니다.
더 좋은 리팩토링 방법을 알고계시다면 댓글로 꼭 공유 부탁드립니다. ^ㅅ^


바로 시작해보겠습니다!

1. 불필요한 띄어쓰기 없애기

2. 코드 동작에 불필요한 print문 지워주기

3. 코드 자동정렬하기

command + a를 통해 코드문을 전체 선택하고 control + i를 통해 코드를 자동정렬합니다.


코드예시)

4. 코드 블록 내부 문자열 상단에 빼서 따로 관리하기

유지보수 용이성을 위해 문자열을 상단에 표기

5. ViewController, cell의 명칭을 보다 명확하고 직관적으로 설정

혼자만 알아볼 수 있는 명칭이 아닌, 이름만 봐도 내용을 유추할 수 있도록 변경하는것은 개발 협업시 도움을 줌

ViewController 명칭 변경사항
no 화면 또는 Cell 변경 전 변경 후
1 로그인화면 ViewController SignInViewController
2 개발자소개 팝업뷰 화면 BottomPopUpViewController DeveloperIntroductionViewController
3 결제자정보를 보여주는 화면 FirstViewController PayerInformationViewController
4 부자의 종류를 선택하는 화면 SecondViewController KindOfRichViewController
5 설정화면 ThirdViewController SettingViewController
6 설정화면의 Custom HeaderView DemoHeaderView CustomHeaderViewOfSettingView
7 설정화면의 DisclosureCell ThirdTableViewDisclosureCell DisclosureCellOfSettingView
8 설정화면의 SelectionCell ThirdTableViewSelectionCell SelectionCellOfSettingView
9 결제자 정보가 있는 CustomCell FirstViewCustomTableViewCell CustomTableViewCellOfPayerInformationView

6. 마크업 활용하여 코드 정리하기

extension에서 채택한 프로토콜을 Mark문법으로 표기하면 ViewController의 구성을 보다 시각화할 수 있음
ex. SettingViewController에서 extension으로 처리한곳 위에, 채택했던 프로토콜을 Mark문법으로 적어주어 코드의 구성을 시각화함

7. 접근제한자 활용

ex. private 이용시 아래의 변수들이 SettingViewController에서만 이용되는걸 파악할 수 있고, 성능도 높아짐

8. case의 이름은 enum타입의 rawValue 활용하기

case의 이름을 0, 1, 2, 3이 아닌, enum타입의 rawValue로 하면 더 직관적이고 협업시 코드 파악에도 용이하다
ex. 마이페이지에서 cell을 case별로 분리하였음

case별 역할 변경 전 변경 후
첫번째 cell클릭시 노션페이지 팝업 case 0 case IndexPathRowNum.myNotionPopUp.rawValue
두번째 cell클릭시 메일보내기창 present case 1 case IndexPathRowNum.sendingMailToDeveloper.rawValue
세번째 cell클릭시 개발자소개창 present case 2 case IndexPathRowNum.developerIntroductionPopUp.rawValue
다섯번째 cell클릭시 로그아웃 실행 case 4 case IndexPathRowNum.signOut.rawValue

9. 자주쓰는 UIStoryboard 함수로 빼서 코드 간결하게 하기

 

9-1. 자주쓰는 instantiateViewController 함수로 빼서 코드 간결하게

 

728x90
반응형