안녕하세요. 린캔버스 수정 수업 관련해서 질문이 있어서 문의 드립니다. const handleCanvasChange = async updatedCanvas => { try { await updateCanvas(id, updatedCanvas); setCanvas(updatedCanvas); } catch (err) { alert(err.message); } }; addNote, deleteNote, updateNote 등의 이벤트가 발생할 경우 setCanvas를 통해 useState에 선언된 canvas 값을 바꾸는데 그렇게 되면 CanvasDetail과 그 하위에 선언된 자식 컴포넌트들이 전부 리랜더링되는 것 같은데 강의에서는 그렇게 보이지 않아서 문의 드립니다. const [canvas, setCanvas] = useState(); canvas가 setCanvas 메서드를 통해서 상태가 변하면 리랜더링 되면서 하위 컴포넌트인 Note의 isEditing 값이 다시 false로 초기화되는데 강의에서는 여전히 true값이 남아있는 것 같습니다. 전체적인 코드를 동일하게 작성한 것 같은데 차이점이 발생하는 이유가 무엇일까요?
TodoServiceImpl.java 작성중에 중간에 소스가 갑자기 바뀌었는데요. 그리고 아래와 같이 작성하셔서 따라 작성하였는데요. PageResponseDTO<TodoDto> responseDTO = PageResponseDTO.<TodoDto>withAll() .dtoList(dtoList) .pageRequestDTO(pageRequestDTO) .totalCount(result.getTotalElements()) .build(); 뭘 놓친건지... 위와 같이 에러 나서 진행이 안돼요. 카페 들어가서 해당 강의 소스도 찾아봤는데 수업하신 내용이랑 조금 다르게 되어있긴 하지만 사용법에는 큰 차이는 없어 보이거든요 ㅠ lombok도 많이 안써봐서... 잘 모르겠어요..
강의 중 스토리북이 테스트를 위한 라이브러리라고 말씀하신 부분이 있는데요, 스토리북 테스트 라이브러리가 yarn pnp와 의존성 간의 충돌이 있는 것으로 보입니다. 혹시 yarn pnp 환경에서 스토리북으로 컴포넌트에 대한 테스트를 진행하고 싶으면 어떻게 진행하면 좋을까요?
안녕하세요 getServerSideProps 함수로 반환된 props 타입을 정의하는데 있어서 이해가 잘 가지 않아 질문드립니다. props의 타입을 지정할 때, next js의 내장타입을 사용하면서 해당 타입의 제네릭으로 InferGetServerSidePropsType<typeof getServerSideProps> 이렇게 작성하는데, <typeof getServerSideProps> 의 값은 function인데 어떻게 props 내부의 값을 전달할 파악할 수 있는지 궁금합니다. 제가 제네릭에 대한 이해도가 낮아서 그런거 같기도 한데,,, 답변 주시면 감사드리겠습니다.
선생님, 안녕하세요. Supabase를 사용하여 제 서비스에 사용자 인증 기능을 구현하려고 합니다. 제가 이해한 내용이 맞는지 확인 부탁드려요! (1)인증 방식 설정: Supabase 프로젝트 대시보드의 Authentication 섹션 내 Providers 탭으로 이동하고, 여기서 제 서비스 사용자들이 이용할 로그인 방식(예: 이메일/비밀번호, Google/Kakao 등의 소셜 로그인, Magic Link 등)을 선택하고 필요한 설정을 완료하여 활성화 한다. (2) 애플리케이션 프론트엔드 구현: 제 웹사이트코드(나 앱의 프론트엔드 예: JavaScript, React, Flutter 등)에서 Supabase 클라이언트 라이브러리를 가져와 사용하고, 사용자들이 회원가입, 로그인, 로그아웃 등을 할 수 있는 UI(예: 로그인 페이지, 회원가입 폼)를 만들고, 이 UI와 Supabase 클라이언트 라이브러리의 함수들 연동하여 실제 인증 기능을 구현한다. (3) 사용자 데이터 관리: 사용자가 위 프론트엔드를 통해 회원가입하면, 그 정보는 Supabase 내의 auth.users라는 전용 테이블에 자동으로 저장되는 것이 맞나요? 결론적으로, 제 서비스의 최종 사용자들은 제가 프론트엔드에 구현한 로그인/회원가입 시스템과 Supabase Auth를 통해 별도의 사용자 계정을 갖고 서비스를 이용하게 되는 구조라고 이해하면 될까요? 혹시 제가 잘못 이해하고 있거나, 추가적으로 고려해야 할 중요한 사항이 있다면 알려주시면 감사하겠습니다.
강의 잘 듣고 있습니다. 질문이 있는데요, 일반적인 css 꾸미기 에서 width와 height의 값 은 개발자가 아닌 웹디자이너가 항상 알려주기도 하나요 ? 즉 만약 vs code에서 파일이 index.html이 있고 index.css가 있다고 한다면, index.html에서 작성한 내용에 index.css에서 꾸며줄 시에 width 값과 height 값이 몇 픽셀인지, 혹은 몇 퍼센트인지 정할 때 잘 모르겠다면 어떻게 해야 하나요? 개발자가 width 값과 height 값을 잘 모른다면 감으로 크기를 늘렸다가 줄였다가 반복 하면서 적당한 width값과 height값을 찾아나가는 건가요? 피그마에서는 보통 디자인이 다 된 결과 값을 보고 vs code에 코딩한다면 상세 정보를 보고 width크기,height크기,폰트 크기, 폰트 weight 등등 다양하게 그대로 css에 적어주기만 하면 되는데요, 그랩 선생님 강의에서는 피그마로 볼 수 있게 추가 안내가 없어서, 스스로 강의 들은 이후 강의 없이 복습 할 시에(그랩마켓 웹화면 구현하기 1~3) 혹시나 각각 css로 꾸밀 때 width, height은 외우거나 혹은 보고 css에 적용하는 방식의 공부법 밖에 없는걸까요? 아니면 실무에서는 웹디자이너가 이미지등등의 경우에 width,height,기타 등등을 알려주기 에 그대로 css에 코딩해주면 되는 것인지요? 그랩님, 답변 부탁드립니다.
npm ls react npm ls react-native npm ls expo 버전을 알려주시면 질문자분과 동일한 환경에서 답변 드릴 수 있습니다. ERROR Warning: Error: The package '@react-native-kakao/user' doesn't seem to be linked. Make sure: - You rebuilt the app after installing the package - You are not using Expo Go
안녕하세요. 최초 10분이 지난 후 refreshToken 정보를 이용하여, new accessToken 을 발급받는 것을 적용한 이후에는 오랜 시간이 지나도 다시 new accessToken 발급을 하지 않는 현상이 있더군요. 의문을 가지다가 Redis 에 연동하고, ttl JWT:ACCESS: user8@aaa.com 로 accessToken의 남은 시간을 체크해보니 문제가 있다는 걸 확인했습니다. chatGPT 로 점검해서 아래와 같은 코드로 수정한 이후 정상 동작하는 거 같습니다. public static String generateToken(Map<String, Object> valueMap, int min) { SecretKey key = null; try { key = Keys.hmacShaKeyFor(JWTUtil.key.getBytes("UTF-8")); } catch (Exception e) { throw new RuntimeException(e.getMessage()); } // 1. claims 복사 및 exp/iat 제거 Map<String, Object> claims = new HashMap<>(valueMap); claims.remove("exp"); claims.remove("iat"); // 2. 발급시간/만료시간 생성 Date now = Date.from(ZonedDateTime.now().toInstant()); Date exp = Date.from(ZonedDateTime.now().plusMinutes(min).toInstant()); // 3. JWT 생성 return Jwts.builder().header() .add("typ", "JWT") .add("alg", "HS256") .and() .issuedAt(now) .expiration(exp) .claims(claims) .signWith(key) .compact(); }
graphql 포트폴리오용 주소는 접속이 되지만 graphql practice 주소와 rest-api practice 주소가 접속이 안되는 것 같습니다. http://practice.codebootcamp.co.kr/graphql http://practice.codebootcamp.co.kr/api-docs 해당 주소로 접속하였을 때 사이트에 연결할 수 없다고 나옵니다.