inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

영속쿠키 질문입니다.

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

사용자가 로그아웃을 하면, 브라우저의 쿠키와 서버의 세션이 모두 삭제되고 쿠키는 브라우저(클라이언트), 세션은 서버에서 관리하는 정보라고 알고 있습니다. 다른분의 답변에서 Spring boot의 경우는 기본적으로 1800s(초)로 세션이 지속된다고 되어있고, 따로 특성을 관리하는 파일에서 다르게 설정해주면, 해당 시간을 늘리는 것도 줄이는 것도 가능합니다. 보통 세션의 지속시간은 그 시간이 지나면 바로 삭제되는 것이 아니라, maxIntervalTimout 이라고 해서 세션을 사용하지 않은 시간, 즉 특정 세션값을 마지막으로 사용한 시점으로 부터 어느정도 지나면 지운다는 의미입니다. 라고 되어있는데 그러면 B사이트에서 A 사용자의 영속쿠키 를 일주일로 설정을 했다고 가정을 하면 A는 로그아웃이나 브라우저를 종료하고 3일동안 B사이트의 안들어오면 쿠키는 남아있고 세션은 지속시간이 끝났으니까 A 사용자의 영속쿠키에 대한 세션 ID를 삭제했다가 A가 4일만에 그 사이트에 재방문시 A 사용자의 영속쿠키에 대한 새로운 세션 ID를 발급해주는 건가요?? 답변주시면 정말 감사하겠습니다.

  • network
코딩먹는하마 댓글 1 좋아요 0 조회수 533

협상(accept-language)

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요 친절한 강의와 질문 답변 항상 감사드립니다. Accept-language : ko-KR 등등(q값) -> 서버에서는 이 우선순위 등을 서버 개발자들이 파싱하나요? 아니면 브라우저에서 자동으로 구현이 되어 있나요? 실수로, 내보낼 때 content-language: ko 인데 내용은 영어로 (휴먼에러) 내보낼 수도 있는 것인가요? 이런 불일치가 있다고 해서 에러가 나거나 그럴 수 있나요?

  • network
highjune 댓글 1 좋아요 0 조회수 710

에러 코드의 구현 주체

해결됨

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요 좋은 강의 감사합니다. 자바/스프링 부트 기준으로 프로젝트를 했을 때, 제가 에러처리를 별도로 해주지도 않았음에도 500 에러(NPE 등등)가 나거나, 성공시 200 성공 코드가 나가는 것은 누가 만드는 것인가요? 웹서버(ex. 내장형 톰캣) 또는 스프링부트(컨테이너) 인가요? 친절한 답변 항상 감사합니다.

  • network
highjune 댓글 1 좋아요 0 조회수 460

웹서버가 구현?

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요 좋은 강의 항상 감사합니다. 강의에서 405 에러를 내보내면 Allow 헤더 필드 값에 가능한 메서들 값을 내보내준다고 웹서버에서 구현되어 있다 => 이 말이 궁금합니다. 다음과 같은 api(/members -GET, DELETE) 를 자바/스프링부트 로 구현해놨습니다. 그런데 프런트에서 /members - POST로 요청을 하게 되었을 때의 경우가 궁금합니다. 웹서버에서 자동으로 405 에러와 함께 Allow 헤더 값에 GET, DELETE 값들을 내보내준다는 것인가요? 위의 경우에서 말하는 웹서버는 내장형 톰캣을 말하고, 이렇게 구현되어 있는 다른 내장형 웹서버들도 많나요? 친절한 답변 미리 감사드립니다.

  • network
highjune 댓글 1 좋아요 0 조회수 617

필수헤더?

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요. 좋은 강의 잘 듣고 있습니다. 필수헤더에서의 '필수'라는 의미가 무엇인가요? 궁금한 점은 아래입니다. 자주 사용하는 웹 브라우저 소프트웨어(크롬, 엣지 등) 이 요청할 때 알아서(api통신일 경우 프런트 개발자들이 명시하지 않아도) '무조건' 넣는다는 말인가요? 필수가 아니라면 어떻게 되나요? 강의를 보면서 구글에서 f12로 api들을 살펴보니, request 부분의 헤더에 HOST가 없는 것들도 있떠라구요. 친절한 답변 항상 감사드립니다.

  • network
highjune 댓글 1 좋아요 1 조회수 578

Host와 Port

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요 좋은 강의 항상 잘 듣고 있습니다. 아래 질문들을 봤는데도 이해가 되지 않아 질문을 올립니다. 2:21 그림에서 aaa.com , bbb.com , ccc.com 은 모두 다 하나의 ip(200.200.200.2)에 연결이 된 거잖아요? 궁금한 점들은 아래입니다. 그런데 aaa.com , bbb.com , ccc.com 들은 하나의 host 개념인 것이지, port로 구분하는 프로세스의 개념이 아닌거죠? aaa.com (200.200.200.2:15포트), bbb.com (200.200.200.2:16포트), ccc.com (200.200.200.2:17포트) 처럼 다른거죠? 가상호스트라는 개념을 쓰면 여러 호스트들을 하나의 ip에 연결을 할 수 있고, 각각의 host들은 서로 중복되는 포트를 사용할 수 있는 것인가요? 아래처럼요. aaa.com (200.200.200.2:15포트), bbb.com (200.200.200.2:15포트) ccc.com (200.200.200.2:15포트)

  • network
highjune 댓글 1 좋아요 0 조회수 804

Session #2 내용중 왜 스레드가 동시다발적으로 접근 불가능한지 질문

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Session#2 강의 시작부분에 설명해주신 내용에서, SEssion의 receive는 OnRecvCompleted()메서드에 여러 스레드가 동시다발적으로 들어가는 경우는 없다. 라고 하셨는데, 왜 그런지 이해를 못했습니다. ServerCore의 OnAcceptHandler는 콜백함수라서 콜백함수는 다른 스레드가 생겨나서 실행이 된다고 들었던 것 같은데, 그렇다면 두 스레드가 OnAcceptHandler에서 Session.Start()를 해버리면 OnRecvCompleted()메서드를 두 스레드가 동시에 실행할 경우가 생기지 않나요?

  • unity
  • network
  • C#
jiw720 댓글 4 좋아요 0 조회수 703

검색어 입력 관련

미해결

실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용

연습삼아 나라장터의 상단 부분에 셀레니움을 통해 특정 검색어를 입력 후 검색을 실행 하려합니다 관련하여, 해당페이지 접속 후 단순히 find.element를 통해 driver.find_element( By.ID ,"AKCKwd").sendkeys("검색어") 와같이 사용할 수는 없는 것 인지요?

  • beautifulsoup
  • python
  • 웹-크롤링
  • selenium
SANGYUN LEE 댓글 3 좋아요 1 조회수 539

광고상품 외 표기 문의드립니다.

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

안녕하세요. 답변 감사드립니다. 전체 코드를 첨부하여 다시 문의글 작성하였습니다. 쿠팡 광고상품과 로켓상품도 표기하고자 합니다. if len( link.select (".ad-badge-text")) > 0: print("광고상품") 를 아래와 같이 수정하면 될까요? 해봤는데 아무표기가 안되서요. if len( link.select ("span.badge rocket")) > 0: print("로켓상품") 그리고 광고상품 로켓상품 둘다 표현하고자 하면 아래와 같이 표기하면 될까요? if len( link.select (".ad-badge-text")) > 0: print("광고상품") elif len( link.select ("span.badge rocket")) > 0: print("로켓상품") 광고상품은 광고상품이라고 잘 표기가 되는게 로켓상품은 전혀 결과가 나오지 않아서요.

  • python
  • 웹-크롤링
suki 댓글 2 좋아요 2 조회수 449

listener, session 간의 차이

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

안녕하세요, listener, session 코드간 차이점에 대해서 질문이 있습니다. 1, listener에서는 OnRecvCompleted()와같은 메서드에서 socketerror가 발생했을 때, disconnect를 하지 않았는데, session에서는 왜 disconnect를 하는 건가요? 2.listener 에서는 registerRecv() 와같은 함수를 OnRecvCompleted의 if, else와 상관없이 실행한거같은데, 왜 session에서는 if(args.Bytes.Transferred > 0 && ~~~) 을 만족해야 OnRecvCompleted를 실행하는건가요? using System; using System.Collections.Generic; using System.Net.Sockets; using System.Text; namespace ServerCore { class Session { Socket _socket; public void init(Socket socket) { _socket = socket; SocketAsyncEventArgs recvArgs = new SocketAsyncEventArgs(); recvArgs.Completed += new EventHandler<SocketAsyncEventArgs>(OnRecvCompleted); //userTocken으로 추가적인 정보를 아무거나넘겨줄 수 있다(object를 받기 때문) recvArgs.SetBuffer(new byte[1024],0,1024); RegisterRecv(recvArgs); } void RegisterRecv(SocketAsyncEventArgs args) { args.AcceptSocket = null; bool pending = _socket.ReceiveAsync(args); //바로 성공했으면 if(pending == false) { OnRecvCompleted(null, args); } } void OnRecvCompleted(object obj, SocketAsyncEventArgs args) { //BytesTransferred == 몇바이트 받았는지 if (args.BytesTransferred>0 && args.SocketError == SocketError.Success) { try { string recvData = Encoding.UTF8.GetString(args.Buffer, args.Offset, args.BytesTransferred); Console.WriteLine($"[from client] : {recvData}"); RegisterRecv(args); } catch(Exception e) { Console.WriteLine($"onrecvcompleted failed {e}"); } } else { //TODO Disconnect } } } }

  • network
  • C#
  • unity
jiw720 댓글 3 좋아요 0 조회수 682

Listener, Session 에서의 콜백메서드 질문

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

안녕하세요, listener, session 클래스를 구현할 때, 콜백메서드에 대해 질문이 있습니다. 아래와 같은 코드에서, using System; using System.Collections.Generic; using System.Net.Sockets; using System.Text; namespace ServerCore { class Session { Socket _socket; public void init(Socket socket) { _socket = socket; SocketAsyncEventArgs recvArgs = new SocketAsyncEventArgs(); recvArgs.Completed += new EventHandler<SocketAsyncEventArgs>(OnRecvCompleted); //userTocken으로 추가적인 정보를 아무거나넘겨줄 수 있다(object를 받기 때문) recvArgs.SetBuffer(new byte[1024],0,1024); RegisterRecv(recvArgs); } void RegisterRecv(SocketAsyncEventArgs args) { args.AcceptSocket = null; bool pending = _socket.ReceiveAsync(args); //바로 성공했으면 if(pending == false) { OnRecvCompleted(null, args); } } void OnRecvCompleted(object obj, SocketAsyncEventArgs args) { if (args.SocketError == SocketError.Success) { string recvData = Encoding.UTF8.GetString(args.Buffer, 0, args.Buffer.Length); Console.WriteLine($"[from client] : {recvData}"); } else { Console.WriteLine(args.SocketError.ToString()); } RegisterRecv(args); } } } 해당 RegisterRecv()메서드에서 pending이 false인 경우 바로 OnRecvCompleted()를 호출해주는거고, true인 경우 콜백메서드로 OnRecvCompleted가 호출되는 형식이라고 이해를 했는데, void RegisterRecv(SocketAsyncEventArgs args) { args.AcceptSocket = null; bool pending = _socket.ReceiveAsync(args); //바로 성공했으면 if(pending == false) { OnRecvCompleted(null, args); } } 그렇다면, pending이 false인 경우에는 if(pending == false) { OnRecvCompleted(null, args); } 여기서 OnRecvCompleted() 호출되고 또 콜백메서드에서 또 한번 호출되는 것 아닌가요? 콜백메서드가 false인 경우에 2번호출되지 않는다는 것을 어떻게 이해하면 될까요?

  • unity
  • C#
  • network
jiw720 댓글 1 좋아요 0 조회수 365

SPI 관련 질문 있습니다

미해결

외워서 끝내는 네트워크 핵심이론 - 응용

SPI 와 DPI를 검색해보면, 가장 많이 나오는 spi는 stateful packet inspection입니다. 널널한 개발자님께서 말씀하신 spi는 shallow packet inspection을 말하시고, http 헤더까지만 보는 것이라고 하셨고, stateful packet inspection를 검색해보면, L1~3계층 까지 조사하는 것으로 ip 헤더까지만 조사하는 것으로 이해했습니다 shallow packet inspection와 stateful packet inspection는 다른거라고 생각하며 되나요? DPI는 L1~7까지 조사하는 것인데 모든 패킷을 검사하는 것이라고 생각하면 되나요?

  • network
suheonj95 댓글 2 좋아요 1 조회수 951

이미 구성된 토폴로지 그려보기

해결됨

20년 경력자의 알기 쉬운 컴퓨터네트워크

토폴로지 구성을 파악하려면 방법이 있을까요? 정말 유익한 강의 감사드립니다. 다름이 아니라 처음부터 토폴로지를 구성하는 것이 아닌, 이미 구성되어 있는(회사같은) End-Point 단말에서 ping 이나 tracert 같은 혹은 더 유용한 툴을 통해서 어떻게 토폴로지가 구성되어 있는지 파악하는건 가능할까요? 강의를 보고 ping 이나 tracert 를 해봐도 대부분 제대로 된 응답을 안주는 경우가 많아서 어떻게 구성되어 있는지 보이지가 않습니다. 도움말씀 부탁드립니다.

  • network
  • protocol
김태훈 댓글 1 좋아요 1 조회수 395

표준 헤더와 임의 헤더

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요 좋은 강의 잘 듣고 있습니다. 표준 헤더라는 것은 브라우저가 자동으로 넣어주는 것인가요? 예를 들어 백앤드에서 만든 api의 response의 헤더에는 사실 java/spring 기준으로. 'return new ResponseEntity(response, HttpStatus.OK)' 만 내보내줌에도 불구하고, 개발에 배포한 후 브라우저에서 f12로 개발자 도구로 확인하면 제가 넣지 않은 여러 헤더들(Origin, Host 등 다양한 값) 이 들어있더라구요. 표준헤더의 기준(몇 가지는 꼭 브라우저가 넣어준다 등) 은 어떻게 정하는 걸까요? 브라우저마다 다른가요? 미리 감사드립니다.

  • 네트워크
  • network
highjune 댓글 1 좋아요 0 조회수 550

POST 등록 후 Location 헤더

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요 좋은 강의 항상 잘 듣고 있습니다. 다름이 아니라, post에서 등록한 후 201, CREATE(또는 200, OK) response 에서 Location헤더 필더에 해당 리소스의 생성된 위치를 보여준다고 했는데요(ex /members/100) 꼭 실무적으로 그렇지 않고 개념, 이론적으로 그렇다는 것 맞을까요? 개발자가 직접 해당 소스의 위치 값을 response Header 의 Location 필드값에 넣어주는 것이요. 반드시 post api에서 자동적으로 내려주는 것은 아니라서 여쭤봅니다. 감사합니다.

  • 네트워크
  • network
highjune 댓글 1 좋아요 0 조회수 585

섹션 4 -> 그리디 , 결정문제 질문

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

안녕하세요! 강의 정말 잘 듣고 있습니다. 섹션 4를 풀다가, 어떤 문제를 그리디를 쓰고, 어떤문제를 결정알고리즘을 써야하는지 감이 잡히지 않아서 질문 드립니다. 답변해주시면 정말 감사하겠습니다!

  • 코테 준비 같이 해요!
  • 코딩-테스트
  • python
깨위 댓글 1 좋아요 0 조회수 268

환경설정 질문입니다

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

안녕하세요 선생님, 제가 새 프로젝트를 만들면서 이름과 위치를 정하고 다음으로 넘어갔더니 대상 프레임워크에 .NET Core 3.1 (지원하지 않음) 이라고 나옵니다. visualstudio installer에서 제가 보기에 c#에 관련된 것은 다 설치한 상태인데 더 설치해야 하는 것이 있는걸까요?

  • c#
  • unity
  • 네트워크
  • network
  • 환결설정
  • C#
김정현 댓글 2 좋아요 0 조회수 754

이 문제에서 궁금한게있습니다.

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

ch[i] != 0라서 if문을 탐색하지않는다면 L에 해당하는 dfs함수는 뭘 반환하는건가요?? 반환하는게 안보일때는 return이 생략됐다고 생각하는건가요?

  • 코딩-테스트
  • python
  • 코테 준비 같이 해요!
코딩코딩코딩코 댓글 1 좋아요 0 조회수 355

프로세스의 상태가 변경되는 경우에 Post 사용

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요 좋은 영상 항상 잘 보고 있습니다. 궁금한 점이 있습니다. 프로세스의 상태가 변경되는 경우 등에 post를 사용한다고 했습니다. 주문에서 결제완료 -> 배달시작 -> 배달완료 등 그런데 이런 과정에서 만약 requestBody에 내용이 필요없는 경우에(프로세스의 상태를 변경하는 경우에 그럴 경우 낮지만)도 만약 의미적으로 프로세스의 상태가 변경되는 경우라면 post를 사용하는 것이 맞을까요? 현업에서, 호출하는 동기화 api 를 batch로 작업한 적이 있었는데요. 주기적으로 엑셀을 읽어서 내용들을 DB에 동기화하는 작업이었습니다. 그런데 해당하는 Api를 호출할 때는 requestBody가 필요한 것이 아니었으므로 post로 만들었었는데요, 강의를 다시 들으면서 궁금해서 여쭤봅니다. requestBody 의 유무 등이 중요한 것이 아니라 의미적으로 다가가는 것이 더 맞겠죠?

  • 네트워크
  • network
highjune 댓글 1 좋아요 1 조회수 1834

로그인 폼을 만들고 로컬 스토리지에 jwt저장하기 강의에서 질문입니다!

해결됨

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

import React, { useState } from "react"; import { Card, Button, Form, Input, notification } from "antd"; import { useHistory } from "react-router-dom"; import Axios from "axios"; import { SmileOutlined, FrownOutlined } from "@ant-design/icons"; import useLocalStorage from "utils/useLocalStorage"; export default function Login() { const history = useHistory(); const [jwtAccessToken, setJwtAccessToken] = useLocalStorage( "jwtAccessToken", "" ); console.log("loaded Token: ", jwtAccessToken); // 왜 이게 두번이나 출력되는 것이지? const onFinish = (values) => { async function fn() { const { username, password } = values; const data = { username, password }; try { //응답을 꼭 받아야 한다. 토큰을 받아야 하니까 const response = await Axios.post( "http://127.0.0.1:8000/accounts/token/", data, { headers: { "Content-Type": "application/json" } } ); // const { data: token } = response; 이런 방식은 아래랑 다르다 response에서 data을 꺼내서 이름을 token이라 짓는 것 // const token = response.data 와 일치하며 밑에 녀석은 // const jwtAccessToken = response.data.access 과 일치한다 const { data: { access: jwtAccessToken }, } = response; setJwtAccessToken(jwtAccessToken); notification.open({ message: "로그인 성공!", icon: <SmileOutlined style={{ color: "#108ee9" }} />, }); // history.push("/accounts/login"); //TODO: 이동주소 } catch (error) { console.log(error); if (error.response) { notification.open({ message: "로그인 실패!", icon: <FrownOutlined style={{ color: "#ff3333" }} />, description: "아이디/암호를 확인해 주세요.", onClick: () => { console.log("Notification Clicked!"); }, }); } } } fn(); }; return ( <Card title="login"> <Form labelCol={{ span: 8 }} //부트스트랩은 한 행이 12 컬럼인데 antd는 24컬럼임 wrapperCol={{ span: 16 }} style={{ maxWidth: 600 }} onFinish={onFinish} autoComplete="off" > <Form.Item label="Username" name="username" rules={[{ required: true, message: "Please input your username!" }]} //rules을 통해 유효성검사로직이 들어가 잇다 > <Input /> </Form.Item> <Form.Item label="Password" name="password" rules={[ { required: true, message: "Please input your password!" }, { min: 5, message: "5자리 이상 해주세요" }, // 한글자 한글자 들어갈때마다 검사해준다. ]} > <Input.Password /> </Form.Item> {/* //8칸 이동하고 16칸을 쓰겠다 */} <Form.Item wrapperCol={{ offset: 8, span: 16 }}> <Button type="primary" htmlType="submit"> Submit </Button> </Form.Item> </Form> </Card> ); } 안녕하세요 강사님!! 위에서 15번째 줄에 있는 console.log("loaded Token: ", jwtAccessToken); 이 부분이 페이지의 콘솔창에서 두번이나 나타납니다... 왜 그런지 알 수 있을까요?? 새로고침을 했을때도 두번 나타나고 submit을 했을 때도 2번 출력됩니다. 아 ! 그리고 simplejwt토큰을 사용중 입니다!

  • docker
  • django
  • python
  • react
꺼넝 댓글 1 좋아요 0 조회수 714

인기 태그

인프런 TOP Writers

주간 인기글