야곰닷넷 테크캐스트 [#4 지속가능한 개발자로 성장하기] 요약
- [야곰닷넷 테크캐스트 #4 지속가능한 개발자로 성장하기
OOO한 개발자입니다 (이화랑님)
- 스피커 이화랑
- 2년차 웹 프론트엔드 엔지니어 (퀄슨)
- 리얼 클래스 개발
- 유튜버 개발 화라리
내가 일하면서 재밌어하고 잘하는 것을 찾으면 지속가능한 개발자가 되지 않을까?
내가 개발하면서 재밌다고 느낀 순간
- 신규 서비스의 결제 페이지 개발
- 결제 실패시 실패 페이지로 가는게 아닌 재결제 요청 페이지를 만들었더니 재결재 률이 올라갔음
- 코드가 비지니스에 도움이 될 때 느꼈음
- 리얼 클래스 웹
- 세션이 만료되거나 권한 필요시 로그아웃되고 로그인 페이지로 리다이렉트
- 어떤 이유로 로그인이 필요한지 안내 후 로그인 페이지로 리다이렉트
- 비 구매유저가 구매유저만 이용 가능한 페이지에 접근하는 경우 근거 알려주기
- 리팩토링 하면서 코드가 개선되는게 보일 때
나를 관찰하며 독창성을 발견
- 재미있어 하는일 == 잘하는 일이면 베스트
- 이제 곧 나의 강점, 무기가 됨
나의 동료들이 좋아하고 잘하는 개발
- CSS 코드를 정발 빠르고 깔끔하게 짠다
- 기능을 계속 붙이면서 코드가 복잡해지는 순간 리팩토링으로 구조 개선
- 라이브러리의 업데이트 경향 주시하고 프로젝트에 적용
- 자바스크립트 기본기가 탄탄해서 자연히 리액트 탄탄으로 이어짐
- 타입스크립트 해결사
- 고품질 코드를 위해 렌더링 횟수 등의 성능 문제를 신경 ㅅ씀
- 디버깅을 잘해서 이슈를 빠르게 해결
지속성을 더 이어가는 방법
- 나의 장점은 타인 입장에서 타인의 단점
- 타인의 장점은 내 입장에서 나의 단점
- 장점과 단점을 동일선상에서 비교하면 스스로를 힘들게 함
- 내가 좋아하고 잘하는 일을 찾아서 하면 되겠다!
- 팀원들이 각자 서로 다른 장점을 가지고 있을 때 시너지가 난다
개발 이외의 팀적 기여
- 개인의 성향이 팀적 기여에도 영향
- 기획/디자인 리뷰: 제품 관심이 많고 감각 있는 사람
- 코드 리뷰: 꼼꼼하고 기능적 완성도 우선인 사람, 클린 코드가 중요한 사람
- 기술 문서 작성: 공유 문화를 중요시하는 사람
OOO한 개발자
꿈이이 단순히 만화가가 아니라 OOO한 만화가 이렇게 되어야한다.
- 윤태호 피디의 말
단계적 기술 성장 (조은님)
- 스피커 조은
- 버킷 플레이스 (오늘의 집)
- 프론트 엔드 엔지니어
- 주어진 일을 잘 하는 단계에서 주지않은 일도 잘 하는 단계로
- 주니어에서 시니어로 가는 단계
개발자의 세가지 영역
- 코드를 파악하는 영역
- 말 그대로 이 코드가 어떻게 동작하고 앞으로 어떤 식으로 고쳐야할지 이해한다는 것
- 코드를 구현하는 영역
- 요구사항이 주어졋을 때 그에 맞게 코드를 구현하고 실제로 동작하는 제품을 만들 수 있어야 함
- 코드를 개선하는 영역
- 기존 코드를 분석한 결과를 바탕으로 모두가 개발하기에 좋은 방향을 이끌어낼 수 있어야 함
성장을 위한 작은 실천들
- 90 days 5분 일기
- 90일 동안 하루에 5분만 투자해서 일기 써보기
- 오늘 한 것, 감정, 성공, 실패를 기록
- 이게 누적되면 어떤것에 강하고 약한지 알게 됨
- 30 days TIL
- 30일동안 무언가를 계속 습득하면서 습득했던 내용 정리하기
- 10 days project
- 10일 정도만 투자해서 작은 토이프로젝트 해보기
- 정확한 스케줄을 세우고 정확한 스펙에 맞추어 현재 가능한 수준에서 최선을 다해보기
- Study with strangers
- 모르는 사람과 스터디 해보기
- 아는 사람과 스터디하면 서로에게 맞춰줄 수 있음
여러분의 프로젝트에 모든 것이 다 있습니다 (안정민님)
- 스피커 안정민 (민소네)
- 카카오뱅크 iOS 개발자
내 시간을 만들자 (생산성 끌어올리기)
- 어떤 부분에 시간이 많이 걸리는지를 검토하는 것이 중요
- 도구, 방법론 등을 적절하게 이용하여 PainPoint를 줄이거나 제거
- 코드 작성 -> 빌드 -> 테스트 과정에서 빌드와 테스트 시간이 많이 차지함
- 프로젝트를 분리하고 개발하여 주기를 단축 (모듈화)
- 프로젝트 생성이 손이 많이 간다면, 도구 이용 (XCodeGen, Tuist)
- CI/CD를 구축하고 컴퓨터의 리소스 사용을 극대화
- 일관성 있는 코드 유지를 위해 lint를 도입하여 CI에서 하상 검증
- Local에서 빌드 할때마다보단, git의 pre commit hook에 등록하여 사전 검증
- SwiftFormat, SiwftLint 추천
- CI에 정적 코드 분석 도구(SonarQube 등)를 연동하여 중복 코드, 버그 등을 정기적으로 코드의 안전성을 강화
- Fastlane을 이용해 Build, Archive 작업 및 적절한 스크립트를 같이 이용하여 사내 배포, 앱 스토어 배포 등에 활용
- 일관성 있는 코드 유지를 위해 lint를 도입하여 CI에서 하상 검증
- 애플리케이션이 배포 된 후, 어떻게 버그없이 잘 운영할 것인지
- 고객정보가 없는 적절한 로그를 통해 원인 분석
- 크래시 리포트 분석(Crashlytics 등)을 이용하여 빠르게 이슈 대응
- 디버깅 및 개발 도구를 잘 활용할 것
- LLDB, Chisel, Flex, Reveal, OHTTPStubs, wtfautolayout.com 등
- 디자인 시스템을 활용하여 컴포넌트 조립으로 빠르게 화면을 생성
- 통일성 있는 화면 및 비지니스 로직에 좀 더 집중
똑같은 실수를 방지 하자 (트러블 슈팅 정리)
- 겪은 문제는 미래의 나 또는 동료가 겪을 수 있음
- 정리해서 공유하자
- 커밋을 얼마나 공들여서 작성하는지
- 커밋은 프로젝트의 역사이므로 잘 작성해야 함
- 깃 브랜치 전략
- 테스트가 가능하게 코드를 작성 중인가
- 결합도를 낮추기 위해 프로토콜 지향 프로그래밍 추구
- 유지보수 시 시간이 많이 걸리나요? 기능을 추가하는데 어렵나요?
- 응집도가 높은 구조이면서 예제가 잘되어있는 아키텍처 선택
- VIPER, Clean Architecture, RIBs 등
- 현재 프로젝ㅌ의 상황에 따라 방향을 선택해야 함
- 응집도가 높은 구조이면서 예제가 잘되어있는 아키텍처 선택
질문/답변
- 지속 가능한 개발자가 무엇인가요?
- 오랫동안 업계에 있으면서 존경 받는 개발자, 나 스스로의 성장에 대해 생각하는 사람
- 흥미를 지속하는 개발자
- 하고 싶은 일과 해야하는 일의 비율을 어떻게 잡는게 좋을까
- 해야할 일을 9로하고 하고 싶은 1로 두어야 좋을 듯. 잘 해야 재밌어지기도 한다.
- 초보 개발자로서 공부해야 할 분량이 많다면 어떻게 우선순위를 정할지?
- 현재 당장 하고있는 프로젝트 부터
- 초보라면 우선순위를 정하는게 불가능할 것. 도움을 받자. 강의나 책의 목차 참고
- 새로운 지식을 효율적으로 공부할 수 있는 팁
- 공부 시간을 정해서 하기
Leave a comment