오늘 공부한 내용
- 항해99 Pre-Onboarding 2일차
- javascript 기본문법 (if 조건문,삼항연산자,switch 조건문)에 대해 배웠다. 어제는 착오가 있어서 노션의 다른 내용을 공부했었지만, 오늘은 예정대로 자바스크립트 책 내용(챕터3)을 살펴보았다.
- date-fns, javascript 날짜 관련 라이브러리를 살펴보고 사용해보는 시간을 가졌다. 혹시나 나중에 사용하게 될 수도 있지 않을까 싶어서 date-fns 공홈을 참고하여 공부하면서 적용해 보았다. 관련 비슷한 라이브러리인 moment와 dayjs도 역시 해보았지만 moment경우에는 너무 무겁고, 업데이트를 하지 않을 예정이기때문에 사용하지 않을 예정이고, dayjs는 엄청 가벼운 라이브러리이지만 세분화? 트리 쉐이킹?이 되어 있지 않기도하고 date-fns가 훨씬 사용하기에는 좋을 것 같았다.
어려웠던 내용
- javascript 기본 문법이라 어려웠던 내용은 없었다!
궁금한 내용 / 부족한 내용
- if문, 삼항연산자는 평소에도 자주 쓰이는 문법들이라 익숙해서 괜찮았지만, switch 조건문은 배워놓고 사용하지 않아 이번기회에 한번 더 살펴보게 되었다.
- 코드를 작성할 떄, 자주 사용되는 내용들은 최대한 중복되지 않게 코드를 작성하는게 가장 중요한데 아직은 그러한 점이 많이 부족하다고 느껴졌다.
비효율적인 코드
// 사용자에게 태어난 연도를 입력받아 출력하는 프로그램을 생각해보자.
const year = Number(prompt("태어난 해를 입력해주세요."));
const a = year % 12;
let result;
if(a ===0) result = '원숭이'
if(a ===1) result = '닭'
if(a ===2) result = '개'
if(a ===3) result = '돼지'
...
if(a ===12) result = "양"
alert(`${year}년에 태어났다면 ${result} 띠입니다.`);
위의 코드는 굉장히 중복되는 내용들이 사용된 코드이다.
기본적으로 result 값을 나타내기 위해서 year % 12 의 값을 담은 변수 a가 중복 사용되었고, result 변수 역시 중복 사용되어 코드 전체가 난잡하게 보이게 된 것.
항상 코드를 작성 할때 중복되는 부분들을 최대한 한번에 도출해 내려고 생각해보고 연습해보는 것이 중요한 것 같다.
효율적인 코드
const year = Number(prompt("태어난 해를 입력해주세요."));
const arr = "원숭이,닭,개,돼지,쥐,소,호랑이,토끼,용,뱀,말,양".split(",");
alert(`${year}년에 태어났다면 ${arr[year % 12]} 띠입니다.`);
느낀점
확실히 책을 보면서 하나 하나씩 들여다 보았을 때, 내가 알고 있는 지식들을 활용해보게 되면서 어떠한 점이 서투르거나 부족한 영역이 많구나라는 것을 느끼게 되는 것 같다.
기본기가 가장 중요하다는 것을 한번 더 생각하게 된 부분이었다.
부족한 부분들을 채워나감에 있어서 조급한 마음을 가지지 않고 차분히 생각하는 것이 어쩌면 한걸음 더 나아갈 수 있는 발판이 되지 않을까? 라는 생각도 들었다
앞으로만 나아가려고 하지말고 지금 현재를 다시 되돌아 보는 시간도 필요하다고 생각한다. pre-onboarding기간이 나에게 있어서 그런 시간인 것 같았고 문뜩 지금 이러한 기회나 시간들이 나에게는 행운이지 않을까라는 생각을 해본다.
항상 발전한다는 사실은 쉬운 것이 아니라는 것을 알고 있고! 때론 내 스스로가 방황 할 때도 있겠지만!
힘차게 나아가 보도록 하자! 따잇~!
내일 할 일
- 내일 역시 아침 8시 반 기상! 밥은 꼭 챙겨먹기!
- styled-components 개념 마무리 하기
- 노마드코더 javascript 관련 클론코딩 해보기
'TIL & WIL' 카테고리의 다른 글
221110_TIL (0) | 2022.11.10 |
---|---|
221109_TIL (0) | 2022.11.09 |
221107_TIL (2) | 2022.11.07 |
ui 수정 및 페이지 배치 변경 (0) | 2022.10.27 |
회원가입 - 버튼 클릭 중복 제거 (0) | 2022.10.26 |