build.gradle에서 implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity 5 :3.1.3.RELEASE' 가 아닌 implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity 6 :3.1.3.RELEASE' 으로 의존성을 설정해야 합니다. 스프링 부트 3버전부터는 타임리프 엑스트라에서 5가 아닌 6만 인식하여 동작하므로 5로 설정하면 인증 동작에 오류가 생겨서 아무리 빌드를 다시해도 isAuthentication()이 동작하지 않으니 logout이 안 사라집니다.
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
루키스님 안녕하세요? 이번에는 면접 질문 들고 왔습니다. 마침 여기서 P2P 얘기가 나와 여기에 질문 드립니다. 서버관련 질답 받는 중, P2P 통신은 어떻게 하겠냐고 질문 받은적이 있어 질문 드리게 되었습니다. (당시에는 대답 못했지만) 키워드를 '포트포워딩'과 '나트 트라버설' 위주로 조사좀 해보면 면접관이 원하는 대답일까요?
PS C:\Users\97gyu\OneDrive\바탕 화면\폴더\이규성\깃허브\vue-project> npm i vite npm error code 3221225477 npm error path C:\Users\97gyu\OneDrive\바탕 화면\폴더\이규성\깃허브\vue-project\node_modules\esbuild npm error command failed npm error command C:\WINDOWS\system32\cmd.exe /d /s /c node install.js npm error A complete log of this run can be found in: C:\Users\97gyu\AppData\Local\npm-cache\_logs\2024-12-16T13_10_50_883Z-debug-0.log PS C:\Users\97gyu\OneDrive\바탕 화면\폴더\이규성\깃허브\vue-project> npm install -g npm 2 npm cache clean --force v22.12.0 node -v 버전입니다 어떠한 오류 인지 알 수 있을까요? 검색 후 시도를 해보았는데 안되네요 ㅠ
안녕하세요, 강의 잘 보고 있습니다! 정말 감사합니다. ConfigMap, Secret 등 환경 변수 관리 값들을 조절해보면서 나름대로 테스트를 해보고 있습니다. 그런데 갑자기 궁금증이 생겨 문의드려요. 혹시 kubectl apply -f 를 통해 ConfigMap, Secret에 대한 설정을 변경했을 때, Deployment를 재구동하지 않고 실시간으로 반영시킬 수 있는 방법은 없을까요? Deployment가 지금처럼 몇 대 안될 때는 상관 없을 것 같은데 되게 많을 경우에는 재구동하는 것도 부담이 되는 작업일 수도 있을 것 같아서요. ( 제 개인적인 생각 입니다.. )
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 다른 질문글들도 많이 보았고 큰돌님 말씀대로 c++교안도 1회독 진행한 상태입니다. 0주차 개념강의 + 1주차 개념강의들도 전부 보았습니다. 이제 1-A 강의 차례인데요. 다른 공부법 질문글들에 답변에는 해당 문제를 먼저 풀어보고 안되면 그때 강의를 보라고 하셨는데 해당 강의에 해당하는 문제는 알고리즘_문제해설.pdf파일을 보고 해당 문제를 직접 찾아서 문제를 풀면되는건가요?
const weatherSearch = function (position) { console.log(position); fetch(`https://api.openweathermap.org/data/2.5/weather?lat=${position.latitude}&lon=${position.longitude}&appid=9756434244216c3d2f9c08591b54bede`) } // 위치 정보를 처리하는 함수 const acessToGeo = function (position) { const positionObj = { latitude: position.coords.latitude, // 위도 longitube: position.coords.longitude // 경도 (오타: longitube → longitude) }; console.log(positionObj); // 위치 정보 출력 console.log(position); // 전체 위치 데이터 출력 weatherSearch(positionObj) }; 2.5로 수정햇는데 오류가 뜨네요 어떠한 오류인 지 모르겠습니다 밑 코드는 // DOM 요소 선택 const todoInput = document.querySelector("#todo-input"); // 할 일 입력 필드 const todoList = document.querySelector("#todo-list"); // 할 일 목록 // localStorage에서 저장된 데이터를 불러오기 const savedTodoList = JSON.parse( localStorage.getItem("saved-items") ); /* 문자열로 저장된 데이터를 JSON.parse를 통해 배열로 변환 */ // 새로운 할 일을 생성하는 함수 const createTodo = function (storageData) { let todoContents = todoInput.value; // 입력 필드에서 가져온 값 if (storageData) { todoContents = storageData.contents; // 저장된 데이터가 있으면 그 내용을 사용 } // 할 일을 나타내는 DOM 요소 생성 const newLi = document.createElement("li"); // li 요소 생성 const newSpan = document.createElement("span"); // span 요소 생성 (할 일 내용 표시) const newBtn = document.createElement("button"); // 완료 버튼 생성 // 완료 버튼 클릭 시 해당 할 일을 완료 상태로 변경 newBtn.addEventListener("click", () => { newLi.classList.toggle("complete"); // 완료된 상태를 토글 saveItemsFn(); // 변경 내용을 저장 }); // 할 일을 더블클릭하면 삭제 newLi.addEventListener("dblclick", () => { newLi.remove(); // li 요소 제거 saveItemsFn(); // 변경 내용을 저장 }); // 저장된 데이터가 완료 상태면 완료 표시 추가 if (storageData?.complete) { // 옵셔널 체이닝 사용 newLi.classList.add("complete"); // 완료 클래스 추가 } // 할 일 내용을 span에 추가 newSpan.textContent = todoContents; // li 요소에 버튼과 span을 자식으로 추가 newLi.appendChild(newBtn); newLi.appendChild(newSpan); // 할 일 목록에 li 추가 todoList.appendChild(newLi); // 입력 필드를 비우기 todoContents.value = ""; // 변경된 목록 저장 saveItemsFn(); }; // Enter 키를 눌렀을 때 할 일 추가 const keyCodeCheck = function () { if (window.event.keyCode === 13 && todoInput.value !== "") { createTodo(); // 입력값이 있으면 할 일을 생성 } }; // 전체 삭제 기능 const deleteAll = function () { const liList = document.querySelectorAll("li"); // 모든 li 요소 선택 for (let i = 0; i < liList.length; i++) { liList[i].remove(); // 모든 할 일 제거 } saveItemsFn(); // 변경 사항 저장 }; // localStorage에 저장하는 함수 const saveItemsFn = function () { const saveItems = []; // 저장할 데이터를 담을 배열 // 현재 목록의 할 일들을 객체로 변환하여 저장 for (let i = 0; i < todoList.children.length; i++) { const todoObj = { contents: todoList.children[i].querySelector("span").textContent, // 할 일 내용 complete: todoList.children[i].classList.contains("complete"), // 완료 상태 }; saveItems.push(todoObj); // 객체를 배열에 추가 } // 배열이 비었으면 localStorage에서 데이터 제거, 아니면 저장 saveItems.length === 0 ? localStorage.removeItem("saved-items") // 데이터가 없으면 키 삭제 : localStorage.setItem( "saved-items", JSON.stringify(saveItems) // 배열을 문자열로 변환 후 저장 ); }; // 저장된 데이터가 있으면 불러와 화면에 표시 if (savedTodoList) { for (let i = 0; i < savedTodoList.length; i++) { createTodo(savedTodoList[i]); // 저장된 데이터로 할 일을 생성 } } const weatherSearch = function (position) { console.log(position); fetch(`https://api.openweathermap.org/data/2.5/weather?lat=${position.latitude}&lon=${position.longitude}&appid=9756434244216c3d2f9c08591b54bede`) } // 위치 정보를 처리하는 함수 const acessToGeo = function (position) { const positionObj = { latitude: position.coords.latitude, // 위도 longitube: position.coords.longitude // 경도 (오타: longitube → longitude) }; console.log(positionObj); // 위치 정보 출력 console.log(position); // 전체 위치 데이터 출력 weatherSearch(positionObj) }; // Geolocation API로 사용자 위치 요청 const askForLocation = function () { navigator.geolocation.getCurrentPosition( acessToGeo, // 위치 정보를 가져오면 실행할 콜백 (err) => { console.log(err); // 에러가 발생하면 에러 정보를 출력 } ); }; // 위치 요청 실행 askForLocation();
34서비스에 대한 response로, 74 20 0F FF이 왔다고 가정해보겠습니다. 그럼 $36 서비스시, Block당 보낼수 있는 최대 Size가 4095 Byte인가요 아니면 4096Byte인가요? 48page, 52page의 설명이 다릅니다. 만약 4095byte라면 실제로 첫번째 block에 전송되는 데이터 길이는 4095 - 2 = 4093 byte 인가요? (2는 36 01 총 2byte)
10.3) React.memo와 컴포넌트 렌더링 최적화 강의를 보고, 투두 리스트 아이템에 체크박스를 클릭했을 때, Header 컴포넌트 외에 Editor 컴포넌트도 불필요하게 리렌더링이 되고 있어 리렌더링 되지 않도록 코드를 수정하였습니다. 코드를 수정해서 더 이상 리렌더링이 되지 않고 있는데 이러한 성능 최적화가 정말 필요한 건지에 대한 의문이 듭니다. 거대한 컴포넌트의 경우 불필요한 리렌더링을 막는 것은 정말 필요하고 좋을 것 같은데 Editor 컴포넌트나 Header 컴포넌트 정도의 작은 컴포넌트의 리렌더링도, 불필요하게 일어난다면 막는 것이 좋은 건지 아니면 굳이 최적화가 필요 없는 지 실무 관점에서 궁금합니다.
기존 강의에서 elem = browser.find_element_by_id("query") 였는데 이제는 elem = browser.find_element("id","query") 이렇게 작성해야함 ㅜㅜ 계속 AttributeError 떠서 미치는줄 알았는데 구글링해서 찾다보니 나와서 써보니 문법이 바뀐거였음