TIL_20230523

·2023년 5월 23일

TIL # WIL

목록 보기
7/65

내일배움캠프 7일차, TIL 특강과 자바스크립트 문법 종합반 강의 듣기

第7天

원래는 js 문법 종합반 1주차 내용정리 마저 다하고 숙제 다시 풀어보고 2주차 진행하려했는데 중간중간 막히는 부분들이 너무 많아 2주차를 많이 듣지 못했다.
그래도 시간이 촉박한 건 아니니까 뭐 ...

아무튼 그리고 오전 9시에는 TIL 특강을 들었는데 그동안 TIL에 대해 가졌던 궁금증들이 조금은 가시는 느낌 ? 그리고 오직 꾸준히 써야겠다는 생각 뿐 ㅋㅎ


'TIL' 특강

사실 내배캠 하면서 처음 TIL에 대해 알게 되었고 지난 6일동안 열심히는 썼으나 꾸준하진 못했다. 내 성격상 약간 완벽한 거 좋아하는데 TIL 양식이나 서식도 잘 모르겠고 어떻게 쓰는지 왜 쓰는지도 잘 이해가 안돼서 소홀했던 거 같다.

그래서 그런가 한 2번 정도 전체 TIL를 엎었다 썼다 아주 뻘 짓을 많이 함. 공부할 시간도 없는데 !!!!!!!!!!!!! 그래도 대충 어느 식으로 써야할지 감이 올락말락 하고 있었는데 마침 오늘 TIL 특강을 듣게 되었다.

내 생각보다 TIL은 진짜 너무 중요한 자료이자 수단이었다.
우선 특강 내용을 정리해보자면, 일단 궁극적인 목표인 취업을 기준으로 볼 때, TIL의 존재는 꽤 중요했다.

왜냐하면, TIL을 통해 나의 앎을 증명하는 수단이자, 나의 앎이 오래가게끔 도와주는 수단이기 때문이다. 이로 인해 내가 회사에 필요한 존재인지 아닌지가 잘 드러나기 때문이고 또한 내가 열심히 쓴 TIL은 면접의 답안지가 될 수 있어 면접 전날 정주행하면 좋다고 한다.

그렇다면 TIL에는 무슨 내용이 들어가 있으면 좋을까?
TIL을 통해 성장, 성실함, 흡수력을 보여줘야 한다고 한다.

  1. 어떤 문제가 있었는지
  2. 내가 시도해본 것들이 뭔지
  3. 어떻게 해결했는지
  4. 뭘 새롭게 알았는지

이렇게 문-시-해-알이 적절하게 들어가있으면 좋다고 한다. 특히 시도해본 것과 새롭게 알게된 것들을 위주로 쓰면 더 좋다고 한다.
(나는 문제-해결이 더 중요할 줄 알았는데 시도-알게된 것이 더 중요하다고하셔서 깜놀, 그리고 빠른 수긍)

반대로 필요하지 않은 내용은 아래 4가지 정도가 있다.

  1. 예쁘게 꾸민 글
  2. 통으로 붙인 코드들 (심지어 주석도 없다면 진짜 쓸.없.T)
  3. 그리고 감성적인 글 (이건 일기장에 쓰자 ^^)
  4. 강의노트 복붙 혹은 요약 (나의 지식이 아니기 때문에)

추가로 WIL은 TIL의 회고 느낌으로 이번주 알게 된 점에 대해 총정리하는 식으로 적으면 될 거 같다. 거기에 다음주 목표 세우고 이번주 목표 달성 여부까지 적어주면 좋은 WIL이 될 거 같다. 이번주 WIL은 이렇게 써봐야지 🧑‍🎤👩‍🎤

아무튼 한마디로 정리하자면, 꾸준하게 직접 쓴 좋은 TIL은 개발자 취업에 무조건 도움인 것이다.


JavaScript 문법 종합반 강의 1주차

참고 링크

오늘의 문제는 1주차 숙제 2문제 중 1문제는 어찌저찌 풀고 다른 1문제는 풀지 못했다는 것이다.
어제도 숙제 해결하려고 강의 복습 겸 정리하다가 시간 다갔는데 오늘 마저 다 정리하고 다시 풀려고 하니 그래도 잘 모르겠더라. 그래도 어제랑은 달리 풀긴 풀었는데 해설 영상과 비교하니 내 코드는 정말 개발자스럽지 않달까 ? 스킬도 없고 컴퓨터적 사고도 없이 푼 느낌.
일단 가장 큰 문제의 원인은 '문제 분석을 못한다는 것' 그로 인해 '주석으로 로직 구상'도 연관되어 못한다는 것이다.

많이 풀어보고, 주석으로 로직 구상하는 연습을 많이 필요할 것 같다.
사실 못 풀었던 문제 답안 보는데 생각보다 간단한 문제여서 더 당황; 근데 문제를 못 푼 이유가 주어진 문제를 분석하지 못한 점이 크다. 아니 이해를 못했달까 ?

그리고 강의 자료에 기본 코드 있고 코드 테스트해볼 수 있는 사이트있었는데 몰랐었다....

아무튼 풀었던 문제는 대문자 상관없이 p와 y의 개수가 동일하면 true, 다르면 false를 반환하는 문제인데 코드를 가져와보자면

 let pNum = 0; //p 개수 세주는 변수
 let yNum = 0; //y 개수 세주는 변수

 for (let i = 0; i < str.length; i++) {
   if (str[i] === "p" || str[i] === "P") { //대소문자 상관없이
     pNum++; //p가 있으면 ++됨   }
   if (str[i] === "y" || str[i] === "Y") { //대소문자 상관없이
     yNum++; //y가 있으면 ++됨
   }
 }

 function solution() {
   if (pNum === yNum) {
     return true;
   } else if (pNum === 0 && yNum === 0) { // 'p', 'y' 모두 하나도 없는 경우는 항상 True
     return true;
   } else {
     return false;
   }
 }

이건 내가 푼 코드이다.

var answer = true;
  var num = 0;

  for (let i = 0; i < s.length; i++) {
    if (s[i] === "p" || s[i] === "P") {
      num++;
    }
    if (s[i] === "y" || s[i] === "Y") {
      num--;
    }
  }

  if (num === 0) { //만약 p, y가 들어있지 않아도 ++ 혹은 --되지 않아 0이기 때문에 하나도 들어있지 않은 경우도 성립
    answer == true;
  } else {
    answer == false;
  }

이건 해설 영상 코드에 내 꺼 조금 더한 것
이렇게 깔끔할 수가 있다니 !

num 하나로 ++, -- 해서 0이면 같은 개수라는 것을 생각하는게 키포인트 같다.

또한 여기서 하나 배운 문법

toUpperCase() // 대문자로 통일해줌

이걸 사용하면 ||연산자를 사용할 필요가 없어진다 !!!!!

못 풀었던 다른 1문제는 강의 정리한 글에 올려야겠다.

이처럼 막상 구현하려고 하면 간단할 수도 있으니 문제를 좀 더 능동적으로 읽는 사고가 필요할 것 같다. 그래야 로직 구상에도 도움이 될테니 말이다.
그리고 다음 주차 문제부터는 문제 풀 때까지 해설 영상 안 봐야할 거 같다. 오늘은 너무 답답해서 해설 영상을 먼저 봤는데 확실히 죽이되든 밥이되든 문제를 풀어봐야 기억에 더 오래남기 때문이다.

0개의 댓글