# 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를 보면 어떤 코드가 얼마나 걸리는지 확인할 수 있음.

### 7. Evaluate
- 코드 리뷰는 코드를 공유하는 사람들끼리 하는 것이니 부담갖지 말자
- 코드 리뷰 이렇게 해보자
- 코드리뷰를 할 때 이해하는데 시간을 할애하자
- 실제로 프로젝트를 빌드하고 실행해보자
- 마지막 커밋이 병합인 경우 더 꼼꼼히 검증(실행)해보자
- 주석과 문서를 읽고 철자/문법 오류를 찾자
### 8. Decouple
- 프로젝트를 더 작게 나누면 작업을 더 확장할 수 있고, 바이너리 측면에서도 이점이 있다.
### 9. Manage
- 라이브러리 사용 시, 위험성을 꼭 체크하자
- 특히 개인정보와 관련되는 라이브러리는 꼭꼭 위험성 체크하자
- 패키지가 의존하는 패키지에도 관심을 둬보자
- 패키지에 문제가 생길 경우를 대비해서 계획을 세워두자
- 패키지 깃에 컨트리뷰션할 건지, 사내에 가져와서 해결해볼지 등