묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 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();
-
미해결
Yolov5 모델을 인터넷 없이 사용하는 방법
안녕하세요? 선생님 개발한 YOLOv5 모델을 하드에 저장한 후 불러와서 사용하려고 합니다. 튜토리얼에 따라 다음과 같이 하면 되지만, 이 경우 인터넷 접속이 되어 있어야 합니다. model = torch.hub.load('ultralytics/yolov5', 'custom', path='mybest.pt') 그래서 GitHub 사용하지 않게 다음과 같이 수정했습니다. model=torch.hub.load('yolov5', 'custom', path='mybest.pt', source='local') 그런데, 이렇게 하면 속도가 1/3로 줄어드는 현상이 나타났습니다. 인터넷 없이, 속도는 유지하면서 추론하는 방법은 없을까요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
DirectXTex 관련 질문드립니다!
버전에 맞게 소스코드 빌드해서 따라해서 붙여넣었는데 filesystem과 DirectXTex.h 와 inl을 열수 없다는데 왜이러는건가요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
DMList 소켓 연결 중에 타입스크립트 에러
const DMList: FC = () => { const { workspace } = useParams<{ workspace?: string }>(); const { data: userData, error, revalidate, mutate, } = useSWR<IUser>("/api/users", fetcher, { dedupingInterval: 2000, // 2초 }); const { data: memberData } = useSWR<IUserWithOnline[]>( userData ? `/api/workspaces/${workspace}/members` : null, fetcher ); const [socket] = useSocket(workspace); const [channelCollapse, setChannelCollapse] = useState(false); const [countList, setCountList] = useState<{ [key: string]: number }>({}); const [onlineList, setOnlineList] = useState<number[]>([]); useSocket(workspace)에서 TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. 에러가 뜨는데 workspace?: string으로 명시해주었는데 왜 이런 에러가 발생하는건가요? 깃허브에서 똑같이 코드를 가져왔는데도 같은 에러가 발생해서 어떤 점이 문제인지 도무지 알 수가 없어 여쭈어봅니다..ㅠㅠㅠ
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
강의 3.4 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의 3.4에서 images1.type()이 torch.FloatTensor인데 언제 MyDataset클래스의 __getitem__함수가 호출되는 건지 궁금합니다. dataiter1.next()인가요..?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
강사님 커리큘럼 질문입니다.
현재 C# Part1~3까지 듣고 게임서버를 들으면서 1:1 로 대결을 할 수 있게 게임을 공부겸으로 C# && 유니티로 만들고 있습니다. 그런데 혼자 공부하다 보니 제가 어디로 가고있는지 방향은 어느정도 맞는지 잘 몰라서 찾아보다가 강사님 강의중에 "게임프로그래머 취업전략 가이드"라는 강의를 듣고있는데 저는 취업이 목적인데(물론 최종 목표는 정말 재밌는 RPG 게임을 만드는 것이 목표입니다 누구에게나 재밌다고 인정 받을 만한 게임이용..ㅎㅎ;) 현재 C#으로 게임을 만들고있습니다. 저는 강사님 말대로 "클라" "서버" 둘다 공부하는것이 좋다고 생각하고 저한테도 도움이 될거 같아서 둘 다 공부를 목적으로 하고있습니다.(22학년도 부터 대학교 3학년입니다) 그래서 강사님 강의가 저한테는 잘맞아서 언리얼로 빨리 실력을 쌓고 싶어서 생각한 저만의 커리가 1. part4까지만 듣고 "c++ 훑어보기" , "언리얼 엔진4 입문" -> "c++과 언리얼로 만드는 MMORPG" 시리즈 듣기 + 현재 만들고 있던 게임은 만들기 2. 현재 강의 시리즈(C#) part4 게임서버 마저듣고 part5~7? 까지 다듣고 "c++ 훑어보기" , "언리얼 엔진4 입문" -> "c++과 언리얼로 만드는 MMORPG" 시리즈를 듣는것 둘중에 어떤 커리가 클라+서버를 공부하는데 효율적일까요..?? (저는 물론 취업을 할 때 클라쪽으로 먼저 가고싶고 클라쪽에 조금더 관심이 많습니다) 둘다 강의 커리가 조금 이상하시다면 다른 추천? 할만한 커리가 있을까요??(강사님 강의중에) 조언을 조금 받을 수 있다면 정말 정말 감사하겠습니다 :)
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헙권한 부탁드립니다.
handinart@naver.com 입니다.