# ADVICE
조언에 대한 내용 정리
# 1. 코딩 조언
- 코드를 짤때 많은 이야기를 하라.
- 해당 unit 코드에 문제가 없이 작성하자. 해당 함수에 앞뒤를 생각하지 않았을때 자체적으로 어떠한 In/Out이 오더라도 문제가 없어야 한다.
- 해당 코드를 타는 로직에 대해 정확히 이해하고, 작성하자.
- 하나의 이름 (명명)으로 해당 변수가 사용되는 모든 곳이 검색되게 하자. (함수, 변수 등등)
- 코드가 일관성이 있어야 한다. 즉, C&P를 하더라도, 같은 구조가 되도록 맞추어야 한다. → 코드는 꼼꼼함이 필요하다. 테스트 기간이 필요없게 만들자. → 테스트 하기 쉬운 코드가 유지 보수성과 확장성이 훨신 우수하다.
JS내 확인사항
- JS의 기본 데이터 형식
- For of / For each / For in에 대해 정확히 구분 필요
- replace 내에는 정규식 및 함수 구현
- Curring 확인 필요
- Sort 경우 내부 함수를 구현하여 처리 가능함.
# 2. 클린 코드
- 검색 가능한 이름을 사용하기 (Use a searchable name.)
- 함수명은 반드시 동사로. (Function name should be verbs.)
- 함수는 동작 하나만.
- 함수의 인수는 3개이하 적당. 많을 경우에는 Object로 정리해서 param 사용.
- 함수의 파리미터에 boolean 을 둬서 액션 2개 이상을 구현하기 보다는, 함수를 2개로 구분하는 것을 추천.
- 변수명은 너무 축약하지 말것. 이해할 수 있는 변수명으로~!
# 3. 클린 코드를 위한 개발 방법론
- 책을 가볍게 읽는다.
- 다시 책을 읽는다. 모는 부분은 잠시 생각하며 읽는다.
- 책을 끝가지 읽는다. 눈과 머리로 읽는다.
- 책을 처음부터 다시 읽는다. 빨리 읽힌다.
- 책의 예제를 처음부터 치고 만들어 본다.
- 처음부터 다시 만들어 보되, 처음보다 기능을 추가하여서 만들어 본다.
- 다시 만들어 보되, 처음에 필요 없는 것을 리팩토링 하면서 다시 만들어 본다.
- 처음부터 다시 만들어보고 기능을 추가하여서 완성해 본다.
# 4. 성장하기 위한 조언
- 문제를 해결하는데 그치지말고 어떻게 동작하는 지 파악하라. CSS나 JS를 어설프게 손대지 말자. 왜 추가했는지에 대해 정확히 이해하고, 그 영향을 정확히 파악하자.
- 브라우저의 변화를 예측할 수 있게 학습하라
- 명세(Spec)를 읽어라
- 다른 사람의 코드를 읽어라
- 나보다 똑똑한 사람들과 일하라
- 있는 걸 다시 만들어라
- 배운 것을 기록하라
# 5. 책을 읽는 방법
- 책을 읽는다.
- 읽다가 이해가 안되는 부분이 나오면, 잠시 생각해 보다가 그냥 계속 읽는다.
- 이해가 안 가도 읽는다. 그냥 끝까지 읽는다. 도저히 모르겠으면 그 부분은 대충 눈으로 흝어 보고 그냥 진도 나간다.
- 책을 끝까지 읽었다.
- 책을 처음부터 다시 읽는다. 이번에도 눈과 머리로만 읽는다.
- 첫번 째 읽었을 때보다는 이해가 잘 되는 편인데, 그래도 잘 이해가 안되는 부분이 많다.
- 끝까지 읽었다. 두 번 읽었다.
- 책을 처음부터 다시 읽는다. 이번에는 잘 읽힌다. 전에 이해 안 가던 것도 대충은 알 것 같다. 그래도 모르는 부분이 있지만, 어쨌건 끝까지 읽는다.
- 끝까지 다 읽었다. 전보다 훨씬 빨리 읽었다. 이해 안 가는 부분이 아직도 있지만, 그래도 어떤 내용이 책의 어느 부분에 적혀 있는지는 거의 다 알겠다. 아주 어려운 부분 말고는 대충 다 알 것 같다.
- 책의 예제를 쳐서 적용한다.
- 두번째 같은 코드를 처음부터 짜고, 수정 개선하여 짠다.
- 책의 예제를 다시 짜본다. (코드의 양을 줄이고, 리팩토링을 한다. 재활용을 한다. )
- 처음부터 다시 짠다. 코드 양을 줄이고, 버그를 찾는다.
# 6. 성장단계
효과적인 공부 방법
- 읽으면서 스스로 질문 던져보기
- 시험 치기
- 텍스트 보지 않고(책 덮고) 요약하기
- 학습한 것과 기존에 알던 것과의 연관성을 말로 설명해보기
- 여러 주제 섞어서 공부하기
- 어떤 것을 공부할 때 그것을 다양한 방식으로 변형해보기
- 의도적으로 실수하고 고쳐 보기
“이것만 알면, 세계 어떤 면접도 통과할수있어요.”
1) who are you 너는 누구냐?
2) why should i choose you? 왜 하버드가(내가) 당신을 뽑아야하죠?
왜 본질로 돌아가야할까?
웹 개발 세계에서 생존하는 법.
1. (배워야 할 목록) 체크리스트를 쓰면서 배우지 말라.
그냥 컨셉을 이해하고 집중하고, 넘어가자.
2. 너가 잘하고 편하고 느끼는 것을 집중하자.
# 7. 토이프로젝트
- 로또 / 사다리타기 / 볼링게임 점수판 / 체스 게임 / 지뢰찾기 게임
- 서버 구현 / 프레임워크 따라하기 / 유튜브 따라 만들어보기 / 커뮤니티 / 스터디 활동
- 혼자보다 같이 가면 더 오래 지속할 수 있다.
[효과적인 공부 방법]
- 읽으면서 스스로 질문 던져보기
- 시험 치기
- 텍스트 보지 않고(책 덮고) 요약하기
- 학습한 것과 기존에 알던 것과의 연관성을 말로 설명해보기
- 여러 주제 섞어서 공부하기
- 어떤 것을 공부할 때 그것을 다양한 방식으로 변형해보기
- 의도적으로 실수하고 고쳐 보기