알고리즘과 알아보기 쉬운 코드

이동환·2020년 7월 31일
1

TIL

목록 보기
5/74

알고리즘 ⭐️⭐️⭐️⭐️⭐️

알고리즘 문제를 풀기 위해서

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

이를 통해 얻을 수 있는것

  • 나 뿐만이 아닌, 남들도 읽기 쉬운 코드를 작성할 수 있다.

느낀점

  • 수도코드(의사코드)가 중요하다는 생각을 해본적이 없었는데, 수도코드로 먼저 단계 단계를 쪼개어 풀어나가면, 알고리즘 문제를 푸는데 시간절약, 효율성 그리고 어떤 코드를 짜야하는지 방향성과 목적성을 알고 코딩을 할 수 있다.

코드 잘 짜는법

1. 들여쓰기 (Indentation)
- 요즘 트렌드는 탭을 사용하는것보다 스페이스를 2번 활용하여 들여쓰기한다. 
그렇기에 스페이스 2번을 사용하는것을 생활화하자.
    
* 주의사항 
   탭과 스페이스를 혼용해서 사용하면 정말 큰일!


2. 이름짓기
- 변수의 이름은 한단어(descriptive word)로 작성하는것이 가장 좋다.
- 다루고 있는 영역(Domain),핵심을 잘 묘사하는 단어로 이름 짓자
- Array의 이름 경우, 복수로 지으면 좋다.
ex) animals =['rabbit','cat','kolar'];
- Boolean과 관련된 변수는 앞에 'is' or 'are'를 붙이는것이 좋다
ex) areEqual = true;
- Function 이름을 지을땐, 동사로 시작한다
ex)countWaterBlock = function(){
	// ~~~~~~~~~
}

3. 대문자
- 대부분 사람들은 변수가 포함한 Class를 지시하기 위해서 변수 이름의 
첫 글자를 대문자로 사용한다. 그러나 몇몇은 new 키워드를 사용하여 
함수 안에서 대문자를 사용한다.
-  상수(constant), 즉 프로그램 전체에서 일정한 값을 가지는변수의 
이름을 정할 때는 그 변수의 이름을 전체 대문자로 사용한다.
ex) const MAX_ITEMS_IN_QUEUE = 100;

4. 기호/구두점 찍기(Symbol/Punctuation)
- 중괄호를 생략 가능 할 때도 생략하지 말기.
good ex) for(key in obj){
	 	   alert(key)
		 }
  
bad ex) for(key in obj)
		  alert(key)

5. 인용(Quoting)
- 문자열을 쓸 때, 큰 따옴표말고 작은 따옴표를 사용하는것이 
나중에 HTML을 이용할때 도움이 된다.
- 작은 따옴표와 큰 따옴표를 섞어서 사용 금지

6. 세미콜론(Semicolons;)
- 코드문장 뒤에 꼭 ; 사용하기
- but, for, while, if 구문 끝에는 사용하지 않기 !
  
7. 연산자
- (==!=) 보다 (===!==)을 사용하자
8. 3연산자( x? y : z) 
// x가 참이면,y를 실행하고
// x가 거짓이면, z를 실행
- 3항 연산자는 정말 간단한것을 적을때, 사용하자

9. not연산자
- !는 바로 붙여서 쓴다.
good ex) (!isEqual)
bad ex) (! isEqual)

10. switch 구문
- switch구문은 권장하지 않음. 이유는 이 구문은 break 구문 누락으로
  오류가 발생하기 쉽기때문이다.

11. 짧게 쓰기
- 코드는 뜻이 분명하고, 실행 되는 한, 되도록 짧게 쓴다.
bad ex) function square(n){
	  let squaredN = n * n;
  	  return squaredN
	}
good ex) function square(n){
	   return  n * n;
	 }
    
12. 부정문
-되도록이면 부정문은 사용하지말자. 
이유는 너무 많은 부정문은 명확성을 떨어뜨릴 수 있다.

13. Boolean
-Boolean 결과값은 바로  return 하는것이 좋다.

Veroso ex) 
if(charSet.size < text.length){
  return true;
}

Concise ex) 
return charSet.size < text.length;
    
14. 코드사이 띄어쓰기
- 코드와 코드 사이는 띄어써주면 가독성이 UP.
ex)

let first = 'first day';
    
let study = function(){
  console.log('go study');
}  

15. padding 및 추가적인 들여쓰기
- 보기 어렵지 않다면 들여쓰기 추가
ex) alert( 'I choose a cat' );
    
16. 콤마 사이 띄어쓰기
ex) Math.pow(3, 5);
    
17. 연산자 사이 띄어쓰기
bad ex)  'Fail['+testName+']'...
good ex) 'Fail['+ testName +']'...

18. 주석

- 주석을 쓰기보다는 명확한 변수이름과 함수이름을 쓰는 것이 좋습니다.
- 코드 구조와 이름을 제대로 작성했다면 코드 자체의 "story"
  (데이터 흐름과 처리과정)를 충분히 전달할 수 있습니다. 
  주석으로 "story"를 전달하려는 것은 좋지 않은 방법입니다.
- 주석은 파일을 필요 이상으로 길게 만듭니다. 주석은 작동하는 코드가 
  아니기 때문입니다.
- 주석은 코드를 쓴 이유 즉, 코드의 목적을 설명해야 합니다. 
  코드가 어떻게 작동하는지를 설명하면 안됩니다.
- 쓸데없는 주석은 지워주세요. 불필요한, 날짜가 지난, 임시적인 주석들이
  쓸데없는 주석에 해당합니다..

19. Snake vs. Camel Casing - 뱀 모양 vs 낙타 모양

- JavaScript에서는 변수의 이름을 지정할 때 'Camel Casing'을 
  사용하고, 상수 이름을 지정할 때, Snake를 사용한다.

  ex) let CamelCased = 'user in js'
    const MAX_ITEMS_IN_QUEUE = 100;
  • 코드 잘 짜는 방법을 배워야한다니... 라는 생각을 처음에 했지만,
    읽자마자 엄청난 Tip이라는 생각이 들었당 !
profile
UX를 개선하는것을 즐기고 새로운것을 배우는것을 좋아하는 개발자입니다.

0개의 댓글