최대한 자료를 찾아봐서 이해해보려고 했는데, 너무 헷갈려서 도움을 구하고자 질문을 올립니다. 강의에서 search page에는 페이지 이동 시 javascript bundle로써 전달 될 client component가 없기 때문에 그냥 rsc payload만 전달되는 것이라고 하셨는데, searchpage만 보면 client component가 없는 것이 맞지만, (with-searchbar)폴더 안에 layout으로 Searchbar component를 포함시킨 것은 어떻게 되는 것인지 궁금합니다. Searchbar component가 client component이므로 search page에서 직접적으로 import를 하지는 않았지만, 레이아웃으로써 사용되었기에 어쨌든 search page안에 client component가 포함되는 것은 아닌가요? 이해가 명확하게 되지 않아 질문조차 조금 난해하게 쓴 것 같아서 죄송합니다! 감사합니다.
vs code를 깔려고 예전부터 시도해봤는데 어떻게 해야 할지 몰라서 물어봅니다. 지금까지는 강의가 vscode를 쓸 정도로는 안되서 신경을 안썼는데 (google colab 쓰고 있음) 이 번엔 vs를 써야하는 상황이 와서 vscode를 깔아야 할거 같습니다. 근데 제가 32bit,*64 기반 프로세서를 가지고 있는데 이 사향으로 어떻게 깔수 있을까요?
안녕하세요 강사님 혹시 vsc에서 airflow관련 함수들의 자동완성을 제공하는 익스텐션이 따로 있나요? 아니면 코드를 원래 전체 작성해야 하나요? 위 그림에 ti.xcom_pull의 경우 ti. 하고 자동완성을 하려고 봤더니 제공하는 함수가 없어서 질문드립니다 근데 뒤에 task_ids는 자동완성이 되네요
zustand에 저장과 cookie 저장에 대해 보안적으로는 cookie가 더 안전하다고 들었습니다. xss 공격에는 HttpOnly를 통해 해결할 수 있지만 반환된 accessToken을 js로 접근하지 못하다 보니 저장을 할 수 없는 문제가 있지만 secure을 통해 https에서만 요청가게 할 수 있으며, sameSite를 통해 csrf의 공격에 방어할 수 있다 해서 secure, sameSite를 사용해 accessToken을 쿠키에 저장하는게 더 좋은 방법이라 생각 했는데 어떤 방식을 주로 사용하나요?
added 153 packages, and audited 154 packages in 2s 32 packages are looking for funding run `npm fund` for details found 0 vulnerabilities leeman01@idong-geon-ui-noteubug mall % npm list tailwindcss mall@0.0.0 /Users/leeman01/frontend2/mall └── (empty) leeman01@idong-geon-ui-noteubug mall % npm cache clean --force npm warn using --force Recommended protections disabled. leeman01@idong-geon-ui-noteubug mall % npm install -D tailwindcss postcss autoprefixer added 2 packages, and audited 156 packages in 772ms 32 packages are looking for funding run `npm fund` for details found 0 vulnerabilities leeman01@idong-geon-ui-noteubug mall % npm run dev > mall@0.0.0 dev > vite VITE v6.2.2 ready in 392 ms ➜ Local: http://localhost:5173/ ➜ Network: use --host to expose ➜ press h + enter to show help ^C leeman01@idong-geon-ui-noteubug mall % npm list tailwindcss mall@0.0.0 /Users/leeman01/frontend2/mall └── tailwindcss@4.0.14 leeman01@idong-geon-ui-noteubug mall % npx tailwindcss init -p npm error could not determine executable to run npm error A complete log of this run can be found in: /Users/leeman01/.npm/_logs/2025-03-18T07_59_35_501Z-debug-0.log leeman01@idong-geon-ui-noteubug mall % 이런 알수 없는 오류가 뜨는데 원인이 뭔지 궁금합니다
1.커뮤니티 라는 버튼이 없음 2. 영상 (조건문 5:30초 ~ ) 3. 수업자료를 출력해서 보고있는데 개판으로 입력되어있네요...? 8만원짜리 강의 퀄리티면 조금 더 신경써주시면 좋겠네요... 아주 기본적인 조건문 예시 class NumberCount { public static void main(String[] args){ int number =3 ; if (number >5){ System.out.println("5보다 크네요"); }else{ System.out.println("5보다 크지않아요"); } } } 출력값 : 5보다 크네요 로 표기되어있는등 아주 기본적인 예시 임에도 불구하고 수업자료가 개판으로 작성되어있네요 초반에 출력해서 사용하시던가 , 다운받아보면된다고 하셨는데 종이만 날린꼴입니다. 종이 낭비는 둘째치고 너무 기본적인 코드에서 이런 상식적이지않은 실수를 해놓으시니 조금 당황스럽네요.
안녕하세요. 한글 파일 20개가 있는데, 여기저기 짜집기해서 스타일이 엉망진창입니다. 표와 글상자, 미주, 각주 스타일도 있고요. 이걸 싹 다 바탕글 스타일로 바꾸고, 스타일 리스트도 다 지워서 바탕글 스타일 1개만 남기도록 하는 방법을 ..... 낑낑대고 있씁니다. ꈍ◡ꈍ 즉 이렇게 바탕글만 남기고 싶습니다. 이렇게 전부 디폴트로 만든 후에 다시 바탕글 스타일을 11pt, kopub돋움L로 설정된 스타일로 바꿔야 합니다. 방법이 있을까요?
안녕하세요. 새로 올려주신 강의를 흥미롭게 듣고 있습니다. 저는 아이폰을 이용해서 테스트 중인데, 안드로이드와는 좀 다른 움직임이 있어서 질의드립니다. 권한 설정화면 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. 그리고, 원두님이 안드로이드를 통해 보여주신 것과 같이 허용함을 다시 묻지 않는데 이런 설정을 별도로 추가해야 하는걸까요? 제가 뭔가 누락한 건지 모르겠습니다. 원두님은 관련코드를 구성하지 않으셔도 사용에 대한 질의가 나타나는데, 저의 경우는 권한 설정기능이 바로 띄워집니다. 일반적인 앱들을 사용하다보면 권한 허용 질의 이후(모달창??)에 허용을 누르고 , 권한설정을 한 후 지도로 들어가고 그렇게 구성되는데 그런 구성이 누락되어 , 웹뷰 연동이 안되는것일까
현재 Ch4-6. 관리자 계정 로그아웃, 삭제 강의를 듣고 있는 학생입니다! 다름이 아니라 로그아웃 코드에서 토큰 검증 오류 시에 res.send()를 안하는 이유가 있나요?! 토큰 검증 중 오류가 발생하게 된다면, isLoggedIn 상태는 true이고 토큰은 지워진 상태가 되는건데 그러면 로그인도 못하고 로그아웃도 못하는 상태인거 같아서요! 궁금해서 여쭤봅니다!!
안녕하세요! 우선 좋은 강의를 제공해주셔서 정말 감사합니다! 하지만 불편한 점이 있습니다. 강의 자료를 일일이 다운받으니 번거롭고 파일 병합하기도 힘드네요.. 타 강의와 비교하는 것은 죄송하지만, 다른 강의들은 모두 zip파일로 강의자료를 병합하여 업로드해주십니다. 본 강의도 강의자료를 병합하여 한번에 올려주시면 감사하겠습니다!
개발 20년차, 원론적으로 제대로 구조를 배워보고 싶어 영상강의를 듣는데, 정말 오랜만에 제대로 된 강의를 듣는것 같군요. 정말 강의 퀄리티 좋습니다. 잡설이 길었는데~~ 다름이 아니라, 현재 강이 백엔드API 서버를 NEST.JS 프레임웍을 이용해서 개발하신것 같은데, 다음번 강의는 NEST.JS 어떤 지요? 기다리겠습니다. ㅎ
30:11 해당 부분에 나온 구조체 문제 관련 의견드립니다. 표로 설명하기보다는 아래와 같이 설명하는 것이 직관적이지 않을까 싶습니다. head = &a 이므로 head = {10, null} 이 됩니다 다음으로 a.n2 = &b라 하였으므로, a의 n2 자리에 b 값을 넣으면 됩니다. 따라서, head = {10, {20, null}} 이 됩니다. 또 다음으로 b.n2 = &c라 하였으므로, b의 n2 자리에 c 값을 넣으면 됩니다. 따라서, head = {10, {20, {30, null}}} 이 되게 됩니다. 이때 head -> n2를 보라고 하였으므로, {20, {30, null}}을 보면 되고, 다시 n2->n1으로 n1을 보라고 하였으므로, 위의 구조체에서 n1에 해당하는 20이 답이 됩니다