알고리즘과 Better Code

체크해보기

✔️ 요구사항이 하나 이상인 문제를 여러개로 쪼개서 생각할 수 있다
✔️ 문제를 일상적인 문장으로 표현할 수 있다 (해당 위치에 바르게 주석 달기)
✔️ 잘게 쪼갠 특정 문제가 이미 배운 Javascript의 어떤 개념과 연관되는지 생각해 낼 수 있다.

성취 목표

나 뿐만이 아닌, 남들도 읽기 쉬운 코드를 작성하기
알고리즘 문제를 풀기 위해서는 ‘체크해보기’ 항목에 대해 자신있게 체크하기

항상 코딩 전 어떻게 프로그램이 작동하는지 흐름 파악하는 게 중요!

🔥 알고리즘 생각하기

텍스트에서 foo라는 단어를 찾아 전부 다른 단어로 바꿔주는 코드를 작성하기
텍스트를 입력으로 받는다
foo라는 단어를 찾는다
그 단어를 지운다
그 자리에 새로운 단어를 넣는다
바뀐 내용을 리턴한다

그 다음 구체화하기

foo라는 단어를 찾는다
끝까지 일치하는지 확인해 본 후에 foo라는 글자의 index가 -1이 아니면 단어를 찾은 것
그 자리에 새로운 단어를 넣는다
while index를 발견하면
index를 이용해 foo 바로 앞까지의 텍스트를 얻어내고
foo 대신 새로운 단어를 넣는다
foo 이후의 텍스트를 넣는다
endwhile

바뀐 내용을 리턴한다

Indentation - 들여쓰기

종속된 코드를 쓸 때, 종속된 code block은 주인 code block보다 두 칸 들여쓰기 합니다.
들여쓰기 시, Tab 아닌 Space 2번!
절대로 피해야 할 한 가지! -> 스페이스와 탭을 혼용해서 사용하는 것! 금기!!

Naming - 이름 짓기

변수의 이름은 한 단어(Descriptive Word)로 표현하는 것이 좋아요.
구조적인 부분보다는 변수가 존재하는 목적을 고려해서 변수의 이름을 지어야 해요!

  • Good
let animals = ['cat', 'dog', 'fish'];
  • Bad
let targetInputs = ['cat', 'dog', 'fish'];
let animal = ['cat', 'dog', 'fish'];

✅ array와 같은 Collections을 값으로 갖는 변수의 이름은 복수 명사가 좋아요.

Boolean names - Boolean 이름

Boolean에 관한 변수의 이름은 전형적인 형식을 가지게 돼요!
Boolean 값은 참 혹은 거짓이므로, 관련 변수의 이름 앞에 is 혹은 are를 붙여요.
예: isValid 또는 areAvailable

Function names – 함수 이름 짓기

함수 관련 변수의 이름은 동사로 시작해야 해요.

Boolean 결과 값은 바로 return

  • Bad
if(charSet.size < text.length) {
  return false;
}
  • Good
return charSet.size > text.length;

마지막으로 JS에서 변수 이름 지정 시 Camel Casing

Snake Casing을 사용하는 경우는 상수 이름을 지을 때 !

const MAX_ITEMS_IN_QUEUE = 100;

🚨
알고리즘 파트에서는 4시간동안 6문제를 풀었다...
그 중 3문제도 레퍼런스 코드로 겨우 이해했고..
평일 마무리가 허무하게 지나가 버린 느낌적인 느낌 :(
주말동안 복습 또 복습🔥

profile
개발루:)

0개의 댓글