안녕하세요. 인제 부트캠프를 하고 거의 끝나가면서 부족함을 느껴서 강의를 신청하게 되었는데요. 강의자료를 다운로드 받아서 설치해보니 아마 완성본(?) 인것 같더라구요. 그래서 route 설정할때 폴더 트리를 보고 내용도 지우고 진행하려고 합니다. 혹시 이렇게해도 앞으로 강의 나가는데 문제가 없을까해서 문의드립니다. 예를 들면 현재 이런 상태입니다.
export const randomize = ({ min = 0, max = 0, step = 1, }: { min: number; max: number; step: number; }) => { if (max < min || max - min < step) throw Error('wrong arguments'); const num = Math.random() * (max - min) + min; return Math.max(Math.floor(num / step) * step, min); }; 1. src/service/util.ts 파일에서 randomize 함수를 보면 위와 같습니다. num 값을 구하는 표현식이 min 이상 max 이하가 되려면 다음과 같이 바뀌어야 할 것 같습니다. const num = Math.floor(Math.random() * (max - min + 1)) + min; -> const num = Math.floor(Math.random() * (max - min + 1) + min) export type Datum = { index: number; id: string; title: string; description: string; }; export type FetchState = 'loading' | 'fetched' | 'idle' | 'error'; export type State<T> = { data: T[][]; state: 'loading' | 'fetched' | 'idle' | 'error'; }; src/components/07_infiniteScroll/vanilla/infiniteFetcher.ts 에서 FetchState 타입을 활용하여 리팩토링 할 수 있을 것 같습니다. export type State<T> = { data: T[][]; state: FetchState; };
TextBox2의 경우 제목이 #2. React uncontrolled. canvas 라고 되어 있는데 코드를 보면 단순히 기존 onChange -> onInput으로만 바뀌어 있습니다. 따라서 ref를 사용한 예제로 바뀌면 좋을 것 같습니다. TextBox3 제목에 (자체 제작 방법) 이런 문구도 소괄호로 같이 표시되어 있으면 좋을 것 같습니다. 또한 사소하지한 onChange와 onInput에 대한 약간의 차이 같은 설명이 주석이나 자막으로 처리되어 있으면 더욱 좋을 것 같습니다. TextBox5에 스터디를 하신 다른 분이 useImperativeHandle 훅을 사용한 것을 만들어주신 것 같은데 혹시 재남님은 useImperativeHandle을 실제 실무에서 활용하신 사례가 있으신지 궁금합니다. p.s) 매일 오전에 하나씩 보고 있는데 재밌게 보고 있습니다. 좋은 강의 감사드립니다~
보통 window.addEventListener 같은 것을 사용할 때 이벤트 파라미터에 대해서는 Event 타입을 사용하시고, 버튼 같은 클릭 이벤트 리스너의 이벤트 파라미터에 대해서는 SyntheticEvent 타입을 사용하시는 것 같습니다. 보통 클릭이라고 하면 MouseEvent<HTMLButtonElement> 또는 MouseEventHandler로 함수의 타입을 줄 수 있을 것 같은데 SyntheticEvent로 지정하시는 이유가 있으실까요. 대략적으로 SyntheticEvent가 여러 브라우저 등 호환성을 위해 React에서 자체적인 내장 인터페이스로 추상적으로 Vanilla JS의 Event 타입을 확장한 것으로 인지는 하고 있습니다.
gnb 를 이렇게 수정해 봤어여 https://github.com/hyunsokstar/challenge_gnb 부모 메뉴일 경우 토글 가능하도록 react 상태와 연동 https://github.com/hyunsokstar/challenge_gnb/blob/main/src/app/Component/ParentGnbItem.tsx zustand 로 현재 active 메뉴 관리 https://github.com/hyunsokstar/challenge_gnb/blob/main/src/app/Component/ChildGnbItem.tsx https://github.com/hyunsokstar/challenge_gnb/blob/main/src/app/%5B...item%5D/stores/isActiveLinkStore.ts 결과: 이렇게 수정한 방식도 괜찮을까여? 그리고 강의에서 src\app\[...item]\page.tsx 에서 url path를 얻어와서 Next Js 의 파일 기반 페이지 라우팅을 통째로 custom 하는 방식을 사용하는데 이런 방식은 Next Js에서 gnb 를 구현 하는 이상적 혹은 보편적인 방법 이라서인지 아니면 강의를 위한 제한적 구현인지 궁금합니다
classnames/bind 를 사용하지 않고, classnames를 사용할 때, typescript-plugin-css-modules 라는 것을 사용하면 위와 같이 현재 scss파일 안에 있는 클래스들이 보여지게 되는데요! classnames/bind 를 통해 cx를 만들어 사용할 때도 클래스들이 자동완성 됐으면 좋겠다고 생각이 들었습니다. 혹시 이것에 대한 방법이 있을까요?
애니메이션 관련해서 깊이 고민해보지 못한 부분(디테일)들을 발견할 수 있어서 의미있는 강의 였습니다. 강의에서 "item3" classname 을 적용하는 과정 중 얻은 인사이트는 컨텐츠 사이즈에 따라 height가 변경되는 애니메이션을 적용할 경우, 닫히는 아코디언 요소와 열리는 아코디언 요소가 이상하게 동작한다는 내용을 다루셨는데 저도 이상하는 느낌은 들었지만 정확한 원인을 모르겠네요. transition-duration:0.3s 은 같기 때문에 같이 닫히는게 동시에 닫히고 있는게 맞는데 왜 이상하게 느껴질까요? "ease" 가 그런 느낌을 주는 원인이 아닐까하고 그냥 넘어갈까 싶은데 혹시나 모르는 부분이 있을까 질문 남겨봅니다. :)
안녕하세요! 알림 보고 바로 수강신청했습니다 ㅎㅎ 그런데 강의 자료를 열어보니 06_lazyLoading/4_r 이 쓰여지고는 있는데 폴더가 없네요... const LazyImage = dynamic(() => import('@/components/06_lazyLoading/4_r/lazyImage'), { ssr: false }) 실행도 못해보고 터져버린 앱... ㅠㅠ
안녕하세요, 포트폴리오 작성과 관련하여 질문이 있습니다. 강의 전체적으로 보여주신 테스트케이스 이외에, 초반부 말씀하셨던 신규 제품(서비스) 개발의 경우에도 알려주시는 방식 또는 순서에 따라 하나 하나 진행해가면 될까요? 테스트케이스와 신규 개발 두 가지 모두를 포트폴리오에 넣고 싶을 경우에도 그 작업 방식에는 큰 차이가 없을지 궁금합니다! 감사합니다 :)
안녕하세요. 프로젝트 탭에서 자바아이콘이 모두 커피잔(?)으로 동일하게 나오고 있어서 문의 드립니다. 구글에 아무리 뒤져봐도 저같은 경우는 없는 것같아서 문의 드려요. 같은 자바 파일이여도 Class파일은 'C' 아이콘, Interface파일은 'I'아이콘 어노테이션은 '@'아이콘 등등 으로 나오는게 정상인 것 같은데 확인 부탁드려요... ▶
안녕하세요! 혹시 UI 를 만드는경우 디자이너는 피그마나 포토샵 등등으로 이렇게해주세요 하고 줄것같은데 이런경우 피그마나 포토샵의 경우 왼쪽에서 몇px 이 떨어졌고 해당오브젝트는 40px * 40px 이고 이런식으로 값이있을것같은데 유니티의 경우는 그런사항을 비율로만 맞추나요? (물론 오브젝트는 px 로 맞출수있을거 라 생각합니다!) 디자이너가 유니티개발자에게 UI 디자인을 준다 디자이너는 자신의 레이아웃대로 만들어주기를 원한다 개발자는 레이아웃대로 비율로는 만들수 있지만 정확히 x,y 의값을 px 로 할수없다?
안녕하세요, 저는 중소기업에서 개발을 담당하는 인력입니다. 저는 모니터링 시스템을 웹으로 구현하고 싶습니다. 관리하는 장비들의 데이터를 통신으로 가져와 DB에 저장하고, DB의 데이터를 Ajax등을 통하여 가져올 수 있습니다. 이제 프론트엔드를 구성하여 장비의 데이터를 그래프화 하고, 데이터 로그를 시간대별로 출력하고 싶습니다. 그러다 인프런에 가입하게 되었고, 검색을 해보았지만 너무 많은 정보들이 저를 혼란스럽게 하네요. HTML, CSS, JavaScript는 어느정도 할 수 있습니다. 정적인 출력이 아닌, 그래프나 데이터에 맞게 변하는 이미지들을 구현하고 싶습니다. 또한 날짜/시간을 지정하면 DB에서 해당 로그를 시간순으로 출력하고 싶습니다. 어떤 것들을 공부하면 좋을까요? 여러 방향이 있겠지만, 한가지 방향을 제시 해주신다면 정말 감사하겠습니다. ( ex) 리액트→타입스크립트 / 뷰js →워드프레스) 일단 그 방향으로 전진해보고, 이 영역에 대해 느끼고 깨달은 다음 저한테 정말 필요한 것이 무엇인지 고민해보고 싶습니다.