검색꿀팁
1.
에러 메시지 그대로 구글에 복붙해서 검색
2.
키워드 검색
a.
어떤 키워드를 검색해야 하는지 아는 경우
•
키워드로 검색
b.
모르는 경우(ChatGPT로 질문)
•
ChatGPT 검색 나쁘지 않다. 웬만해서는 구글링으로 검색 능력을 향상시키고, 정말 모르겠다면 GPT 사용하는 방법으로 이용
프로젝트 진행시 알아두면 좋은 툴 OR 프로그램
1.
Figma, Creatie(디자인 협업 툴)
2.
SourceTree, Fork(형상관리 도구)
3.
Notion(메모, 문서, 지식 정리, 프로젝트 관리, 데이터베이스, 공개 웹사이트 등의 기능)
4.
Freeform(기본 어플)
•
무료
•
아이디어 실시간 동기화 기능
•
Mac, iPhone, iPad 등 애플 기기에서 사용 가능
5.
FlatIcon(아이콘 이미지)
6.
SF Symbols(애플 디자인 리소스 도구)
7.
Homebrew(패키지 관리 프로그램)
8.
Postman(API 테스트 플랫폼)
9.
quicktype(JSON 데이터 모델링 ※ 좋지만 남발하지 않도록…)
앱 개발자로서 알아둬야할 것 등등…
인성측면
1.
커뮤니케이션 능력(다양한 직군과 소통을 해야 한다.)
개발자는 협업이라는 단어와 떨어질 수 없는 직업입니다. 하나의 서비스를 만들기 위해서는 개발자 혼자만으로는 거의 불가능합니다. 그래서 기획자와 디자이너 간의 소통이 정말 많이 이루어지는데, 담당자분들께 이해하기 쉬운 내용으로 기술 관련 내용들을 전달드려야 합니다. 내배캠에서 진행하는 협업들은 개발자들이 기획자가 되고 디자이너가 됩니다. 즉, 직접 그분들의 입장이 되어보는 거죠. 이런 경험들이 실제 현업에서도 도움이 많이 됩니다. 면접에서도 이런 경험 관련 질문들을 많이 받기도 하고요.
2.
긍정적인 마인드
끊임없이 발생하는 오류들을 만나게 되면 나도 모르게 멘탈이 흔들리고, 기분이 다운되는 경우가 많습니다. 이럴 때 새로운 지식과 기술을 얻을 수 있잖아? 럭키비키잖아? 라고 외치면서 웃으면서 디버깅을 할 수 있는 마인드가 필요합니다.
3.
일정 지키기
개발자뿐만 아니라 모든 직업에 적용되는 요소라고 생각합니다. 자신이 맡은 업무에, 자신의 실력을 고려하여 소요시간이 얼마나 걸릴지 파악하는 것이 굉장히 중요합니다. 신뢰는 일정을 지키는 것에서부터 시작되기 때문입니다.
기술측면
1.
코드 컨벤션(변수명, 함수명, 클래스, 매서드 등 이름 규약) 지키기
코드는 한 번 짜고 끝!! 이 되지 않습니다. 계속해서 유지 보수를 해줘야 하고, 업데이트를 해줘야 합니다. 이때, 자신이 짠 코드를 자신이 작업할 수도 있지만, 다른 사람이 할 수도 있습니다. 이런 경우를 생각해서 코드 컨벤션을 잘 지키는 것은 같이 일하고 싶은 개발자로 나아가는 첫 번째 발걸음입니다.
2.
소프트웨어 공학 이해하기(CS 지식)
CS 지식을 많이, 깊이 알면 알수록 도움이 된다는 것은 당연합니다. 적절한 곳에 적절한 기술을 사용하는 개발자야말로 좋은 개발자이지 않을까요?
3.
모바일 환경 이해하기
모바일이라는 환경에서 작동되는 코드들은 웹, 인공지능, 서버 등에서 작동하는 코드와 다를 수밖에 없습니다. 모바일이라는 환경에 대해서 이해를 하고, 고민을 한다면 좋은 코드를 작성할 수 있을 뿐만 아니라 나중에 기획자, 디자이너와 협업을 할 때에도 도움이 많이 될 것입니다.
4.
디버깅 방법 고민하기(브레이크 포인트 사용하기)
오류는 언제 어디서나 나옵니다. 어떤 곳에서 오류가 발생하는지 정확하게 알고, 적절한 해결 방법을 고민하는 것은 개발자의 평생 숙제입니다. 어떤 방법으로 오류를 파악하고, 오류가 일어날 수 있는 경우의 수를 계속해서 생각해서 늘려가고, 새로운 방법에 두려움 없이 도전해서 해결해나간다면, 코드를 무서워하지 않는 개발자가 될 것입니다.
5.
데이터 흐름 파악하기
앱 개발자의 단계를 나누는 것은 데이터를 얼마나 잘 다루느냐 인 것 같습니다. 결국에는 데이터를 사용자에게 편하고, 쉽게 제공하는 것이 앱 개발자의 목표이기 때문입니다.
6.
서비스 로직 파악하기
내가 만들고 싶은 서비스의 로직을 확실하게 파악하는 것이 코드 수정을 줄이는 일입니다. 로직을 잘 모르는 상태에서 개발을 하게 되면 분명히 취약한 곳과 비정상적인 곳이 생깁니다. 따라서 먼저 서비스를 분석하고, 설계 한 다음에 코딩을 하는 것이 오히려 더 빠른 방법이라고 생각합니다.
7.
코드 파악능력
개발 실력을 키울 수 있는 빠른 방법 중에 하나가 다른 사람의 코드를 읽고, 이해하는 연습을 하는 것이라고 생각합니다. 다양한 유형의 코드를 읽을 수 있다는 것은 그만큼 코드에 대한 이해도가 증가했다는 뜻이기 때문입니다.
후배기수들에게 알면 좋을만한 꿀팁
1.
구현보다는 이해
기능 구현을 위해서 이해 없이 복붙을 계속하다 보면, 결국 다양한 케이스를 다룰 수 없는 개발자가 됩니다. 기능 구현을 했다면 어떤 코드가 어떤 부분을 담당하고 있는지 파악하는 것이 중요하다고 생각합니다.
2.
모르면 넘어간 후 다음번에 도전
모르는 부분 계속 잡고 시간을 소요하는 것보다 일단 넘어간 후 코드를 이해하기 충분한 실력을 쌓은 후 돌아와서 다시 학습하는 것도 방법입니다.
3.
협업 중 잘 극복해나간 사례 적재
협업을 하다 보면 개인의 실력차를 느끼는 경우가 생깁니다. 이런 경우에 불편함을 느끼기보다는 오히려 더 좋은 기회로 생각하면 좋습니다. 팀을 단순히 과제를 해결하기 위해 잠깐 만난 사람들이라고 생각하기보다는 스터디 그룹이라고 생각을 하면 어떨까요? 다른 사람에게 나의 코드를 설명하고, 또 질문하는 과정을 반복하다 보면 코드에 대한 이해도를 급격하게 높일 수 있습니다. 사실 이런 과정들은 실제 현업에서도 자주 겪고, 원하는 모습이기도 합니다.
4.
주석 꼼꼼하게 작성하기
본인이 작성한 코드도 한달 후면 이해하기 어려운 경우가 많습니다. 주석을 꼼꼼하게 작성해둔다면, 본인 + 다른 개발자가 유지보수 하기 쉬운 코드를 작성할 수 있습니다.(하드코딩, 매직넘버 지양하기)
5.
참고하면 좋은 개발자 블로그
•
개발자 소들이
•
김종권
•
Zedd
공부방법
•
초급 단계
1.
코드 일단 무조건 작성(코드 이해 못 해도 넘어가요.)
2.
작성된 코드 이해하기 단계
3.
이해했으면 코드 지우고 다시 구현(구현하다가 막히면 해당 부분만 다시 보고 작성하기)
4.
1 ~3 반복하면서 완전 취득하기(왜 이렇게 작성했는지 생각하면서)
•
중급 단계
1.
다양한 방법으로 구현해 보기(TableView → CollectionView → UICollectionViewCompositionalLayout)
2.
다양한 기술 스택 쌓기
3.
키워드 선택해서 미니 프로젝트 해보기(해당 기술을 사용할 목적)
4.
공식 문서, 개발자 커뮤니티(Apple Developer Forums, Stack Overflow, GitHub 등)에서 검색하기
5.
다른 개발자와 같이 고민하기(구현 문제, 에러 문제)
•
고급 단계
1.
질문받기, 가르쳐 주기(설명하면서 면접 질문 대비 및 실력 향상)
2.
앱 배포하기
•
공통
1.
2.
API 통신 많이 해보기(REST API, RESTful API, 비동기 처리)
3.
리팩토링, 개선 하면서 다양한 방법으로 구현해 보기
4.
앱 배포하기(앱 개발의 전반적인 경험 취득하면서 가장 실력을 빠르게 올릴 수 있는 방법)
5.
사이드 프로젝트 진행하기
하고싶은 말
1.
다양한 오류를 경험해 보는 것이 좋다.
해결 과정에서 학습한 내용은 오류 대처 능력으로 이어진다.
2.
개발자는 생각하는 것보다 훨씬 많이 인맥이 중요하다.
3.
공부 안 되는 날 리프레시 하고 난 후 다시 시작하는 것 추천
의자에 앉아있기만 하는 것보다 푹 쉬고 열정 가지고 복귀하는 게 더 효율 좋다. (잘 쉬는 것도 능력)
4.
최신 기술이 무조건 좋은 것은 아니다.
현업에서 최신 기술을 사용할 수 있는 경우가 많이 없다. 대부분 기존 코드를 유지 보수하거나, 새로운 기능을 만들 때에도 기존 코드와 결합이 잘 되도록 하기 위해 과거 기술을 사용하는 경우가 많으니 최신 기술보다는 과거의 기술을 학습하는 것이 더 좋다.
5.
고민할 시간에 행동하기
요즘 취업 시장이 어려운데 취업할 수 있을까? 등 고민은 외부적인 요인으로 인한 것이기 때문에 아무리 고민해도 해결할 수 없다. 고민할 시간에 행동하자.(내가 잘 하면 취업은 충분히 가능하다.)