# iOS 개발자로 계속 성장하는 팁들 (by. 도미닉) ### 1. 커뮤니티 활동하기 - iOS 오픈채팅방, Slack등 서로 지식공유 등 소통을 하자! - 개발자 동아리(같이 개발) 참여해서 다양한 직업군과 같이 개발하자 - 컨퍼런스 + 뒤풀이 참여하여 더 많은 꿀팁을 알아가자 - 스터디해보기 - 뉴스레터 봐보기 (레츠스위트프) ### 2. 강의와 책으로 공부하기 - 애플 공식 문서 - Swift 책 공부(야곰 책 등 추천) - iOS 책 공부(꼼꼼한 재은씨 시리즈 등 추천) - raywenderlich 자료 - 인프런(오토레이아웃 추천) 강의 - 부트캠프, edwith 강의 ### 3. 스터디하기 - 인프런 게시판 등 한 번 봐보자 - 직접 개설해보자 - 스터디해서 잘하는 동료를 보며 자극 받고, 서로 알고 있는 내용을 공유해서 함께 성장하자. ### 4. 선배 개발자에게 질문하며 성장하기 - 링크드인, 페이스북에서 선배 개발자 친추하기 - 내가 공부한 내용을 공유해서 질문 및 피드백 받아보기 - 커리어에 대해서도 대화를 걸어 많은 도움을 받을 수 있음 - 운이 좋으면 추천으로 회사에 지원을 할 수도 있음 ### 5. 자신이 공부한 내용 공유하기 - 쉽거나 간단하다고 느끼는 것도 모르는 사람이 있음 - 작성한 글을 여러 매체에 공유해보자. 피드백을 받아 더 큰 실수를 방지할 수 도 있음 ### 6. 질문 잘하는 방법 - 러버덕 디버깅(인형에게 설명하는 방식)을 해보자 - 설명하는 과정에서 생각이 정리됨 - 말로 표현하게 되면서 내가 놓친 것 또는 해결책이 생각날 수 있음. ### 7. 영어를 하면 좋음 - 영어를 잘 하면 얻는 이점이 많음 ### 8. 검색 키워드는 영어로 작성 - 같은 내용을 한글과 영어로 검색해쓸 때 결과의 퀄리티는 하늘과 땅 차이임 - 영어 검색 + 언어 설정 영어로 하면 더 좋음! <br> --- <br> # 개발에 도움이 되는 습관 (by. 라이언) ### 0. 들어가기전에.. - wwdc21에 이 내용이 있으니 참고해보자 - 숨겨진 디테일(hidden details matter)이 개발에 도움이 됨! ### 1. organize - 파일(file system) 정리하기 - mvc보다 피쳐그룹핑이 더 이점 있음 - storyboards 정리하기 - 스토리보드 참조를 사용해보자 (`cmd + shiht + L`) - 한 스토리보드 파일에 모든 UI를 넣지 말자 ### 2. Modern 최신화 - 2017년 이후 Build System 달라짐 - 주석은 생산성에 많은 영향을 줌 - 주석대신 커밋 이력으로 남겨놓기 - 경고도 포함안되게 해보기 - 경고를 쌓아두다가 새로운 경고를 놓칠 수 있음 ### 3. Track - 커밋 내역은 최소화! - 히스토리를 보거나, 되돌릴 때, 수정할 때 이점이 있음 - 커밋 메세지 잘 작성하기 - 미래의 나, 동료들이 다시 봄 - 코드 변경사항을 자세하게 적어두기. - 브렌치를 잘 활용하자. - gitFlow, gitLapFlow, githubFlow 참고해보기 - Trunk..? (이거 아시는 분..?) ### 4. Document (문서화) - 좋은 주석은 맥락이 있는 것. - 변수, 상수 이름을 서술적으로 지으면 좋음 - 문서화 주석 단축키를 사용하자 (`opt + cmd + /`) ### 5. Test - 커밋해보기 전에 테스트해보기 - CI 이용할 수도 있음 ### 6. Analyze - 네트워크 테스트도 해보자 - schemes 활용해보자 - 디버깅할 때는 성능과 리소스에 중점을 두자 - 의도하지 않는 서버로 접속하는지도 확인할 수 있음 - Time Profiler를 보면 어떤 코드가 얼마나 걸리는지 확인할 수 있음. ![](https://i.imgur.com/c4KGGJm.png) ### 7. Evaluate - 코드 리뷰는 코드를 공유하는 사람들끼리 하는 것이니 부담갖지 말자 - 코드 리뷰 이렇게 해보자 - 코드리뷰를 할 때 이해하는데 시간을 할애하자 - 실제로 프로젝트를 빌드하고 실행해보자 - 마지막 커밋이 병합인 경우 더 꼼꼼히 검증(실행)해보자 - 주석과 문서를 읽고 철자/문법 오류를 찾자 ### 8. Decouple - 프로젝트를 더 작게 나누면 작업을 더 확장할 수 있고, 바이너리 측면에서도 이점이 있다. ### 9. Manage - 라이브러리 사용 시, 위험성을 꼭 체크하자 - 특히 개인정보와 관련되는 라이브러리는 꼭꼭 위험성 체크하자 - 패키지가 의존하는 패키지에도 관심을 둬보자 - 패키지에 문제가 생길 경우를 대비해서 계획을 세워두자 - 패키지 깃에 컨트리뷰션할 건지, 사내에 가져와서 해결해볼지 등