0524-you-don't-know

you-don’t-know

제대로 아는 것이 없냐 ‘ㅁ’;

수업 레빌2 제대로 공부를 한 것인가 자네

잘 아니 제대로 아니 ?.?

디버깅도 제대로 못하고 뭔가 이상하다

수업 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//2초뒤에  'codesquad'가 출력되도록 코드를수정하세요. (출력은 printMyname을 통해서 할 수 있음)
//(a,b객체를 직접 부를 수 없음. bind,call 등을 사용해야 함)


const a = {
run() {
setTimeout( ()=> {
const name = this.getName();
},1000);

}
}

const b = {
start(printMyname) {
setTimeout(function(){
a.run();
},1000);
},
getName() {
return 'codesquad'
}

}

const printMyname = (name) => console.log(name);
b.start();

this가 무엇을 가르키는지 어떻게 바꿔줘야 할 지?.? 제대로 이해를 했나

마지막 불릴 때 a를 가르키는 것을 알았으니까 b로만 바꿔주면 되는데 그렇다면
a.run()이 실행될 때 this를 바인딩 하니까 여기서 this가 b를 가르킬 수 있도록 하면 되는데

삽질의 연속 -> 메소드의 .bind(this)
b.start().bind(this) 막 이런것들을 하면서 삽질을 했다.
으으으!!!!
디버깅 처음부터 다 보려고 하지 말고
배운 것 에러가 나온데부터 살펴보며 되짚어 간다. 지금은 간단한 거니까 처음부터 다봐도 되지만 … 나중엔 당연히 이런식으로 디버깅 하는 것이 더 효율적일텐데…

오래 걸린 이유 잘 몰라서

  1. 디버깅 잘 못함
  2. 함수를 적어줘서 출력한다 생각을 잘 못했다.
  3. 변경이 많은 것은 브라우저 디버깅에서는 var로 하면서 여러번 테스트 하다가 이유 ->계속 새로고침 해야 됨 var면 clear하고 덮어씌울 수 있으니까 최종이 됬을 때 다시 const로 바꿔주자 !

수업 1-2 …

새로 알게 된 사실
this_call_bind_01

[this_call_bind_02](https://gist.github.com/amorfati0310/2b378703638d1de69ce9437220a34571

아! 근데 method로 접근할 때는 클래스 왜냐하면 인스턴스 property로 안 딸려 오니까
다른 거는 인스턴스로 접근을 해야 property들을 읽어 올 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
javascript
function a() {
const b = function() {
return this;
}
console.log('result is', b());
}


function stricta() {
"use strict"
const b = function() {
return this;
}
console.log('result is', b());
}
a();
stricta();

strict mode

strict mode여서 아래거는 this -> window를 읽어오지 못한다.

왜?

this. 전역객체에 접근을 못하는 것 같다.

수업 2 정규표현식

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

function getDate(date) {
var regex = /(\d{4})-(0?[1-9]|1[0-2])-([0-2]?[1-9](?!.+)|3[0-1])/g
return regex.exec(date);
}

console.log(getDate("2018-5-24"));
console.log(getDate("2018-5-4"));
console.log(getDate("2018-01-31"));
console.log(getDate("2018-02-8"));
console.log(getDate("2018-02-07"));
console.log(getDate("2018-11-31"));
console.log(getDate("2018-19-31"));

// /아래처럼 출력되는 getDate함수를 만드세요.
//정규표현식을 사용합니다.
console.log(getDate("2019-11-2"));
console.log(getDate("2017-3-1"));
console.log(getDate("2014-3-12"));
console.log(getDate("2014-3-"));//error
console.log(getDate("2014-3-32"));//error
1
2
3
4
5
6
배운 사실 0?[1-9]|1[0-2]
? 옵셔널
. any문자 +1개이상
* 모든 것
| 또는
(?!.+) ?! 뒤에 이게 붙지 않은 것을 찾기 !

정규표현식

나 혼자 정규표현식 잘 모르니까 … 매우 짜증났다. 혼자 구구단 못하는 아이가 된 기분
아 수업 때는 아쉬운 점은 문제해결력 월은 저렇게 되었으면 32 31 이런데서 3만 짤려 나올 때는 다른 부분에서 검출이 됬구나를 유추하고
그러면 앞에걸로 먼저 필터링이 되지 않으려면 어떻게 해야할까 이 고민을 해야 하는데 ! 똑같은데 왜 안되지 다른 것 찾아보자 … 막 이랬으니 에효
지금 생각해보면 진짜 바보 같다

그래도 삽질을 많이 했으니 내일부턴 이런 실수를 덜 하도록 의식적 문제가 무엇인지 판단을 제대로 하는데 신경 쓰기!!!

회고 !

오늘 할 일

  1. 웹 자판기 pr리뷰 받은 내용 정리 하고 리팩토링 후 다시 pr x
  2. ArrayParser 다른 사람들 코드 보고 공부 x
  3. TIL v
  4. cs50 1시간 듣기 x
  5. 타입스크립트 인강 및 코드스피츠 인강 듣고 공부하기 x
  6. daily Algorithm 1~2시간 이제 할 것임 v
  7. 알고리즘 스터디 및 코드스피츠 스터디 계획 세우기 :smile: v

당연히 다 못할 수 밖에 없는 오늘 수업 데이였는데

수업 들은 만큼 얻은 부분도 많았으니 .. 어느정도 인지 그래도

생각보다 7번 회의 및 스터디 어떻게 하는지에 대해서 하는데 시간이 오래걸렸다.
효율적으로 회의를 잘 하고 싶다 생각이 들었다. 이정도면 양호 한 것인가?
루미 아이디어로 내가 지금 하고 있는 프로젝트의 리뷰및 공유하고 싶은 것들을 공유하는 스터디는 어떤지 얘기가 나왔으나
그러면 동동은 기존에 이렇게 하고 있는 스터디가 이미 있다고 해서 결국 다 참여하고 싶어하는 쪽으로 가다보니…
사실 도움이 되는 것은 루미 아이디어가 더 도움이 많이 되는 스터디 일 것 같긴 한데 아쉽다.
뭐 어찌되었든 평소에 리뷰를 잘 하고 사람들이랑 공유하면 되지 뭐 근데 이 아이디어의 문제는 같은 것을 공부하지 않는 이상 공유하고 같이 무언가를 하기가 생각만큼 커뮤니케이션이 쉽지가 않을 것 같다. 같은 것을 봐도 잘 못 보는데 흠
그리고 스텝이 좀 다르면 미리 다른사람이 고민하기 전에 답을 알게 되는 경우가 생길 수도 있을 것 같아서 흐음

사실 이렇게 같이 하는 것을 좀 많이 만들고 싶은데 각자 스텝들 진행이 있으니… 나도 그렇고 현실적으로 어려운 상황 :D
결론 지금 주어진 것이나 좀 잘 하자 뭘 그리 만드시나

  • 네이버 부스트캠프는 하고 계신가요?
  • 빌드004는 하고 계신가요?
    ……….. 지송

오늘의 링크 줍줍

러닝깃
릿코드

예전에 알고리즘 사이트들 어디다 팔아먹었더라.

데일리 알고리즘

leetCode로 1문제 배운 점 음 글쎄 자릿수 맞춰주는 것을 좀 잘한 건가?
내장 메소드 .toString활용
다르게 풀 수 있는 방법?
생각해보니 그냥 bit연산자로 다른 것 하고 1의 숫자를 가지고 오면 굿 요렇게 수정해보자 !