안녕하세요, 강의내용 중 질문이 있어 글 올립니다. orchestrator와 proxysql로 auto failover 구성시 db001(master), db002(slave1), db003(slave2) 상태에서 db001을 종료(docker stop db001)하여 db002(master), db003(slave) 상태가 되고 db001을 다시 실행(docker start db001)하게 되면, 강의 내용 처럼 db001 접속후 read_only 설정, db002를 master로 지정하는 slave작업을 하기전에 app_test_insert.sh 로 테스트 해보면 db001, db002 양쪽으로 저장이 됩니다. 이걸 막을 방법이 없나요? 실제 운영시 사용자가 없는 시점에서 db001을 실행해야되는건지 아니면 docker-compose에서 db설정 파일인 conf를 호스트 파일로 마운트 하고 호스트에 있는 파일을 수정후 db001을 실행해야될까요?
모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
코드는 이렇습니다 중간에 echo는 제가 찍어본 것이고 admin'-- 이렇게 입력하면 query : 'select * from member where id='admin'--' and pw='b59c67bf196a4758191e42f76670ceba'' 쿼리는 이렇게 찍히는데 Fatal error: Call to a member function fetch_assoc() on a non-object in <b>C:\APM_Setup\htdocs\login\loginAction.php 결과값이 없다고 오류가 나버립니다. mysql에서 직접 admin'-- 이렇게 넣어봐도 잘 나오는데... 뭐가 문제일까요? +강의 뒷부분의 'or1=1-- 도 넣으면 에러납니다.
안녕하세요 강의를 듣는중 추가적으로 tanstack-query를 공부하다가 혼자서 도저히 이해를 할수 없는 부분이 있어서 이 부분에 대해 혹시 조언을 받을수 있을까 싶어 문의드립니다. prefetchQuery가 개인적으로 잘 이해가 안되어서 별도로 프로젝트를 생성하여 기본적인 것부터 다시 공부하고 있었습니다만, tanstack-query 공식사이트에서 권장하던 방법대로 임의적으로 코드를 생성하였더니 router.push()로 다른 페이지에 갔다가(->홈으로[/]) 다시 돌아오는것(->Post페이지(/post))을 반복하다보면 가끔 서버 컴포넌트에 있는 prefetchQuery안의 fetch와 클라이언트 컴포넌트에 있는 useQuery의 fetch가 동시에 실행이 되는 일이 가끔 발생을 해서요. fetch가 이중으로 실행이 되고 있는것 같은데 아무리 코드를 살펴봐도 제가 잘못한 부분을 찾을수가 없어서 조언을 구합니다ㅠ page.tsx import { dehydrate, HydrationBoundary, QueryClient } from '@tanstack/react-query'; import Post from './_component/Post'; import getPostRecommends from './_hook/fetch'; export default async function tanstackQuery() { const queryClient = new QueryClient(); await queryClient.prefetchQuery({ queryKey: ['movies'], queryFn: getPostRecommends, }); const dehydratedState = dehydrate(queryClient); return ( <HydrationBoundary state={dehydratedState}> <Post /> </HydrationBoundary> ); } post.tsx 'use client'; import { useQuery } from '@tanstack/react-query'; import getPostRecommends from '../_hook/fetch'; import { useRouter } from 'next/navigation'; export default function TanstackQuery() { const { data } = useQuery({ queryKey: ['movies'], queryFn: getPostRecommends, }); const router = useRouter(); type PostItem = { id: number; title: string; }; return ( <div> <button onClick={() => router.push('/')}>홈으로</button> {data?.map((item: PostItem) => { return ( <div key={item.id}> <h2>{item.title}</h2> </div> ); })} {data?.message} </div> ); } getPostRecommends export default async function getPostRecommends() { if (typeof window === 'undefined') { console.log('서버에서 fetch 실행' + new Date()); } else { console.log('클라이언트에서 fetch 실행' + new Date()); } const response = await fetch('https://jsonplaceholder.typicode.com/posts?_page=1&_limit=10', { cache: 'no-store', }); if (!response.ok) { throw new Error('Failed to fetch data'); } const res = await response.json(); return res; } 기본 provider 설정 'use client'; import { isServer, QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { ReactNode } from 'react'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; function makeQueryClient() { return new QueryClient({ defaultOptions: { queries: { staleTime: 6 * 1000, }, }, }); } type Props = { children: ReactNode }; let browserQueryClient: QueryClient | undefined = undefined; function getQueryClient() { if (isServer) { return makeQueryClient(); } else { if (!browserQueryClient) browserQueryClient = makeQueryClient(); return browserQueryClient; } } export default function Providers({ children }: Props) { const queryClient = getQueryClient(); return ( <QueryClientProvider client={queryClient}> {children} <ReactQueryDevtools /> </QueryClientProvider> ); } 서버 콘솔 브라우저 콘솔 위에 캡쳐화면 같이 fetch가 거의 동시간에 발생을 하고 있는 모습입니다. next.js router cache 때문에 30초마다 서버 컴포넌트쪽이 리랜더링 되어서 페이지를 새로고침을 하지 않고 router.push로 다시 페이지에 들어가도 서버 컴포넌트쪽이 다시 실행된다는건 이해를 했는데, 그렇다면 초기 랜더링할때와 똑같이 데이터가 prefetch되어서 클라이언트쪽 useQuery가 실행이 되지 않아야하지 않나요? 왜 두번이나 fetch가 도는건지 아무리 자료를 찾아봐도 잘 모르겠어서 결국 문의드리게 되었습니다ㅠ
질문: 변수를 선언 할 때 형변환을 해서 담는 것은 오류가 발생 하는데 원래 불가능 한 것인지 또 이유는 무엇인지 궁금합니다. # 예제 x = [1,2] y = (1,2) z = "test" print(x + y) # 질문 x = [1,2] y = list(1,2) # list[(1,2)] z = "test" print(x + y)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님, 2-T 접근방법에 대해 질문있습니다! 문제를 읽고 우선 queue나 stack으로 풀어야겠다는 생각은 들었는데, 해당 문제가 우측으로 더 큰항목이 있는지 비교(input과 특정 항목을 비교)하는 문제이기 때문에, queue로 구현하면 queue의 front에 가장 큰 값이 들어올 경우, 이후 항목에서 오큰수를 부여할 수 있는 수열들이 들어오더라도 queue를 pop하지 못하고, pop할 수 있는 항목들을 queue를 순회해서 찾는다고 하면 시간복잡도가 O(N^2)으로 커져버리니까 스택을 사용해야겠다! 라는 사고에 따라 스택을 사용하기로 결정하면 되나요? 또 한가지 질문이 있습니다..!! 정답 배열로 정수를 출력하는 문제라고 가정하면, int배열을 사용하여 푸는 것과 벡터<int> v 에 푸시하여 사용하는 것 어떤 것이 유리한지 궁금합니다!
풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
안녕하세요. 강의 결제는 했는데요. 강의 영상 말고 소개에 나오는 강의 자료? pdf나 웹링크? 같은것은 어디에 안내되어있나요? 따로 요청을 해야 하나요? 강의 영상이랑 같이 제공해주시는 자료가 있다면 미리 다 받고 한번에 빠르게 학습하려고 합니다. (현업개발자라 알고 있는 내용은 스킵하면서 빠르게 봐야 합니다.) 메일 주소를 알려 드려야 하나요? 아니면 어디로 요청 메일을 보내야 하나요?
맥에서도 사용해보고 싶어서 git을 설치하는 과정에서 해당 에러가 지속적으로 나와 brew update를 먼제 해봤는데 homebrew-core is a shallow clone. 또 에러가 나와서 오류 창에서 알려준데로 git -C ......이부분 명령어를 실행해줬는데 저 에러가 안없어지더라구요... 그리고 ARM processor 에러 부분도 shallow clone 이 에러가 납니다... 왜그럴까요... 혹시 실습때 git 이 반드시 필요한 걸까요? git의 역할이 궁금합니다...
안녕하세요, 영한님 뒤에 있을 채팅 프로그램을 직접 만들어보려다가 난관에 봉착해 질문드립니다. ClientV6 코드 내의 while문을 Thread에 넣는 작업을 진행하였습니다. 아직 클라이언트에서 입력 값을 넣기 전임에도 불구하고 서버에서 EOFException이 나는데 그 이유를 모르겠습니다. 혹시 제가 코드를 잘못 짠 것인지 아님 놓치는 부분이 있는 것인지 한 번 봐주실 수 있나요? public class ClientV6_1 { private static final int PORT = 12345; public static void main(String[] args) throws IOException { log("클라이언트 시작"); try ( Socket socket = new Socket("localhost", PORT); DataInputStream input = new DataInputStream(socket.getInputStream()); DataOutputStream output = new DataOutputStream(socket.getOutputStream()); ) { log("소켓 연결: " + socket); new Thread(new ClientHandler(socket), "ClientHandler").start(); } catch (IOException e) { log(e); } } } public class ClientHandler implements Runnable { private final Socket socket; private final DataInputStream input; private final DataOutputStream output; public ClientHandler(Socket socket) throws IOException { this.socket = socket; this.input = new DataInputStream(socket.getInputStream()); this.output = new DataOutputStream(socket.getOutputStream()); } @Override public void run() { Scanner scanner = new Scanner(System.in); try { while (true) { System.out.print("전송문자: "); String toSend = scanner.nextLine(); // send output.writeUTF(toSend); log("client -> server: " + toSend); if (toSend.equals("exit")) break; // receive String received = input.readUTF(); log("client <- server: " + received); } } catch (IOException e) { e.printStackTrace(); } finally { close(socket); } } }
안녕하세요. 덕분에 시계열LSTM 예측을 할 수 있어 감사합니다. 다름아니라 딥러닝 스칼라 시계열 예측 (Python 실습) 강의의 예제 코드를 그대로 실행하였는데요. 영상에서 나온 예측결과(14:45)와 예제에서의 예측 결과가 다릅니다. 코드는 달라진점이 없고 다른점은 텐서플로우 버전(2.17.0)인것 같은데 버전에 따라 예측결과도 달라지는지 아니면 다른 문제로 결과가 다른지 여쭙고 싶습니다. 영상의 예측결과 예제코드를 수정없이 그대로 실행시킨 예측결과
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요! 문제와 풀이를 해보다 문득 궁금해졌는데, 혹시 ArrayList 생성할때 List<Integer> list = new ArrayList<>(); ArrayList<Integer> list = new ArrayList<>(); 두개의 차이가 있을까요 ..?
AI 시대에도 살아남는 엔지니어의 조건, 미국 빅테크 시스템 디자인, 알고리즘 사고, 오픈소스 실무 완성
안녕하세요 3.1 영화 DVD 대여 시스템 데이터베이스 스키마 설계 에 대해 질문이 있는데요. rentals table 에 items_id 가 컬럼으로 추가되어 있습니다. 그런데 생각에 items table 레코드 보다 실제 하는 객체인 inventory table id 가 들어가야 할 것 같아서요. 어떤 차이점이 있는지 설명을 부탁드립니다.