-
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 사용하는 습관 들이기
'Develop > TIL' 카테고리의 다른 글
2020/09/16 - TIL (Koans과제, 터미널로 git 다루기, SpreadSyntax) (0) 2020.09.16 2020/09/15 - TIL (Command Line, Git, Scope, Closure) (0) 2020.09.15 2020/09/14 - TIL (알고리즘 Basic) (0) 2020.09.14 2020/09/09 - TIL (모르는 것을 검색하는 법, 반복문) (0) 2020.09.10 2020/09/07 - TIL (0) 2020.09.07