게시글
질문&답변
2024.05.15
css 관련 질문드립니다.
안녕하세요 이정환입니다. flex 속성과 text-align 속성 모두 하위 요소를 원하는 위치에 정렬할 수 있지만 둘은 엄밀히 다른 상황에 사용됩니다. flex 속성은 블록 요소(div, table, section ...)를 정렬하는데에 사용됩니다. text-align 속성은 인라인 요소(span, p, img ...)를 정렬하는데에 사용됩니다. 따라서 정렬하시려는 요소가 블록 요소라면 flex를 인라인 요소라면 text-align을 사용하시는게 좋을 것 같습니다 😃
- 0
- 2
- 43
질문&답변
2024.05.15
태그 옵션 { } 사용
안녕하세요 이정환입니다. Props로 문자열을 전달하는 상황에서는 굳이 중괄호를 안 붙여주셔도 됩니다. TMI. 저는 습관이 되어서 문자열 Props에도 중괄호를 붙이곤 합니다.
- 0
- 1
- 30
질문&답변
2024.05.14
마지막 배포하기에서 npm install -g vercel을 한 뒤에도 인식을 못하는 분들 이거 확인해보세요!
안녕하세요 이정환입니다. 아이고 이런 이슈가 있었군요 ... 😢 제보해주셔서 진심으로 감사드립니다. 다른 분들께는 이런 일이 발생하지 않도록 강의 노트에 작성해두었습니다! 다시한번 제보 정말 감사합니다.
- 0
- 1
- 38
질문&답변
2024.05.13
dispatch가 null인 경우 에러를 발생시키도록 하는 패턴을 실무에서도 사용할 수 있나요?
안녕하세요 이정환입니다. 우선 Context로 부터 불러온 dispatch가 null인 경우는 아래 2가지 중 하나일 것으로 예상됩니다. Provider에게 데이터를 공급하지 않았을 때 Provider의 영역이 아닌 외부에서 데이터를 사용하려고 할 때 위 두 상황 모두 전반적인 App을 셧다운 시킬 수 있을 만큼 매우 위험한 상황입니다. 따라서 useTodoDispatch Hook에서도 throw로 예외를 던져 TodoDispatchContext에서 오류가 발생했다고 확실히 알려주는게 좋다고 생각합니다. 또는 Context의 타입을 nullable하지 않게 유지하기 위해 초기값을 만들어 두는것도 좋은 방법이 될 수 있을 것 같습니다. 그러나 이 방법은 문제가 생겼을때 디버깅을 힘들게 만들 가능성이 있습니다. 내키지 않으신다면 Zod 등의 런타임 타입체크 툴을 이용하시는것도 방법이 될 수 있을 것 같습니다. 감사합니다.
- 0
- 1
- 36
질문&답변
2024.05.11
코드보관소 코드랑 강의내용이랑 씽크가 안되있음
모두 수정 완료했습니다. section10, 11의 모든 챕터 밀림 현상을 해결하였습니다. README.md 파일의 section9 아래의 챕터 링크를 모두 수정하였습니다. 제보해주셔서 정말 감사합니다. 덕분에 정확히 문제 파악하고 수정할 수 있었습니다. 다시한번 불편드려 죄송합니다. https://github.com/winterlood/onebite-react-v2 (수정 내역은 Commit History에서 확인하실 수 있습니다)
- 1
- 4
- 107
질문&답변
2024.05.11
코드보관소 코드랑 강의내용이랑 씽크가 안되있음
확인하였습니다! 아이고 .. 정말 정말 죄송합니다 이런 실수를 ... 😢 😢 😢 10섹션과 11섹션의 3개의 챕터가 하나씩 밀려있었네요 .... 현재 수정 작업중입니다. 금일내로 모두 수정하여 다시 답변 달아드리겠습니다!
- 1
- 4
- 107
질문&답변
2024.05.11
코드보관소 코드랑 강의내용이랑 씽크가 안되있음
안녕하세요 이정환입니다. 우선 불편함드려 죄송합니다. 10강과 11강이라면 몇 섹션 몇 챕터의 코드를 말씀하시는걸까요? 알려주시면 바로 확인해보겠습니다 ! 추가로 마지막 강의 "12.19 배포하기"는 코드를 작성하지 않습니다. 따라서 코드 보관소에는 별도로 저장되어 있지 않습니다. (12.18 코드와 동일합니다) 추가로 이론 내용만 존재하거나 코드를 직접 작성하지 않는 강의는 코드보관소에 코드가 보관되어 있지 않습니다.
- 1
- 4
- 107
질문&답변
2024.05.10
제네릭 타입 변수 네이밍
안녕하세요 이정환입니다. 타입 변수는 관례상 T, U, V 그리고 infer에 적용되는 타입 변수는 R로 명명하는게 일반적입니다. 이 관례는 공식문서에 나와있어 강의에도 그렇게 채택하였습니다. infer를 R로 정의하는 이유는 정확히는 모르겠지만 ... infer의 마지막 글자를 따 R로 정의하지 않았을까 싶어요 그러나 타입 변수는 매개변수처럼 얼마든지 질문자님이 원하시는대로 정의하실 수 있습니다. 따라서 문맥에 맞게 가독성을 높이는 방향으로 자유롭게 명명하셔도 무방합니다.
- 0
- 1
- 42
질문&답변
2024.05.10
section7 - 타입 변수 응용하기
안녕하세요 이정환입니다. 우선 빨간색으로 칠해진 저 부분은 함수의 반환값 타입을 명시하는 부분입니다. 그러므로 swap 함수의 반환값은 (T|U)[] 이고 returnFirstValue의 반환값 타입은 T가 되겠군요 (T에 대해 궁금하신거라면 T는 "타입 변수"라고 부릅니다) 함수 반환값의 타입은 변수의 타입처럼 기본적으로는 자동 추론됩니다. 그러나 몇몇 상황에서 추론이 잘못 되거나 추론되지 않는 상황(any, unknown, never)이 발생할 수 있으므로 대부분 직접 명시하는게 좀 더 일반적입니다.
- 0
- 1
- 37
질문&답변
2024.05.06
12.13) 마지막 부분, body의 display 속성
안녕하세요 이정환입니다. flex-container는 기본적으로 width와 height를 고정적으로 설정하지 않을 경우 모든 item을 포함할 수 있도록 유동적으로 그 크기가 늘어나게 됩니다. 따라서 body 태그에 flex 속성을 적용하게 될 경우 세로로 늘어나는 아이템들도 다 포함하기 위해 body 태그 자체의 크기가 늘어나게됩니다.
- 0
- 1
- 58