# ADVICE

조언에 대한 내용 정리

# 1. 코딩 조언

  1. 코드를 짤때 많은 이야기를 하라.
  2. 해당 unit 코드에 문제가 없이 작성하자. 해당 함수에 앞뒤를 생각하지 않았을때 자체적으로 어떠한 In/Out이 오더라도 문제가 없어야 한다.
  3. 해당 코드를 타는 로직에 대해 정확히 이해하고, 작성하자.
  4. 하나의 이름 (명명)으로 해당 변수가 사용되는 모든 곳이 검색되게 하자. (함수, 변수 등등)
  5. 코드가 일관성이 있어야 한다. 즉, C&P를 하더라도, 같은 구조가 되도록 맞추어야 한다. → 코드는 꼼꼼함이 필요하다. 테스트 기간이 필요없게 만들자. → 테스트 하기 쉬운 코드가 유지 보수성과 확장성이 훨신 우수하다.

JS내 확인사항

  1. JS의 기본 데이터 형식
  2. For of / For each / For in에 대해 정확히 구분 필요
  3. replace 내에는 정규식 및 함수 구현
  4. Curring 확인 필요
  5. Sort 경우 내부 함수를 구현하여 처리 가능함.

# 2. 클린 코드

  1. 검색 가능한 이름을 사용하기 (Use a searchable name.)
  2. 함수명은 반드시 동사로. (Function name should be verbs.)
  3. 함수는 동작 하나만.
  4. 함수의 인수는 3개이하 적당. 많을 경우에는 Object로 정리해서 param 사용.
  5. 함수의 파리미터에 boolean 을 둬서 액션 2개 이상을 구현하기 보다는, 함수를 2개로 구분하는 것을 추천.
  6. 변수명은 너무 축약하지 말것. 이해할 수 있는 변수명으로~!

# 3. 클린 코드를 위한 개발 방법론

  1. 책을 가볍게 읽는다.
  2. 다시 책을 읽는다. 모는 부분은 잠시 생각하며 읽는다.
  3. 책을 끝가지 읽는다. 눈과 머리로 읽는다.
  4. 책을 처음부터 다시 읽는다. 빨리 읽힌다.
  5. 책의 예제를 처음부터 치고 만들어 본다.
  6. 처음부터 다시 만들어 보되, 처음보다 기능을 추가하여서 만들어 본다.
  7. 다시 만들어 보되, 처음에 필요 없는 것을 리팩토링 하면서 다시 만들어 본다.
  8. 처음부터 다시 만들어보고 기능을 추가하여서 완성해 본다.

# 4. 성장하기 위한 조언

  1. 문제를 해결하는데 그치지말고 어떻게 동작하는 지 파악하라. CSS나 JS를 어설프게 손대지 말자. 왜 추가했는지에 대해 정확히 이해하고, 그 영향을 정확히 파악하자.
  2. 브라우저의 변화를 예측할 수 있게 학습하라
  3. 명세(Spec)를 읽어라
  4. 다른 사람의 코드를 읽어라
  5. 나보다 똑똑한 사람들과 일하라
  6. 있는 걸 다시 만들어라
  7. 배운 것을 기록하라

# 5. 책을 읽는 방법

  1. 책을 읽는다.
  2. 읽다가 이해가 안되는 부분이 나오면, 잠시 생각해 보다가 그냥 계속 읽는다.
  3. 이해가 안 가도 읽는다. 그냥 끝까지 읽는다. 도저히 모르겠으면 그 부분은 대충 눈으로 흝어 보고 그냥 진도 나간다.
  4. 책을 끝까지 읽었다.
  5. 책을 처음부터 다시 읽는다. 이번에도 눈과 머리로만 읽는다.
  6. 첫번 째 읽었을 때보다는 이해가 잘 되는 편인데, 그래도 잘 이해가 안되는 부분이 많다.
  7. 끝까지 읽었다. 두 번 읽었다.
  8. 책을 처음부터 다시 읽는다. 이번에는 잘 읽힌다. 전에 이해 안 가던 것도 대충은 알 것 같다. 그래도 모르는 부분이 있지만, 어쨌건 끝까지 읽는다.
  9. 끝까지 다 읽었다. 전보다 훨씬 빨리 읽었다. 이해 안 가는 부분이 아직도 있지만, 그래도 어떤 내용이 책의 어느 부분에 적혀 있는지는 거의 다 알겠다. 아주 어려운 부분 말고는 대충 다 알 것 같다.
  10. 책의 예제를 쳐서 적용한다.
  11. 두번째 같은 코드를 처음부터 짜고, 수정 개선하여 짠다.
  12. 책의 예제를 다시 짜본다. (코드의 양을 줄이고, 리팩토링을 한다. 재활용을 한다. )
  13. 처음부터 다시 짠다. 코드 양을 줄이고, 버그를 찾는다.

# 6. 성장단계

효과적인 공부 방법

  1. 읽으면서 스스로 질문 던져보기
  2. 시험 치기
  3. 텍스트 보지 않고(책 덮고) 요약하기
  4. 학습한 것과 기존에 알던 것과의 연관성을 말로 설명해보기
  5. 여러 주제 섞어서 공부하기
  6. 어떤 것을 공부할 때 그것을 다양한 방식으로 변형해보기
  7. 의도적으로 실수하고 고쳐 보기
“이것만 알면, 세계 어떤 면접도 통과할수있어요.”
1) who are you 너는 누구냐?
2) why should i choose you? 왜 하버드가(내가) 당신을 뽑아야하죠?

왜 본질로 돌아가야할까?
웹 개발 세계에서 생존하는 법.
1. (배워야 할 목록) 체크리스트를 쓰면서 배우지 말라.
   그냥 컨셉을 이해하고 집중하고, 넘어가자.
2. 너가 잘하고 편하고 느끼는 것을 집중하자.

# 7. 토이프로젝트

  • 로또 / 사다리타기 / 볼링게임 점수판 / 체스 게임 / 지뢰찾기 게임
  • 서버 구현 / 프레임워크 따라하기 / 유튜브 따라 만들어보기 / 커뮤니티 / 스터디 활동
  • 혼자보다 같이 가면 더 오래 지속할 수 있다.

[효과적인 공부 방법]

  1. 읽으면서 스스로 질문 던져보기
  2. 시험 치기
  3. 텍스트 보지 않고(책 덮고) 요약하기
  4. 학습한 것과 기존에 알던 것과의 연관성을 말로 설명해보기
  5. 여러 주제 섞어서 공부하기
  6. 어떤 것을 공부할 때 그것을 다양한 방식으로 변형해보기
  7. 의도적으로 실수하고 고쳐 보기
Last Updated: 10/1/2022, 4:55:20 PM