묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션 쿠키(브라우저 종료 시 세션 삭제)
안녕하세요. 영한님 강의 잘 듣고 있습니다. 세션 쿠키에 대해서 질문드리고 싶습니다. 강의에서 세션 쿠키는 클라이언트의 브라우저 종료 시까지만 유지된다고 설명해주셨는데요. 그럼 클라이언트가 브라우저를 종료하면 서버 쪽에서도 이 쿠키 값을 메모리에서 삭제하는 건가요? 만약 그렇다면 서버는 클라이언트의 브라우저 종료 시점을 어떻게 알고 있는 건가요? (HTTP 통신은 stateless해서 한 번 통신하고 클라이언트의 상태를 저장하지 않기에 세션이라는 개념이 나온 걸로 저는 이해하고 있습니다. 브라우저가 종료할 때, 현재 열려있는 탭의 서버에 종료한다는 메시지라도 보내는 걸까요?)
-
미해결Svelte.js SPA 영화 검색 프로젝트
axios 요청 시 y 파라미터가 빈 값인 경우 에러가 발생합니다
안녕하세요. 강의 잘 듣고 있습니다. store/movie.js에서 axios.get를 사용해 api request 시에 y파라미터 값으로 year를 전달하게 되는데요.(강의 6:40 ~ 부분) Search 컴포넌트에서 All years 옵션 선택 시 빈 스트링 값인 ""이 value로 전달되고, &y=""로 요청이 되게 되는데 OMDb API가 변경되었는지 해당 요청에 대해 401 에러를 반환합니다.(이유는 모르겠지만 API Key가 정상임에도 에러 메시지가 Invalid API Key Error네요.) const res = await axios.get(`https://www.omdbapi.com/?apikey=${OMDB_API_KEY}&s=${title}&type=${type}${year ? `&y=${year}`: ""}`) 위와 같이 year 값이 존재하는 경우에만 y파라미터를 사용하도록 변경하니 잘 작동하는데요. 원인이 정확하지 않아 확인 차 여쭤봅니다. 그리고 위와 같이 값 존재 여부에 따라 파라미터를 선택적으로 넘겨주고 싶을 때 저렇게 코딩하는게 맞나요...?(좀 더 좋은 방식이 있는지 궁금합니다)
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
Gunicorn container의 state 가 계속 stop 됩니다
매번 좋은 강의 감사드립니다! gunicorn container가 계속 stop 되고 8080번 포트로 연결하면 찾을 수 없는 사이트라고 나옵니다..! start 버튼을 눌러도 잠깐 동안만 실행되고 자동으로 다시 stop 됩니다ㅠㅠ status 는 Stopped for a few seconds with exit code 3 이렇게 나옵니다! exit 3 은 구글링으로 잘 안나오는 것 같아서 질문드립니다! 감사합니다!
-
미해결타입스크립트 입문 - 기초부터 실전까지
union 타입 반환에 대해서 질문합니다
타입 가드 쪽 강의를 살펴보다 질문이 생겼습니다. interface Developer { name: string; skill: string; } interface Person_ { name: string; age: number; } function introduce(): Developer | Person_ { return {name: "tony",age: 33, skill: "ts"}; // } 유니온 타입을 사용하면 Developer와 Person_의 공통 속성인 name에만 접근할 수 있는 걸로 알고 있었는데, 반환값을 코드와 같이 작성하면 세 속성 전부를 반환할 수 있는 이유가 무엇인지 궁금합니다.
-
미해결태블로를 활용한 시간 데이터 시각화
라인차트 매개변수활용한 성장률 표시
올려주신 강의 정주행 하고 있습니다..^^ 라인차트 매개변수 활용한 시각화부분을 실습해 보다가 궁금한 부분이 있어서 글 드려요... 성장률 DELATA값을 만들어서 넣어 보았는데..아래와 같이 선의 양쪽에 동일하게 표시되네요.. 이것을 강의 예제 파일처럼.. 매출은 양쪽 모두 표시되고...성장률은 오른쪽 끝에만 표시되게 하려면 어떻게 해야하는지 문의 드립니다..
-
미해결실전! 스프링 데이터 JPA
Slice
안녕하세요 영한님 감사합니다 PageRequest pageRequest = PageRequest.of(0, 3, Sort.by(Sort.Direction.DESC, "username")); Slice<Member> page = memberRepository.findByAge(age,pageRequest); ------------------------------------------------------- 결과: select member0_.member_id as member_i1_0_, member0_.age as age2_0_, member0_.team_id as team_id4_0_, member0_.username as username3_0_ from member member0_ where member0_.age=? order by member0_.username desc limit 4 ======================================== 질문 1. limit4 로 DB 를 쿼리를 날리는데 그런데 콘솔에서 데이터를 찍어보면 member=Member(id=5, username=member5, age=10) member=Member(id=4, username=member4, age=10) member=Member(id=3, username=member3, age=10) 이렇게 3건이 나오는데 중간에 JPA가 DB의 쿼리문과는 다르게 중간에 변환을 시켜주는것인가요 ? 질문 2 Slice 는 다음페이지 여부를 위해 Slice (count X) 추가로 limit + 1을 조회하는데, 이전에 페이징에서 사용한 page.hasNext(); 이 메서드를 쓰면 되는거 아닌가요? ? [(totalcount) 를 가져오지 않아서 성능상 유리해서 사용하는것인가요 ?]
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
FrameworkServlet.service와 DispatcherServlet.doDispath의 차이가 무엇인가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 이전 강의에서의 Frontcontroller.service와 DispatcherServlet.doDispath의 기능이 같은데, 그럼, FrameworkServlet.service은 왜 같이 호출되는 건가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
1XX 상태 코드
다음과 같은 상황에서는 HTTP 로 어떻게 해결하는지 궁금합니다. 파일 업로드 -> 서버 내 작업 (ex. STT, 인코딩 등) -> 작업 결과 반환 서비스 중 서버에서 처리하는 작업이 몇 초 내로 끝나지 않는 작업이 있어서 progress bar 형태로 진행 상황을 제공하려 합니다. 이런 경우 다른 해결 방법을 사용하는지, 1XX 코드를 사용하는 적절한 예인지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
로컬 이미지를 불러오려고 합니다.
로컬 이미지를 html에서 바로 경로를 잡아서 출력하려고 합니다. 문제는 <img src="/Users/2jaebbang/Desktop/qr/qrcode.png"> 이렇게 하면 경로를 인식을 못하는지 출력이 안됩니다. 참고로 macOs입니다. 검색을 해보니 Server.xml 파일에 <Context path="/img" reloadable="true" docBase="지정한 폴더 절대 경로"/> 을 넣고 servlet-context파일에 <resources mapping="/resources/**" location="/resources/" /> <resources mapping="/img/**" location="지정한 업로드 폴더 절대경로" /> 이러한 코드를 넣으라고 나오는데 저는 application.yml 파일만 존재합니다. yml 파일에서도 위의 코드들이 삽입 가능한지 궁금합니다. 만약 안된다면 위의 xml파일을 어떻게 생성하는지 궁금합니다.
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
dist폴더에 대해서
강의내용과는 좀 무관하지만 궁금한게 있어서 질문드립니다. package.json과 같은 경로에 있는 dist폴더의 역할은 뭔가요? 제 생각엔 캐시의 용도이거나 빌드를 하게 되면 dist폴더에 ts를 js로 변환시키고 변환시킨 코드를 실행하는 것 같은데 그렇게 이해해도 될까요? 이런 질문을 드린 이유는 코드를 변경하고 요청을 보냈지만 변경한 코드가 적용되지 않아서 확인해 봤더니 dist의 js파일이 변경되지 않았더라구요. dist폴더를 지우고 다시 start를 하니까 dist폴더가 만들어지면서 해결은 됐습니다. 캐시의 용도라면 dist폴더를 지우는 방법말고 명령어를 통한 캐시 삭제 방법이 있는지 궁금합니다.
-
미해결[구버전] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정 (2020 ver.)
intellij 자동 완성 기능 문의
안녕하세요? pom.xml 파일에 dependency를 추가할 때 아래 화면 처럼 groupId에 입력 시 artifactId까지 보이는데(그림1), 제가 사용하고 있는 intellij에서는 groupId까지만 보입니다(그림2). 설정하는 부분이 따로 있는건가요? 그림1 그림2
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
onRemovePost 함수 호출시 계속 같은 아이디가 나옵니다.
데브툴스로 리덕스 확인해봐도 배열로 쭈욱 포스트가 잘 들어가 있는데 삭제버튼만 누르면 post.id가 즉 함수안에서 프롭스를 쓰는 그 부분이 콘솔을 찍어봐도 첫번째꺼 id:1만 가져오네요 ㅜㅜ
-
미해결모의해킹 실무자가 알려주는, 파일 업로드 취약점 공격 기법과 실무 사례 분석 : PART 1
%00 사용하면 오류 발생
<? header("Content-Type: text/html; charset=UTF-8"); $gubun = $_GET["gubun"]; if(empty($_FILES["userfile"]["name"])){#클라이언트에 존재하는 파일의 원래 이름 echo "<script>alert('파일을 업로드 하세요!');history.back(-1);</script>"; exit(); } $path = "./upload/"; $filename = $gubun."_".$_FILES["userfile"]["name"];#서버에 저장된 업로드된 파일의 임시 파일 이름 $file_info = pathinfo($path.$filename); $ext = strtolower($file_info["extension"]); $ext_arr = array("php", "html", ""); if(in_array($ext, $ext_arr)){#파일 이름에 "php", "php3", "php5", "html", "htm" 확장자가 포함되어 있으면 예외처리(블랙리스트) echo "<script>alert('허용되지 않은 확장자 입니다1.');history.back(-1);</script>"; exit(); } if(!move_uploaded_file($_FILES["userfile"]["tmp_name"], $path.$filename)){#$_FILES["userfile"]["tmp_name"](서버에 저장된 임시 파일)을 $path.$filename(업로드될 경로:upload/$filename)에 저장 echo "<script>alert('파일 업로드에 실패하였습니다.');history.back(-1);</script>"; exit(); } ?> <li>업로드 성공 : <?=$path.$filename?></li> ------------------------------------------------------------------------------------------------------------ POST /null_ex1/upload.php?gubun=aa.php%00 HTTP/1.1 Host: 127.0.0.1:81 Content-Length: 1588436 Cache-Control: max-age=0 sec-ch-ua: "Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92" sec-ch-ua-mobile: ?0 Upgrade-Insecure-Requests: 1 Origin: http://127.0.0.1:81 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryFJAvtYdjVBOAe0Td User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Sec-Fetch-Site: same-origin Sec-Fetch-Mode: navigate Sec-Fetch-User: ?1 Sec-Fetch-Dest: document Referer: http://127.0.0.1:81/null_ex1/index.php Accept-Encoding: gzip, deflate Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7 Connection: close ------WebKitFormBoundaryFJAvtYdjVBOAe0Td Content-Disposition: form-data; name="userfile"; filename="test.jpg" Content-Type: image/jpeg --------------------------------------------------------------------------------------------------------------- HTTP/1.1 200 OK Date: Fri, 27 Aug 2021 15:23:45 GMT Server: Apache X-Frame-Options: SAMEORIGIN X-Powered-By: PHP/7.4.7 Vary: Accept-Encoding Content-Length: 282 Connection: close Content-Type: text/html; charset=UTF-8 <br /> <b>Warning</b>: move_uploaded_file() expects parameter 2 to be a valid path, string given in <b>C:\Bitnami\wampstack-7.4.7-0\apache2\htdocs\null_ex1\upload.php</b> on line <b>25</b><br /> <script>alert('파일 업로드에 실패하였습니다.');history.back(-1);</script>
-
미해결웹 게임을 만들며 배우는 Vue
Vue 가 import from 목록에 나오지를 않습니다.
현재 숫자야구를 보고 있는데요. Vue를 import하려고 아무리해도 안나오네요. 뭔가 이유라도 있는건가요? 목록 안나와서 이리저리 해보다가 끝에 .vue 로 하니 되더라구요... 문제 없는건가요??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
지연로딩관련 질문드립니다.
안녕하세요!! 지연로딩 질문이 생겨서 질문드립니다. 연관관계의 주인이 아니며 OneToOne (mappedBy = "@@@", fetch = FetchType.LAZY) 이렇게 설정되어있는 객체가 있습니다. LAZY로 설정되어있어서 해당 부분만 em.find 로 찾아보아도, 연관관계주인의 테이블까지 join 하는 쿼리가 같이 나가네요. 혹시 mappedBy 되어있는경우 LAZY옵션사용이 불가능한가요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
숙제 검사
안녕하세요 선생님 숙제로 내신 의도에 맞는지 궁금합니다 import java.util.*; public class Main{ static int[] ch; static int n, m; static int[][] mat; static int[] vertexLevel; Queue<Integer> Q = new LinkedList<>(); public static void main(String args[]) { Main T = new Main(); Scanner kb = new Scanner(System.in); n = kb.nextInt(); m = kb.nextInt(); ch = new int[n + 1]; mat = new int[n + 1][n + 1]; for (int i = 1; i <= m; i++) { int a = kb.nextInt(); int b = kb.nextInt(); mat[a][b] = 1; } vertexLevel = new int[n + 1]; T.Solution(); for (int i = 2; i <= n; i++) { System.out.println(i + " : " + vertexLevel[i]); } } private void Solution() { int level = 0; Q.offer(1); ch[1] = 1; while (!Q.isEmpty()) { int size = Q.size(); for (int i = 0; i < size; i++) { // 큐 안의 개수만큼 int x = Q.poll(); vertexLevel[x] = level; for (int j = 1; j <= n; j++) { if (ch[j] == 0 && mat[x][j] == 1) { ch[j] = 1; Q.offer(j); } } } level++; } } }
-
미해결유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
엑셀 파일의 마지막 줄
이 마지막 줄이 필요한 이유를 알 수 있을까요? 혹시나 해서 마지막 줄을 지우고 코드에서도 마지막 줄을 무시하는 코드를 삭제해서 적용을 해봐도 잘 되는데 어떤 이유로 마지막의 빈줄을 넣어야 하는건가요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘
객체를 다른 객체로 매개변수로 넘길 때
강사님 안녕하세요. 클래스 설계에 관해서 궁금한게 있어서 문의드립니다. bfs나 에이스타 프로젝트에서 board의 객체를 Maze의 init 함수에서 Player에게 call by Address 타입으로 넘기고 있는데요. 레퍼런스로 넘길수도 있지 않나요? 제 생각에는 Player클래스헤더에 레퍼런스 타입으로 멤버변수로 만들고, 생성자에서 이니셜라이저로 받을수 있다면 레퍼런스 타입도 가능하지 않을까란? 생각을 하고 있는데, 왜 Call by address로 넘겼는지 알고 싶습니다. 생성자에서 받기에는 서로 참조하기에 복잡해서 그런건가요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
실행 시 결과창에서 한글이 번역이 안돼서 출력돼요
한글이 번역이 안되고 이런식으로 뜹니다. 어떻게 해결할 수 있나요?
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
안녕하세요 잘되지않는 부분이있어서 질문드립니다!
댓글을 최신순으로 하기 위해서 comment모델에 class Meta 를 추가해서 최신순으로 댓글이나오게 했습니다 그런데 댓글 2개이상쓰면.... 이렇게 이상하게 나옵니다..ㅠ comment에 detail페이지입니다 근데 추가한 코드가 class Meta: 밖에 없는데 왜 갑자기 이렇게된걸까요...