Daily/TIL(Today I Leared)

🍒What I did today(오늘 한 일)

Judaeng 2021. 2. 2. 20:40

가독성 좋은 코드 작성하기

정해진 방식이 있는게 아니라 사람마다 달라서 반영되는게 다르기도 하고, 조금 달라도 정상적으로 작동이 잘 되기 때문에 문제는 없다. 하지만 협업이 필수적인 개발자에겐 빠르게 읽을 수 있는 깔끔한 코드는 소통 과정에서 생기는 유지보수 비용을 줄여준다. 

나는 지금까진 좀 민감(?)하고 이상한 코드를 보면(?) 불편한 부분들이 있어서 코드 스타일링을 하는 편인 것 같다.

 

Coplit(Algorithm Basic) 문제 풀기

알고리즘 문제(?)들을 풀어보면서 지금까지 배웠던 개념들이 문제에 나왔다. 복습할 수 있어서 좋았지만, 너무 어려운 문제도 많아서 문제였다.

어떤 문제를 보면 이렇게도 풀 수 있을 것 같고 다른방법으로도 풀 수 있을 것 같은 느낌이 많이 왔다. 처음보다는 정말 문제에 접근하는 방식이 많이 달라진 것 같다. 처음엔 문제를 봐도 모르겠었는데 지금은 조금씩 이해가 된다.

이해 방법은 많이 풀어보고 문제를 외워버리는(?) 방법도 좋은 방법이라고 생각한다.

계속 집중해서 풀다가 머리가 아파서 쉬는 시간을 자주 가지는 것도 좋은 것 같다. 오늘이 그런 날이였던 것 같다😶

앞으로는 많이 풀면서 다양한 방법으로 푸는 법을 고민해보고, 안된다면 문제 해결 방식을 어떤식으로 할지도 생각해 나아가고 싶다.

 

🍒Remember(기억할 것)


코드 스타일링 꿀팁🍯

naming :

변수명(값의 본질적 의미 담기) : principal(원금),  interest(이자), interestRate(이자율) 

배열/객체명(복수명사) : animals ["dog", "cat", "bird"]

boolean type변수(is,are 붙이기) : let isDog = true; , let 강아지입니다. = true;

함수명(동사로 시작) : let countBlocks = function() // 벽돌의 개수를 세는 함수임을 쉽게 알 수 있다.

Class type 변수(첫글자를 대문자로) : Class Animal() { 

상수(모두 대문자, snake_case) : const MAX_ITEMS_IN_QUEUE = 100;

기호 및 구두점(punctuation)

중괄호{}, 세미콜론; , 문자열 ''  "" , 구문 사이 공간 띄어쓰기, 줄바꿈 ` 백틱사용` , 함수표현식 끝엔 세미콜론 사용하기

마지막으로 참고자료 여기

 

String.prototype.indexof()

호출한 String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환합니다. 일치하는 값이 없으면 -1을 반환합니다.

searchValue : 찾으려는 문자열. 아무 값도 주어지지 않으면 "undefined"를 찾으려는 문자열로 사용한다.

fromIndex : 문자열에서 찾기 시작하는 위치를 나타내는 인덱스 값이다. 어떤 정수값이라도 가능하다.

당연히 존재여부 확인도 가능하다. true, false 이런식으로 사용 가능하다 

str.indexOf(searchValue[, fromIndex])


// 예제
'Blue Whale'.indexOf('Blue');     // returns  0
'Blue Whale'.indexOf('Blute');    // returns -1
'Blue Whale'.indexOf('Whale', 0); // returns  5
'Blue Whale'.indexOf('Whale', 5); // returns  5
'Blue Whale'.indexOf('Whale', 7); // returns -1
'Blue Whale'.indexOf('');         // returns  0
'Blue Whale'.indexOf('', 9);      // returns  9
'Blue Whale'.indexOf('', 10);     // returns 10
'Blue Whale'.indexOf('', 11);     // returns 10
'Blue Whale'.indexOf('blue'); // returns -1 // 대소문자를 구분하기 때문에 일치하는 문자열이 아닌 -1 반환하게 된다.

substr()

문자열에서 특정 위치에서 시작하여 특정 문자 수 만큼의 문자들을 반환합니다.

구문은 다음과 같다. str.substr(start[, length])

start : 추출하고자 하는 문자들의 시작위치, length : 옵션값, 추출할 문자들의 총 숫자

const str = 'Mozilla';

console.log(str.substr(1, 2));
// expected output: "oz"

console.log(str.substr(2));
// expected output: "zilla"

Array.prototype.reverse()

배열의 순서를 반전합니다. 첫 번째 요소는 마지막 요소가 되며 마지막 요소는 첫 번째 요소가 됩니다.

구문은 다음과 같다. a.reverse()

const array1 = ['one', 'two', 'three'];
console.log('array1:', array1);
// expected output: "array1:" Array ["one", "two", "three"]

const reversed = array1.reverse();
console.log('reversed:', reversed);
// expected output: "reversed:" Array ["three", "two", "one"]

// Careful: reverse is destructive -- it changes the original array.
console.log('array1:', array1);
// expected output: "array1:" Array ["three", "two", "one"]

// 배열의 요소를 반전하기
const a = [1, 2, 3];
console.log(a); // [1, 2, 3]

a.reverse();
console.log(a); // [3, 2, 1]

Array.prototype.sort()

배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort가 아닐 수 있습니다. 

기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다

정렬은 알아두고 있으면 좋은 메서드이다. 자주 나오는 것 같아 여기 꼭 방문해서 알아보자

arr.sort([compareFunction])
// 매개변수 compareFunction 
// 정렬 순서를 정의하는 함수. 
// 생략하면 배열은 각 요소의 문자열 변환에 따라 각 문자의 유니 코드 코드 포인트 값에 따라 정렬됩니다.

// 함수식(클로저) 예제
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
  return a - b;
});
console.log(numbers);

// [1, 2, 3, 4, 5]

🍒More Study


화살표함수

Coplit 더 풀어보기

 

2021-02-02


오늘은 Coplit(Algorithm Basic) 문제만 풀다보니까 시간이 다 가버린 하루였다.

요새 문제를 풀어보는데 많은 생각이 든다.

문제 접근 방식이 어떤 방식이 좋은건지 나쁜건지도 생각해보고, 나는 문제를 외워버려서 풀어버리는 것 같은데... 결국 문제를 외우고 어떤식으로 풀어야지! 라고 생각하면 좋은 거 아닌가...ㅎ😥

조금 더 고민할 필요가 있다고 생각이 든다. 문제를 외우려면 결국 많이 풀어볼 수 밖에 없겠지?😂😫