ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2020/09/11 - TIL (메소드를 이용해 특정 문제에 대해 과정을 정리하고 코드를 옮기는 연습)
    Develop/TIL 2020. 9. 11. 22:12

    오늘 했던 일

    • JavaScript 자료형과 연산, 메소드를 이용해 특정 문제에 대해 과정을 정리하고 코드를 옮기는 연습(알고리즘).
    • 문제를 일상적인 문장으로 표현할 수 있다(pseudocode).
    • 알아보기 쉬운 코드 작성법

     

    -문자열 바꾸기 문제로 보는 알고리즘-

    예를 들어 텍스트에서 zoo라는 단어를 찾아 전부 다른 단어로 바꿔주는 코드를 작성한다고 가정해봅니다. 

     

    • 텍스트를 입력 받는다
    • foo라는 단어를 찾는다
    • 그 단어를 지운다
    • 그 자리에 새로운 단어를 넣는다.
    • 바뀐 내용을 반환한다
    function replaceFoo(text){
    	//foo라는 글자의 index가 -1이 아니면 단어를 찾은 것이다.
        while(text.indexOf('foo') !== -1){ //index를 발견하면
        	let index = text.indexOf('foo');
            
            //index를 아용해 foo 바로 앞까지의 텍스트를 얻어내고
            let beforeText = text.slice(0, index);
            //foo대신 새로운 단어를 넣는다;
            let replaceText = 'BAR';
            //foo 이후의 텍스트를 넣는다.
         	let afterText - text.slice(index + 3) //foo는 세 글자이므로 3을 더함
            
            text = beforeText + replaceText + afterText;
        }
        return text; //바뀐 내용을 리턴한다
    }

    이와 같이 pseudocode는 주석으로 변경될 수 있습니다.

     

     

    -알아보기 쉬운 코드 작성법-

     

    코드 가독성이란?

    코드의 가독성을 높이려면, 먼저 코드의 목적이 뚜렷하고 자명해야 합니다. 그리고 그 구조가 일관되고 예측 가능해야 합니다.

     

     

    indentation - 들여 쓰기

    논리적으로 중속 되어 있는 코드를 쓸 때, 중속 된 code block는 주인 code block보다 두 칸 들여 쓰기 합니다.

    들여 쓰기를 할 때 탭이 아닌 스페이스를 사용해야 한다고 합니다.

     

    good:

    if(condition){
      action();
    }

     

    bad:

    if(condition){
    action();
    }

     

    Naming - 이름 짓기

     

    - variable names - 변수의 이름

    변수의 이름은 한 단어(Descriptive word)로 표현하는 것이 가장 좋습니다. 다루고 있는 문제의 영역, 핵심을 잘 묘사해주는 단어일수록 좋습니다. 또한, 구조적인 부분보다는 변수가 존재하는 목적을 고려해서 변수의 이름 지어야 합니다.

     

    good:

    let animals = ['cat', 'dog', 'tiger'];

     

    bad:

    let array = ['cat', 'dog', 'tiger'];

     

    - Boolean names - Boolean 이름

    boolean에 관한 변수의 이름은 전형적인 형식을 가집니다. boolean 값은 참 혹은 거짓이므로, 관련 변수의 이름 앞에 is 혹인 are를 붙입니다.

     

    good:

    let areEqual = true;

     

    bad:

    let pass = true;

     

    - Function  names - 함수 이름 짓기

    함수 관련 변수의 이름을 지을 때는 동사로 시작해야 합니다. 예를 들면 calculateTotal 혹은 listInventory 등 "{verbObject}"와 같은 형식입니다. 이런 형식을 사용하면, 변수 이름의 의미가 자명해집니다.

     

    good:

    let countWaterBLocks = function() {
    	// do stuff
    }

     

    bad:

    let waterBlocks = function() {
    	//count how many blocks of after are collected between each tower
    }

     

    - 문법적으로 생략 가능한 때에도 중괄호를 생략하지 않습니다.

     

    good:

    for(key in object){
    	console.log(key);
    }

     

     

    bad:

    for(key in object)
    	console.log(key);

     

    - Semicolons - 세미콜론

    코드 문장의 끝에는 항상 ; 세미콜론을 사용합니다.

    함수 표현식, 즉 함수가 일반적인 구문의 끝에 쓰인 경우, 마치 if, for, while 구문의 끝처럼 보일지라도 코드의 끝에 세미콜론을 써야 합니다.

     

    good:

    let goodExample = function(){
    	console.log('good');
    };

    bad:

    let badExample = function(){
    	console.log('bad')
    }

     

    - not 연산자(! )의 사용

    일반적으로 not 연산자( ! )는 부정하는 대상 코드의 바로 앞에 붙여 사용합니다.

     

     good:

    if(!isEqual){

     

    bad:

    if(! isEqual){

     

     

     

     앞으로 해야 할 일

    • 알고리즘 문제 많이 풀어보기..
    • 알고리즘 관련 서적 찾아보기
    • pseudo code 사용하는 습관 들이기

     

Designed by Tistory.