묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[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차 캐시에 없다는 것을 예상할 수 있을텐데 굳이 이 과정이 들어간 이유가 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DataSource 선언시 final
질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]JdbcMemberRepository에서 DataSource를 선언할 때에는 final를 붙여서 불변이 되게 하셨는데요 SpringConfig 클래스에서는 final를 안붙여 주셨는데 여기서도 생성자를 통해서 dataSource가 한번 초기화 되면 그 뒤로 변하지 않으니까 final을 붙여도 상관 없나요? 두 개의 클래스 파일에서 DataSource 선언시 final를 붙이고 안붙이고의 차이가 궁금합니다
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
결과가 HTML로 뜨고 user is not defined 라고 나타나시는 분들
강사님이 댓글에 답변을 달아주셨지만 그걸 해석하기가 너무 힘들어서... 저처럼 답변 한참 해석하시지 말라고 정리해둡니다 user가 없다고 뜨는 이유는 진짜 user를 못찾아서 입니다. (아마 vscode에서 못찾겠다고 이미 밑줄을 그었을거에요) user는 User.findOne 에서 실행되는 콜백함수의 인자인 user입니다. 그래서 반드시 User.findOne 스코프 안에서만 찾을 수 있습니다. 이 user는 언제 생기냐면, User.findOne로 해당 이메일을 가진 사용자가 있을 때 생깁니다. 이걸 받아와서 비밀번호 비교든, 토큰 생성이든 써먹으려면 이 안에 있어야겠죠. 이 오류가 뜬 분들은 아래처럼 구조가 되어있을거에요 User.findOne({ email: req.body.email }, (err, user) => { // 이메일로 찾기 }); user.comparePassword(req.body.password, (err, isMatch) => { // 이메일로 찾은 유저정보를 받아와서 비밀번호 비교 }); user.generateToken((err, user) => { // 이메일로 찾은 유저정보를 받아와서 토큰 생성 }); 이걸 아래처럼 바꿔주면 됩니다. 감싸주면 돼요 User.findOne({ email: req.body.email }, (err, user) => { // 이메일로 찾기 user.comparePassword(req.body.password, (err, isMatch) => { // 이메일로 찾은 유저정보를 받아와서 비밀번호 비교 }); user.generateToken((err, user) => { // 이메일로 찾은 유저정보를 받아와서 토큰 생성 }); }); 왜 저건 대문자 User이고 이건 소문자 user인거지? 생각했었는데 둘은 완전히 다른거에요..... 한시간동안 찾았네요.... 저처럼 고생하지 마시길....
-
미해결PHP 7+ 프로그래밍: 객체지향
Context에 대해서 궁금한게 있습니다
안녕하세요 궁금한게 있습니다 static::who메소드를 호출하는 부분에서 부모 Class 또는 자식 Class에 static::(임의의 메소드)가 없으면 부모 또는 자식에서 메소드를 찾는건가요? 왜냐하면 아래 코드 실행 결과가 이렇게 나왔습니다 string(5) "A Foo" string(5) "B Foo" string(1) "B" class A { public static function foo() { var_dump('A Foo'); static::who(); } public static function who() { var_dump(__CLASS__); } } class B extends A { public static function test() { self::foo(); } public static function who() { var_dump('B Foo'); var_dump(__CLASS__); } } $b = new B(); $b->test();