2021-12-27 월요일 / 복습 즐겁게
오늘의 도전과 배움
아침에 일찍 일어나서 하드트레이닝 조기 출석! 요즘 계속 늦게 잤는데 생활패턴을 되돌릴려고 침대에서 정말 노력했다.. 쉬엄쉬엄했지만 조금이라도 더 공부하려고 노력했고, 오늘은 머리보다 마음이 더 채워진 하루인 것 같다.
학습하면서 궁금하거나 어려웠던 점
궁금한 건 항상 많은데 너무나도 많아서 매일 같이 주석을 달거나 메모장에 적힌채로 쌓여있다.. 뭐든 당일에 해결하는 게 최고인데 노력해야지. 그리고 토끼님을 만나서
내일 해보고 싶은 것들
질문 정리하고 todo mvc project 혼자 만들어보기! cypress 오늘 연습하려고 했는데 너무 피곤해서 못해가지고 내일 공식문서 보면서 test code도 스스로 짜보고 react 공식문서도 읽고, 오랫동안 이런저런 이유로 뇌가 과부하 상태라 계속 팀프로젝트를 미뤄왔는데 책임감을 가지고 차근차근 풀어봐야겠다 즐겁게.. 파이팅 ㅜㅜ🔥
.
오늘부터 다시 열심히 공부하는 습관을 들이려고 일찍 일어나서 하드트레이닝도 듣고 다른 계획도 다 수행하려 했지만,, 중간에 너무 졸려서 낮잠을 자버렸다. 공부를 안 하고 시간이 흐르면 불안해지고 기분이 별로 안 좋은데 눈이 소복이 쌓여서 정말 이뻤다:)
조금 공부하다 저녁먹고 7시에 토끼님이랑 코칭을 했는데 나는 열심히 하지도 않으면서 항상 자책하고 조급하고 불안해하면서 우울한 적이 많았는데 우선 자기 자신을 존중해라. 조급해하지 말라. 따뜻한 조언들을 많이 해주셔서 마음에 여유가 생기는 것 같다! 항상 내가 어떤 상태인지 파악하고 기록하면서 더 성숙해졌으면 좋겠다
-> 따로 정리하긴 좀 머리가 아프고,, 일단 간단하게 작동 방식? 원리? 공부하기!
대부분의 경우 구분하지 않고 사용해도 괜찮지만 interface는 좀 더 넓은 개념?!
interface의 기능을 type에서 사용할 수 있고 interface는 언제나 확장 가능하지만 type은 새로운 프로퍼티를 추가하기 위해서 재선언할 수 없다. 확장 시 interface는 extends
키워드를 사용하고 type은 &
를 사용! interface는 객체 타입을 생성하므로 유니온 타입, 튜플, 단순한 원시값 타입 선언의 경우 type을 이용.. 많이 찾아봤지만 글로만 봐서는 잘 모르겠고 다른 사람들의 코드를 보거나 연습하면서 익혀야 할 듯
commit은 기능별 작은 단위로 쪼개서 올리기!! 일단 내가 무엇을 할지 명확하게 정하고 만드는 것이 중요함. 개발환경을 설정하거나 데이터를 가져오거나 변경하거나 등등.. (hompage -> home page?!)
커밋 히스토리 조회하기 - https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%BB%A4%EB%B0%8B-%ED%9E%88%EC%8A%A4%ED%86%A0%EB%A6%AC-%EC%A1%B0%ED%9A%8C%ED%95%98%EA%B8%B0
// 일반 HTML
<div id='my-elem></div>
DOM을 직접적으로 건드려야 할 때
특정 input에 포커스 주기, 스크롤 박스 조작하기, Canvas 요소에 그림 그리기 등
ref를 만드는 가장 기본적인 방법은 콜백 함수를 사용하는 것. ref를 달고자 하는 요소에 ref 라는 콜백 함수를 props로 전달
또 다른 방법은 리액트에 내장되어 있는 createRef라는 함수를 사용하는 것
리액트에서는 컴포넌트에도 ref를 달 수 있음. 이 방법은 주로 컴포넌트 내부에 있는 DOM을 컴포넌트 외부에서 사용할 때 씀.
컴포넌트 내부에서 DOM에 직접 접근해야 할 때 ref를 사용하며, 먼저 ref를 사용하지 않고도 원하는 기능을 구현할 수 있는지 고려한 후 사용!
이 장에서는 클래스형 컴포넌트에 ref를 적용하는 실습을 하는데 나는 거의 함수형 컴포넌트로만 만들어봐서 간단하게 쭉 읽었다. 리액트를 약 2달 넘게 배우면서 ref를 배웠지만 써본 적이 없어서 함수형 컴포넌트에 ref를 사용하는 법과 어떤 경우에 적용하는지 찾아봐야겠다
내일..
Git을 정확하게 이해하고 잘 활용하기 위해선 크게 3가지의 작업환경 Workflow를 이해하는 것이 중요함!
//
echo hello world! > a.txt
// 현재 파일의 상태들 확인
git status
// a.txt를 staging area로 옮기기 - tracked file
git add a.txt
// 무슨 차이인지 잘 모르겠음!
git add . or git add *
// staging area -> working directory
git rm --cached <file>...
git rm --cached * // untracked
빌드 안에 부수적으로 생긴 파일들을 git에 포함하고 싶지 않을 때
echo filename > .gitignore
.gitignore
*.log
build/
build/...
https://git-scm.com/docs/git-status
// 간편하게
git status -s
// 상세하게
git status
https://git-scm.com/docs/git-diff
정확하게 어떤 파일의 내용이 수정되었는지 확인. working directory에 있는 변경사항들만 확인?
git diff
cat ?!
// staging area에 있는 것 확인
git diff --staged
// 스테이지 옵션과 동일
git diff --staged
근데 아직 터미널로 확인하는 게 익숙하지 않고 diff는 거의 사용해보지 않아서 명령어에 익숙해지면 diff도 사용해봐야지.