주간TIL_200330~200406

나연·2020년 4월 5일
0

TIL(Today I Learned)

목록 보기
2/6
post-thumbnail

3월 30일 (월)

오늘 한 일

  • Javascript 알고리즘 문제 풀기
  • Javascript 알고리즘 문제 오늘 푼거 복습, 내일 꺼 예습
  • Math 메소드 블로깅 정리

새로 배운 개념

  • Array.pop(), Array.shift()는 mutable ➡ 배열의 길이에 직접적으로 변화를 줌
  • Array.slice()는 immutable
  • (알고리즘 6번) arr.push([value]) 괄호로 value 값을 묶어주면 array 그자체로 넣을 수 있음
  • 객체에 키만 추가하려면 obj.key=undefined설정

📝주말에는
금욜까지 할당됐던 문제 다시 풀어보기(Javascript basic문제,koans전체,koans Advanced js) /
(일)블로깅5일치 기록해놓은거 출간 /
Closure,객체지향,scope, 개념복습 /
3주차 수업준비


3월 31일 (화)

오늘 한 일

  • Javascript 알고리즘 문제 풀기
  • Javascript 알고리즘 문제 전체2독(10문제 남음)
  • Javascript Recursion 블로깅(뒤에 나오는 부분에서 블로깅하고 오늘 관련 알고리즘 문제보며 재귀 개념 이해)

새로 배운 개념

//for of : 반복가능한 객체 (Array, Map, Set, String, TypedArray, arguments 객체 등을 포함)에 대해서 반복하고 각 개별 속성값에 대해 실행되는 문이 있는 사용자 정의 반복 후크를 호출하는 루프를 생성합니다.

const array1 = ['a', 'b', 'c'];

for (const element of array1) {
  console.log(element);
}
// expected output: "a"
// expected output: "b"
// expected output: "c"
/*arr의 존재 여부를 판단할 때 arr===[] 가 아닌 arr.length===0으로 해야하는 이유
primitive type(원시타입)과 달리(number,string,boolean) 배열과 배열, 객체와 객체는 똑같이 생겼다고해서 같은게 아니다!!!! [] == [] 는 false 이유는 주소값이 다름*/

 let obj = { name = '김코딩' }  
//이 객체는 사실 정보를 가지고 있는게 아니라 주소를 가지고 있음
//reference type 참조,주소타입 (함수,배열,객체)
for(let i=0; string[i]; i++){
} //for문의 조건식이 신기해서, string의 i번째 index의 값이 나오기 위해 유효한게 범위라니 

[🤦‍♀️불평불만 회고] 장장 13시간 페어 프로그래밍이 끝났는데 하나도 후련하지가 않다. 오히려 알고리즘 문제 너무 못 푸는 나 자신에게 화가 난 하루. 40분씩 잡고 푸는데도 시간이 너무 부족해서 넘어가는게 많아서 답답했다.. 리뷰 때 30분 이내에 푼 사람들 너무 많고 내가 1~2시간 봐도 모르겠는 문제를 40분 안에 풀었다고 너무 오래걸렸다고 불평하는 분도 계시길래 쥐뿔도 없는 내가 너무 편하게 공부했구나 자극 받았다. 어제 수업 끝나고 오빠가 잠깐 시간내서 알려준 알고리즘 로직들이 컴퓨터적 사고를 하는데 많이 도움 받았다. 나는 아직 코딩을 하기엔 너무 사람처럼 생각하고 있었구나 깨달았다. 아무튼 오늘 알고리즘 문제 다 다시 풀고 거기 나온 개념 정리해보기
부족할 수록 개념으로 돌아가서, 개념을 충실하게


4월 1일 (수)

오늘 한 일

  • Javascript git 과 github 학습
  • JS Koans 할당량 다 풀기(배운 부분)
  • Javascript 알고리즘 문제 전체2독완성
  • Javascript git배운거 복습 및 블로깅
  • 얄팍한 코딩사전 유튜브채널 git,scope 부분 학습

새로 배운 개념
에러 확인
expect().toBeTruthy();
expect().toEqual();
expect().toBe(); ➡ ===처럼 타입까지 확인해줌

let somthin = new Array(n)
somthin.length = n

array.pop() ➡ 반환하는 값은 마지막 요소를 제거하고 그 제거한 요소
array.shift
array.every() ➡ 그 배열의 모든 요소가 주어진 함수에 충족되는지를 평가하는 boolean value
array.some() ➡ 적어도 한 요소라도 충족되는지를 평가


4월 2일 (목)

오늘 한 일

  • Javascript scope, closure, 객체지향 학습
  • JS Koans 나머지 다 풀고 제출
  • 생활코딩 클로저,객체지향 부분 학습
  • Scope, Closure, 객체지향 블로깅 (Closure,객체지향 금요일 포스팅)
  • 체크포인트 시험본 거 복습, 다시 풀어보기

새로 배운 개념
Prototype을 사용해 만든 property는 public하고 변경이 가능합니다.
Closure를 사용해 만든 property는 private하고 변경이 불가능합니다.

[회고] 많은 개념을 새로 배웠는데 기초를 탄탄하게 만들어가는 과정임이 느껴졌다. 사실 부트캠프 자료만으로 정확하게 이해가 가지 않아서 관련 레퍼런스를 더 찾아보고 정리해야할 것 같다. Scope와 Closure는 같은 맥락에서 함께 정리하기


4월 3일 (금)

오늘 한 일

  • Closure, 객체지향 복습
    • 유튜브 노마드코더 scope강좌
    • 유튜브 코드종,뉴렉처 closure 강좌
    • 유튜브 생활코딩 객체지향 강좌 다시보기
    • Closure, 객체지향 블로깅
  • testbuilder 학습

  • testbuilder 문제 다시 접근해보고 advanced 풀어보기 (토)

  • koans 다시보기 (토)

  • koans advanced js풀어보기 (토)

  • 알고리즘 문제 다시보기

  • 코플릿6,7다시보기

  • 블로깅 출간

  • 3주차 수업준비 (미리 강의 수강)

새로 배운 개념
TDD(Test-driven Development)
test builder를 만드는 총 세가지 흐름( Mocha, Assert, Chai )
Mocha테스트
:if의 parameter로 true일 때 해당하는 조건을 넣어주고 해당 조건이 true가 아니면 Error, 즉 일부러 테스트가 실패해야 하는 함수를 만드는 것이다. 정리하자면 함수를 실행할 때 오류가 발생하면 실패한다, 오류가 발생하는 지를 확인하기 위한 기구이다.

it(판별하고자하는 원하는 조건, function(){
if(!isTrue) {
  throw new Error ("Test failed");
 }
});

assert테스트
:항상 if/throw 구문으로 오류를 체크하는게 귀찮기 때문에 구상한 다른 방법

let assert = function(isTrue){
if(!isTrue) {
  throw new Error ("Test failed");
 }
};
it("has a length of 1", function() {
    assert(detectNetwork("true여야하는 조건") === "성립했을 때 나와야 하는 return값");
  });

chai테스트 assert문법

let assert = chai.assert;
it("has a length of 1", function() {
    assert(detectNetwork("true여야하는 조건") === "성립했을 때 나와야 하는 return값");
  });

chai 테스트 expect문법

let expect = chai.expect;
 it("has a length of 16", function() {
    expect(detectNetwork("true여야하는 조건")).to.equal("return값");
  });

chai 테스트 should 문법

let should = chai.should();
  it("has a length of 16", function() {
    detectNetwork("true여야하는 조건").should.equal("return값");
  });

어떤 것을 사용하든지 상관없으니 일관성을 유지!

[😎부트캠프 2주차 끝에서, 생각의 정리] 길고도 길게 느껴졌던 일주일이 벌써 끝났다. 한국 입국 후 처음 시작되는 수업 주간이라는 점에서, 몰랐던 Javascript의 문법들을 많이 배웠다는 점에서,처음으로 페어와 긴 호흡으로 과제를 같이하기 시작했다는 점에서, 이번 한 주가 너무나도 큰 과제처럼 느껴졌는데 역시나 시간은 흐르게 되어있고 그 순간 순간을 대충 보내지 않았을 때 성장함을 느낀다. 머리 싸매고 고민하고, 스트레스 받으면서 힘들어하고 이런 과정들이 다 무언가를 배우면서 당연히 필요한 과정인 것 같다. 그러니 당시 이해가 안간다고! 진전이 없는 것 같다고! 좌절하지 말자. 내가 어려운 건 남들도 어렵고 머리 싸매고 고민할 때 드는 포기할까 하고 드는 생각이 바로 악마의 속삭임😈


4월 4일 (토)

오늘 한 일

  • testbuilder 문제 다시 접근해보고 advanced 풀어보기 (토)
  • testbuilder github pull 과제제출
  • koans 다시보기 (토)
  • koans advanced js풀어보기 (토) (map,reduce 결합 문제 제외)

4월 5일 (일)

오늘 한 일

  • 블로깅 한 것들 모두 출간!!
  • 알고리즘 문제 다시 풀기
  • 코플릿 6,7 다시 풀기 (코플릿6 16번까지)
  • 2주치 블로깅 다시 정독해보기

이해가 안갔던 부분

for( let i = 0; i<string.length; i++){
    if(string[0]==='-' && i === 1 )

(알고리즘 5번 문제) if 조건에 있는 i===1이 의미하는 것이 무엇일까??😲

[다음주] 매개변수 개념정리, 수업 전에 7:00~9:00 무조건 문제 풀기 (최소 2문제),Git 강의보기 (udemy)

profile
아름다운 상상을 실현하는 개발자입니다🌈🤍

0개의 댓글