묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
http응답
[질문 내용]안녕하세요 김영한 개발자님. 강의를 듣다가 궁금한 점이 생겨서 질문 남겨요 강의 15:00쯤 그림에서 http 요청 메세지를 기반으로 request와 response객체를 만들어서 서블릿 컨테이너에 던져주고, response 객체 정보로 http 응답 생성한다고 하셨는데, 그럼 서블릿 컨테이너에 던져주기 전 response객체는 빈 객체인건가요? 감사합니다!
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
len()은 가로안에 문자열 , 문자열 변수.count 으로 쓰는데 어쩔때는 . 어쩔때는 ()안에 데이터를 넣는지 구분방법이랑 이유가 궁금해요
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 문자열 강의 중 12분 정도쯤부터 len()은 가로안에 문자열 , 문자열 변수.count 으로 쓰는데 어쩔때는 . 어쩔때는 ()안에 데이터를 넣는지 구분방법이랑 이유가 궁금해요
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
렌더 타겟에서 포지션 렌더 타겟의 색은 왜 이런가요?
선생님께서도 그렇고, 저도 그렇고 되게 이상한 색깔로 Position을 그리던데, 저렇게 4개의 색으로 나뉘어져서 띄워지는 이유는 뭔가요? Position이니까 x,y, z(rgb)가 좀 약간 그라데이션? 되듯이 띄워져야 할 것 같은데 그게 아니라서 여쭤봅니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
서버가 이상합니다
일단 패킷이 전송이 되고 받아지는거는 잘 되는데 값들이 빈 패킷들이 온다거나 뭐 게임 관련 패킷들은 다른 패킷이 온다거나 합니다. 근데 재밌는건 그 문제들을 해결하려고 브래이크 포인트를 잡고 디버깅하면 얘가 멀쩡해집니다. 그리고 한 번 정상 작동하면 계속 괜찮고요. 혹시 왜 이러는지 알 수 있을까요? 노트북으로 공부하고 있는데 혹시 그것 때문일까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문취소 getStockQuantity()
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]주문 취소 테스트에서 주문 취소 할 때 item 객체 자체의 stockQuantity는 수정하지 않고 orderService에서 cancel때 orderId를 사용해서 주문 조회할 때 item을 가져와서 stockQuantity를 증가시킵니다. 그런데 다시 item을 조회해 오지 않는 상태인데 영속성 컨텍스트에 저장된 객체를 사용하기 때문에 item 객체의 stockQuantity를 따로 직접 수정해주지 않아도 증가된 상태로 값이 유지되는 것인가요? 쉽게 말하면 item 객체는 따로 만지지 않았는데 item.getStockQuantity()할 때 재고 수량이 10으로 된 것이 영속성 캐시 때문인지 궁금합니다.
-
미해결C# OpenCV 컴퓨터비전 입문 강좌
코너검출 일정 부분검출이 가능한 것인가요?
혹시 포커카드와 같이 특정 문양과 숫자있는 부분만 코너 검출로 뽑아 낼 수 있는지 알고 싶습니다. 코너 검출이 특정 크기에 적용될 수 있는지 묻고싶습니다. 윤곽선 검출로 뽑아내야하는 건지 어떤 방식을 사용해야할지 감이 잡히지 않아서 질문드립니다.
-
해결됨[하루 10분|GA] Google Analytics(GA) 보고서 살펴보기
실수로 속성에 두 개의 웹사이트를 연동시켰습니다.
유익한 강의 잘 듣고 있습니다. ga로 이런저런 실습을 하던 와중 궁금한 점이 생겨 문의드립니다. 초반에 구글 애널리틱스의 위계를 잘 이해못하고 한 개의 속성에 웹사이트 두 개를 연동해버리는 실수를 했습니다. 그렇다면 두 개 중 하나의 웹사이트의 연동을 해지하면, 정상적으로 하나의 웹사이트만 추적하게 되나요? 혹시 이 질문을 보게 되신다면, 답변 남겨주시면 감사드리겠습니다 !
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
웹 브라우저 요청 흐름 강의 중 HTTP 메시지 전송 과정에서 질문이 있습니다!
강의와 다른 질문들을 참고하여 HTTP 메시지 전송 과정의 순서에 대해 제가 이해한 내용은 아래와 같습니다. 1. 웹 브라우저에서 HTTP 메시지를 생성한다. 2. 애플리케이션은 소켓 라이브러리를 사용하여 TCP/IP와의 연결을 지시한다. 3. TCP/IP 와 연결된 후 TCP 계층에서 3 way handshake를 진행하여 서버와 연결한다. 4. 서버와의 연결이 확인되면 TCP/IP 프로토콜로 데이터(HTTP 메시지)가 전달된다. 5. TCP/IP는 전달받은 HTTP 메시지에 TCP관련 정보와 IP관련 정보를 추가하여 TCP/IP 패킷을 생성한다. 6. 웹 브라우저는 요청 패킷을 인터넷 망에 던진다. 질문입니다! Q1. 제가 이해한 전체 과정이 맞나요? Q2. 3 way handshake를 진행하는 계층과 시점이 헷갈리는데요. 3 way handshake는 TCP/IP 연결 후에 TCP 계층에서 진행되는 것이 맞나요? (애플리케이션 계층에서 일어나는 게 아닌 거죠?) Q3. 3 way handshaking을 하는 이유는 요청 패킷을 서버로 던지기 위해서 서버와의 연결을 확인하기 위한 게 맞나요? Q4. 강사님께서 3 way handshake 진행 전 찾았다고 언급하신 IP와 PORT는 HTTP 요청 메시지 생성 전 URL을 통해 찾은 PORT와 DNS 서버를 통해 찾은 IP인 게 맞나요? Q5. TCP/IP 패킷 생성 시 담아지는 IP와 PORT도 HTTP 메시지 생성 전에 URL과 DNS 서버 조회를 통해 찾아낸 IP와 PORT인 건가요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
궁금사항 질문입니다.
Docker build 를 새로 할때마다 docker images 명령을 치면 repository에 <none> 이라는 그 이전 찌꺼기 같은 파일들이 남 게 되는 것 같은데 혹시 이 파일들을 자동으로 지워줄 수 있는 방 법이 있나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DataSourceUtils
커뮤니티에서 확인한대로 프로젝트를 닫고 buildgradle에서도 열어봤고 findById도 확인해 봤는데 계속 빨간 줄입니다,, package hello.hellospring.repository;import hello.hellospring.domain.Member;import org.springframework.jdbc.datasource.DataSourceUtils;import javax.sql.DataSource;import java.sql.*;import java.util.ArrayList;import java.util.List;import java.util.Optional;public class JdbcMemberRepository implements MemberRepository { private final DataSource dataSource; public JdbcMemberRepository(DataSource dataSource) { this.dataSource = dataSource; } @Override public Member save(Member member) { String sql = "insert into member(name) values(?)"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); pstmt.setString(1, member.getName()); pstmt.executeUpdate(); rs = pstmt.getGeneratedKeys(); if (rs.next()) { member.setId(rs.getLong(1)); } else { throw new SQLException("id 조회 실패"); } return member; } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } @Override public Optional<Member> findById(Long id) { String sql = "select * from member where id = ?"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setLong(1, id); rs = pstmt.executeQuery(); if(rs.next()) { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); return Optional.of(member); } else { return Optional.empty(); } } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } @Override public List<Member> findAll() { String sql = "select * from member"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); List<Member> members = new ArrayList<>(); while(rs.next()) { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); members.add(member); } return members; } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } @Override public Optional<Member> findByName(String name) { String sql = "select * from member where name = ?"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setString(1, name); rs = pstmt.executeQuery(); if(rs.next()) { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); return Optional.of(member); } return Optional.empty(); } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } private Connection getConnection() { return DataSourceUtils.getConnection(dataSource); } private void close(Connection conn, PreparedStatement pstmt, ResultSet rs) { try { if (rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (pstmt != null) { pstmt.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) { close(conn); } } catch (SQLException e) { e.printStackTrace(); } } private void close(Connection conn) throws SQLException { DataSourceUtils.releaseConnection(conn, dataSource); }}
-
미해결인터랙티브 웹 개발 제대로 시작하기
perspective 눈의 위치
눈의 위치에 따라 극적으로 보인다고 하셨는데. 눈의 위치는 어디에 있는 건가요 ..?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
a배열과 b배열의 값이 같을 때
안녕하세요 강사님 투포인터 - 공통원소 구하기 문제 if(a[p1] == b[p2]) 이 때 answer.add(a[p1++]); 만 해도 되지 않나요?! p2++; 를 꼭 해줘야 하는건지 궁금합니다
-
미해결[디퍼런테이션] PPT 제작의 필수 강의
강의 자료가 어디있을까요?
강의 듣다보면 공유한 자료 얘기하시는데 어디서 받는지를...알려주시면 감사하겠습니다..
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
궁금한 거 있어요
from os import link import requests from bs4 import BeautifulSoup response = requests.get("https://search.naver.com/search.naver?where=news&sm=tab_jum&query=%EC%8A%A4%EB%A7%88%ED%8A%B8%EC%8A%A4%ED%86%A0%EC%96%B4") html = response.text soup = BeautifulSoup(html,"html.parser") articles = soup.select("div.info_group") for article in articles: links = article.select("a.info") if len(links) >= 2: url = links[1].attrs['href'] print(url) links = articles.select에서 a.info가 a태그에서 class가 info로 시작하는 애들을 찾으라는 의미로 아는데 links에 들어있는 링크가 2개인데 하나는 info press 하나는 info 인데 info는 하나 아닌가요? 궁금해서.. 그리구 기본편 듣고 하고 있는데 어떻게 공부를 해야 될까요 효율적인 방법을 알고 싶습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
강사님 질문이 있습니다
현재 이강의를 보려는 목적이 인디게임개발쪽으로 쓸려고 하는데요, 제가 직접코드를 짜서 서버를 구성해보는게 좋나요 아님 강사님코드를 이용해서 제 게임에 적용하는게 좋을까요?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
상품의 상세정보가 출력이 안되는데, 이럴 경우 어떤 것이 문제인가요?
제목과 마찬가지로 상품의 상세정보가 출력되지 않습니다. 어떤 것이 문제일까요? 포스트맨의 url과 product/index.js의 urp 주소는 같습니다. 뿐만 아니라 축구공 페이지를 들어가도 오류가 뜨는데 index.js:14 Error: Network Error at createError (createError.js:16:1) at XMLHttpRequest.handleError (xhr.js:117:11)라는오류입니다. 어떤 문제인지 알 수 있을까요
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
업/다운 캐스팅 추가 질문입니다.
enum _itemType을 통해서, 해당 객체가 원래 무슨 객체였는지 파악하는 형태로 다운캐스팅을 하는 내용과 dynamic_cast를 통해 기존 객체 형태를 자동으로 파악해서 바꾸게 하는 것이랑은 무슨 차이가 있는건가요?
-
미해결[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]
Rest API 이해를 위한 웹기술 이해: GET 방식과 URL 강의에서
8:33초 내용을 입력했는데 404 페이지가 뜨네요... 다음 강의에서 test.html을 실행 시키고 dave, 111을 제출하면 {"auth":"success"}라고 잘나옵니다. cmd 창에서 왜 그럴까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
업캐스팅 후 다운캐스팅 과정 질문입니다.
안녕하세요 강사님! 자식에서 부모로 업캐스팅 한 경우, 자식 객체에서만 존재했던멤버 변수들은 그대로 남아있게 되는건가요?사실상 부모 포인터가 가리키게 되도록 캐스팅이 되니까, 부모가 가진 멤버 변수들 이외에 자식이 가지고 있던 주소들은다른 부분에서 쓰레기 값이라고 판단하고 마음대로 쓸 가능성이 있는건지 아닌 것인지 이 부분이 이해가 잘 안됩니다 ... 아직 헷갈리는 점이 많지만, 제가 이해한 바로는 ... ... 업캐스팅 된 이후에도 CRT 힙 매니저가 자식 객체를 가리키는 포인터 였을 때 가졌던 메모리 주소의 범위(?)를 기억하기 때문에, 부모 객체로 업캐스팅 된 이후에도 자식 객체가 사용했던 부분을 계속해서 기억하고 값을 유지하는 것일 것 같다는 생각이 듭니다... 혹시 이게 맞나요???
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
JPA 책의 병합 질문입니다!
영한님 항상 좋은 강의 잘 듣고 있습니다! 강의를 들으면서 JPA 책을 함께 공부하던 중 의문점이 생겼습니다. 3장 영속성 관리에서 준영속 상태가 되면 1차 캐시와 쓰기 지연 SQL 저장소에 있는 엔티티의 정보가 제거됩니다. 그런데 준영속 병합 과정에서 merge()를 실행하면 왜 1차 캐시에서 엔티티를 조회하는지 잘 이해가 되지 않습니다. 이미 준영속 상태이거나 비영속 상태이면 1차 캐시에 없다는 것을 예상할 수 있을텐데 굳이 이 과정이 들어간 이유가 있을까요?