inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

앱권한설정 화면이후 api작동 (아이폰)

미해결

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

안녕하세요. 새로 올려주신 강의를 흥미롭게 듣고 있습니다. 저는 아이폰을 이용해서 테스트 중인데, 안드로이드와는 좀 다른 움직임이 있어서 질의드립니다. 권한 설정화면 Link되면 저희가 구성한 하이브리드 앱이 웹뷰로 더 이상 연결되지 않는것처럼 보입니다. 이 부분 어떻게 해결할수 있을까요? 그리고 권한 설정화면으로 이동하여 권한을 수정한 후 제거하고 ( 해당 화면은 권한을 설정한다고 해서 사라지거나 하지 않습니다 ) expo로 돌아오면 active가 들어와야 하는데 그렇지 않습니다. 코드에 setInterval을 줬으니 뭔가 주기적으로 수행하지 않을까 싶어서 로그를 줘봤으나 전혀 구동하지 않았습니다. 여러가지 테스트를 해보았는데, 앱권한 설정페이지로 이동하는 쿼리인 openDeviceSystemForSettingSet을 호출하면 앱의 권한 화면이 Link되고, 그러면서 기존의 하이브리드 앱이 웹뷰로 연결되지 않는것 같습니다. 제 코드가 잘못되었나 싶어서 setInterval을 없애고 fetch의 순서를 바꿔봤습니다. openDeviceSystemForSettingSet을 맨뒤에 배치해봤을때는 모든 결과가 잘 들어왔습니다. 그러나 6-2와 같이 openDeviceSystemForSettingSet를 먼저 호출하고 이후에 fetchDeviceLocationforPermissionSet이나 fetchDeviceSystemForAppStateSet의 fetch를 수행하려 하면 작동하지 않습니다. 인공지능에게 문의하니 상태 구독을 하라고 하여 아래와 같이 구독을 mobile의 index.tsx에 추가하였습니다. React.useEffect(() => { const subscription = AppState.addEventListener("change", (nextAppState) => { if (nextAppState === "active") { console.log("✅ 앱이 다시 활성화됨. WebView에 메시지 전송!"); webviewRef.current?.postMessage("APP_ACTIVE"); } }); 그리고 page.tsx에는 app이 active가 되면 이를 받아올수 있도록 함수를 구성하고 그 안에서 fetchDeviceLocationforPermissionSet이나 fetchDeviceSystemForAppStateSet를 받아오도록 변경했습니다. useEffect(() => { const handleMessage = (event) => { if (event.data === "APP_ACTIVE") { console.log( "🔄 WebView에서 APP_ACTIVE 메시지 수신! fetchApp 다시 실행" ); checkPermissions(); } }; window.addEventListener("message", handleMessage); return () => { window.removeEventListener("message", handleMessage); }; }, []); const checkPermissions = async () => { try { console.log("📡 위치 권한 상태 확인 요청"); const result = await fetchApp({ query: "fetchDeviceLocationforPermissionSet", }); const status = result.data.fetchDeviceLocationforPermissionSet.status; webviewlog(` 위치 권한 상태: ${status}`); const appStateResult = await fetchApp({ query: "fetchDeviceSystemForAppStateSet", }); const isForeground = appStateResult.data.fetchDeviceSystemForAppStateSet.isForeground; webviewlog(` 앱 활성화 상태: ${isForeground}`); } catch (error) { console.error(" fetch 요청 실패:", error); } }; 이렇게 하니 앱이 활성화되면 이벤트 리스너를 통해 결과가 전달되어져 오기는 합니다. 강의에서 해주셨던 setInterval설정이 훨씬 간편하지라 아이폰에서 구성하려면 어떻게 해야할지 어떤 이유로 이렇게 되는지 궁금하여 질의드립니다. 2. 그리고, 원두님이 안드로이드를 통해 보여주신 것과 같이 허용함을 다시 묻지 않는데 이런 설정을 별도로 추가해야 하는걸까요? 제가 뭔가 누락한 건지 모르겠습니다. 원두님은 관련코드를 구성하지 않으셔도 사용에 대한 질의가 나타나는데, 저의 경우는 권한 설정기능이 바로 띄워집니다. 일반적인 앱들을 사용하다보면 권한 허용 질의 이후(모달창??)에 허용을 누르고 , 권한설정을 한 후 지도로 들어가고 그렇게 구성되는데 그런 구성이 누락되어 , 웹뷰 연동이 안되는것일까

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
이지은 댓글 1 좋아요 0 조회수 127

로그아웃 시 토큰 검증 오류 응답

해결됨

React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드

현재 Ch4-6. 관리자 계정 로그아웃, 삭제 강의를 듣고 있는 학생입니다! 다름이 아니라 로그아웃 코드에서 토큰 검증 오류 시에 res.send()를 안하는 이유가 있나요?! 토큰 검증 중 오류가 발생하게 된다면, isLoggedIn 상태는 true이고 토큰은 지워진 상태가 되는건데 그러면 로그인도 못하고 로그아웃도 못하는 상태인거 같아서요! 궁금해서 여쭤봅니다!!

  • HTML/CSS
  • javascript
  • react
  • node.js
  • mongodb
최지성 댓글 2 좋아요 0 조회수 258

강의 자료 문의

해결됨

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)

안녕하세요! 우선 좋은 강의를 제공해주셔서 정말 감사합니다! 하지만 불편한 점이 있습니다. 강의 자료를 일일이 다운받으니 번거롭고 파일 병합하기도 힘드네요.. 타 강의와 비교하는 것은 죄송하지만, 다른 강의들은 모두 zip파일로 강의자료를 병합하여 업로드해주십니다. 본 강의도 강의자료를 병합하여 한번에 올려주시면 감사하겠습니다!

  • react
  • python
  • django
  • web-api
  • htmx
kkhs1kim 댓글 2 좋아요 0 조회수 153

질문은 아니고? 부탁?

해결됨

한 입 크기로 잘라먹는 Next.js

개발 20년차, 원론적으로 제대로 구조를 배워보고 싶어 영상강의를 듣는데, 정말 오랜만에 제대로 된 강의를 듣는것 같군요. 정말 강의 퀄리티 좋습니다. 잡설이 길었는데~~ 다름이 아니라, 현재 강이 백엔드API 서버를 NEST.JS 프레임웍을 이용해서 개발하신것 같은데, 다음번 강의는 NEST.JS 어떤 지요? 기다리겠습니다. ㅎ

  • react
  • typescript
  • next.js
Jae Yeong Lee 댓글 1 좋아요 0 조회수 265

월 변경 이벤트 핸들러가 작동하지 않습니다.

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

코드는 아래와 같습니다. 다른 버튼들은 모두 클릭 이벤트 핸들러가 작동하는데, 월 변경 버튼에만 이벤트 핸들러가 작동하지 않습니다. 혹시 Date 객체를 잘 못 생성한 것일까요..? import { useContext, useState } from "react"; import { DiaryStateContext } from "../App"; import Header from "../components/Header"; import Button from "../components/Header"; import DiaryList from "../components/DiaryList"; const getMonthlyDate = (pivotDate, data) => { const beginTime = new Date(pivotDate.getFullYear(), pivotDate.getMonth(), 1,0,0,0).getTime(); const endTime = new Date( pivotDate.getFullYear(), pivotDate.getMonth()+1, 0, 23, 59, 59 ).getTime(); return data.filter((item)=> beginTime<= item.createdDate && item.createdDate <= endTime) } const Home = () => { const data = useContext(DiaryStateContext); //날짜 보관 const [pivotDate, setPivotDate] = useState(new Date()); const monthlyData = getMonthlyDate(pivotDate, data); const onIncreaseMonth = () => { setPivotDate(new Date(pivotDate.getFullYear(), pivotDate.getMonth()+1)); } const onDecreaseMonth = () => { setPivotDate(new Date(pivotDate.getFullYear(), pivotDate.getMonth()-1)); } return <div> <Header title={`${pivotDate.getFullYear()}년 ${pivotDate.getMonth()+1}월`} leftChild={<Button onClick={onDecreaseMonth} title={"<"}/>} rightChild={<Button onClick={onIncreaseMonth} title={">"}/>} /> <DiaryList data={monthlyData}/> </div> }; export default Home;

  • javascript
  • react
  • node.js
미니민 댓글 1 좋아요 0 조회수 89

네비게이팅 섹션 강의에서?

해결됨

한 입 크기로 잘라먹는 Next.js

onclick이벤트 처리는 SCR이라 상단에 'use client";라고 정의해줘야 하는게 아닌지요? 자동으로 CSR로 처리되나요?

  • react
  • typescript
  • next.js
Jae Yeong Lee 댓글 2 좋아요 0 조회수 111

Vercel signup이 안되요,, 계속 제 깃허브 계정은 추가 인증이 필요하다며 registration@vercel.com에 문의를 하라고 하네요,,, 이럴땐 진행을 어찌해야할까요,,,

미해결

기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)

Vercel signup이 안되요,, 계속 제 깃허브 계정은 추가 인증이 필요하다며 registration@vercel.com 에 문의를 하라고 하네요,,, 이럴땐 진행을 어찌해야할까요,,,

  • react
  • 인터랙티브-웹
  • 클론코딩
  • next.js
  • tailwindcss
  • zustand
  • vercel
tngus5232 댓글 2 좋아요 1 조회수 151

프로젝트 기동로그 확인문의입니다.

미해결

코드로 배우는 React 19 with 스프링부트 API서버

인텔리제이 구동시 아래로그가 출력욉니다. Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] Database driver: undefined/unknown Database version: 10.11.11 Autocommit mode: undefined/unknown Isolation level: undefined/unknown Minimum pool size: undefined/unknown Maximum pool size: undefined/unknown 특이사항 없는 것인지 확인부탁드립니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
wonyongick 댓글 4 좋아요 0 조회수 210

단축키 혹은 extension 문의

미해결

코드로 배우는 React 19 with 스프링부트 API서버

강사님...부트 프로젝트 생성후에 application.properties 설정시에 datasource를 치면 하단에 관련목록들이 리스트업되는데 해당기능을 이용하려면 별도 extension을 설치해야 하는 걸까요?

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
wonyongick 댓글 1 좋아요 0 조회수 61

vercel function 리전을 서울로 하지 않아도 icn1이에요

해결됨

한 입 크기로 잘라먹는 Next.js

말그대로 입니다. 거의 마지막 강의에서 vercel 프론트엔드 앱에 들어가서 function의 리전을 서울이 아니라 도쿄로 바꾸고 배포했는데, 네트워크탭에 book/[id] 페이지의 문서의 X-Vercel-id는 icn1::~ 이 찍힙니다. 다만 index 페이지의 문서는 icn1::iad1::~~ 으로 찍히는데 그 이유가 무엇일까요? (리전은 도쿄로 하고 배포했습니다.) 또 icn은 인천의 약자인가요?

  • react
  • typescript
  • next.js
최성준 댓글 2 좋아요 0 조회수 243

MYSQL 연동오류 원인

미해결

코드로 배우는 React 19 with 스프링부트 API서버

application.propertes spring.application.name=apiServer spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/apidb spring.datasource.username=apidbuser spring.datasource.password=apidbuser MySQL CREATE USER 'apidbuser' @ ' localhost ' IDENTIFIED BY 'apidbuser' ; CREATE USER 'apidbuser' @ '%' IDENTIFIED BY 'apidbuser' ; GRANT ALL PRIVILEGES ON . TO 'apidbuser' @ ' localhost ' WITH GRANT OPTION ; GRANT ALL PRIVILEGES ON . TO 'apidbuser' @ '%' WITH GRANT OPTION ; 현재 데이터베이스 연결은 잘된거 같은데 연결할때마다 oading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. 2025-03-16T15:58:11.685+09:00 INFO 58817 --- [apiServer] [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2025-03-16T15:58:11.687+09:00 WARN 58817 --- [apiServer] [ restartedMain] c.zaxxer.hikari.util.DriverDataSource : Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation. 2025-03-16T15:58:11.855+09:00 INFO 58817 --- [apiServer] [ restartedMain] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@6077b088 2025-03-16T15:58:11.856+09:00 INFO 58817 --- [apiServer] [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2025-03-16T15:58:11.878+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2025-03-16T15:58:11.900+09:00 INFO 58817 --- [apiServer] [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.8.Final 2025-03-16T15:58:11.911+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled 2025-03-16T15:58:12.010+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer 2025-03-16T15:58:12.061+09:00 INFO 58817 --- [apiServer] [ restartedMain] org.hibernate.orm.connections.pooling : HHH10001005: Database info: Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] Database driver: undefined/unknown Database version: 9.1 Autocommit mode: undefined/unknown Isolation level: undefined/unknown Minimum pool size: undefined/unknown Maximum pool size: undefined/unknown 2025-03-16T15:58:12.353+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) 2025-03-16T15:58:12.354+09:00 INFO 58817 --- [apiServer] [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2025-03-16T15:58:12.369+09:00 WARN 58817 --- [apiServer] [ restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2025-03-16T15:58:12.506+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2025-03-16T15:58:12.522+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' 2025-03-16T15:58:12.526+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.zerock.apiserver.ApiServerApplication : Started ApiServerApplication in 1.469 seconds (process running for 2.034) 이런 에러가 떠서 테스트를 실행해도 데이터가 정상적으로 저장되지 않습니다 무엇이 원인일까요?

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
댓글 2 좋아요 0 조회수 137

서버 컴포넌트에서의 상호작용

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요 강사님. 양질의 강의 잘 듣고 있습니다. 다름이 아니라 클라이언트 컴포넌트와 서버 컴포넌트 개념 설명에서, "상호작용(Interaction)이 지속적으로 발생하는 컴포넌트는 클라이언트 컴포넌트로 작성해야 한다" 라고 이해했었습니다. 그런데 리뷰를 작성하는 기능 또한 상호작용이 지속적으로 발생하는 것이 아닌가 하는 의문이 들었습니다. 제가 이해를 잘 못 한 부분이 있는 걸까요? 아니면 서버 컴포넌트에서도 어느정도 상호작용을 처리할 수 있는건가요?

  • react
  • typescript
  • next.js
라라올라 댓글 2 좋아요 0 조회수 113

import Hero from './Hero' 오류 문의

해결됨

React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드

강의에서 말씀하신대로 자동완성을 이용하여서 './Hero' 가 되었는데, 오류가 납니다. Already included file name ~~ Root file specified for compliation 이라고 뜨는데 왜 그런건가요? Error lens에서 해당 오류를 출력합니다.

  • HTML/CSS
  • javascript
  • react
  • node.js
  • mongodb
어린 송어 댓글 2 좋아요 0 조회수 128

완강~!~! 🥳

해결됨

한 입 크기로 잘라먹는 Next.js

리엑트를 이어서 넥스트까지 완강~~! 🥳 강의 재밌게 잘 달렸습니다 좋은 강의 감사합니다 🙇‍♂

  • react
  • typescript
  • next.js
강프로그래머 댓글 2 좋아요 1 조회수 136

사전 렌더링 과정에서 질문

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요! 강의 잘 보고있습니다! 사전렌더링시에 해당 페이지에 대한 HTML과 JS bundle을 받고 수화 과정을 통해 상호작용을 하는 건 이해를 하였습니다! 궁금한점은 그럼 해당 페이지가 아닌 다른 페이지의 HTML과 Js파일들은 프리페칭 과정에서 받아 CSR방식으로 동작하는건가요??

  • react
  • typescript
  • next.js
chahoon12343 댓글 2 좋아요 0 조회수 121

zoom과 fov의 차이점이 잘 이해가 안됩니다.

미해결

React Three fiber(R3F)로 배우는 인터렉티브 3D 웹 개발

섹션3- 3D 구성요소 알아보기 강의 에서 설명주신것중 강의에서는 fov와 zoom의 수치를 감소시키거나 증가시켰을때, 선이라고 해야하나요? Cam이 찍고있는 좁아지고 넓어지는 그 선의 범위가 fov와 zoom이 같은 것 같아서 헷갈립니다! 혹시 어떤 차이가 있는지 알려주실 수 있으실까요?

  • javascript
  • react
  • typescript
  • 인터랙티브-웹
  • three.js
  • webgl
  • react-three-fiber
박주현 댓글 2 좋아요 1 조회수 341

tailwindCss 버전 업그레이드로 인한 질문

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

안녕하세요! next.js 설치 완료후 package.json을 확인해보니 테일윈드가 3.4.1 버전이 아닌 4.0.14 버전이 설치 되어있음을 확인했습니다. 강의 내용과 다른점이 있어 node_modules , yarn lock 삭제후 버전 다운그레이드를 시도해보았지만 자꾸 에러가나서.. 테일윈드 독스를 찾아 새로운 버전을 적용시켰어요 https://tailwindcss.com/docs/installation/framework-guides/nextjs 다만 기존 강의에서는 tailwind.config.js 에서 변수를 설정하는 법을 알려주셨는데.. 그 방법에 대해서는 해결방법을 찾지 못하였습니다. 나만의 변수를 만들어 다양한 컴포넌트에서 재사용하는 방법이 테일윈드의 강의의 쟁점이라고 생각해서. global.css에 변수를 만들어 컴포넌트 스타일에 적용시키는 방법으로 비슷하게는 진행해 보았는데 이렇게 해도 되는 사항 일까요? 또한 강의 후반부에 @layer로 utilities를 만들어 스타일을 적용시키는 부분에서 스타일 자체는 먹지만, 테일윈드 자체에서 제공해주는 반응형 명령어에는 적용이 안돼요 ㅠㅠ 좋은 방법이 있을까요.....

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
홍주미 댓글 2 좋아요 0 조회수 206

코드 누락 제보

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요 강사님 깃헙 파일에서 누락된 코드를 확인하였습니다. https://github.com/winterlood/onebite-next/blob/main/section07/chapter03/src/components/review-editor.tsx [변경 전] <input name="bookId" value={bookId} hidden /> [변경 후] <input name="bookId" value={bookId} hidden readOnly/>

  • react
  • typescript
  • next.js
강프로그래머 댓글 2 좋아요 0 조회수 159

인기 태그

인프런 TOP Writers

주간 인기글