묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
mybatis usegenerateKey
마이바티스로 제너레이트키를 활용해봤는데 의아한 점이 생겼어요 log.info("before board = {} , hashcode = {}",board, board.hashCode()); freeBoardRepository.save(board); log.info("after board = {} , hashcode = {} ",board, board.hashCode()); board 가 dao 인자로 들어갈 때를 기준으로 전 후 해시코드값을 비교해봤는데 동일하네요.. 이게 왜 의문이냐면 Board 객체의 필드는 final로 선언되어 있고 dao에 접근한 뒤, bno 값을 어떻게;; 넣게되었는지 setter가 없고 생성자도 없고 final 또한 지정되어있고 해시코드마저 동일하니 ㅠㅠ 아래가 객체 정의입니다 ㅠㅠ 도대체 어떻게 bno가 삽입된 걸 까요.. @Getter @Builder public class FreeBoard { private final int bno; private final String memberId; private final String tag; private final String title; private final String content; private final Timestamp regdate; private final int viewcnt; private final char showboard; }
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Bean Validation - HTTP 메시지 컨버터 강의 관련 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강사님이 진행하신 과정들 따라하고 포스트맨까지 정상적으로 돌려서 테스트 했습니다. 다만 ValidationItemApiController에서 ObjectError(수량 * 가격이 10000원 이상)를 검증해보고 싶은 욕심이 생겼습니다. 제가 기대한 결과로는 저희가 강의 중에 errors.properties에서 설정했던 아래 메세지가 응답 에러(bindingResult.getAllErrors())에 담겨 있는것이였습니다. totalPriceMin=전체 주문 가격은 {0}원 이상이어야 합니다. 현재 값은 {1}원입니다. 하지만 응답 값에는 위와 같은 메세지는 포함되어 있지 않았고 해당 object 에러에 대한 정보만 담겨 있었습니다. errors.properties의 totalPriceMin과 같이 설정된 값들을 HTTP 통신에서 사용할 수 있는 방법이 있을까요??
-
미해결배달앱 클론코딩 [with React Native]
재설치 에러
앞서 일러주신대로 foodDeliveryApp 폴더 지우고 제로초님 setting 파일 가져와 재설치를 진행해서 npm run android 를 입력하였을 때 해당 오류가 뜨며 진행이 안되네요,,, ㅠ
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
_ maxSessionCount 관련하여 질문드립니다.
안녕하세요 루키스님 강의 정말 잘 듣고있습니다. 처음에 제가 강의를 들으면서 이해한 바로는 _maxSessionCount가 서버에 허용 가능한 최대 세션의 갯수를 의미하는 값으로 생각을 했습니다. 그래서 아래와 같이 ServerService 객체를 생성하면서 마지막 인자값으로 10을 넣으면 최대 10개의 클라이언트가 접속가능하다고 생각했습니다. ServerServiceRef service = make_shared<ServerService>( NetAddress(L"127.0.0.1", 7777), make_shared<IocpCore>(), []() -> SessionRef { return make_shared<GameSession>(); }, // TODO : SessionManager 등 10); 하지만 Listener에서 maxSessionCount만큼 AcceptEvent를 생성하여 RegisterAccept를 해주고 const int32 acceptCount = _service->GetMaxSessionCount(); for (int32 i = 0; i < acceptCount; i++) { AcceptEvent* acceptEvent = new AcceptEvent(); acceptEvent->owner = shared_from_this(); _acceptEvents.push_back(acceptEvent); RegisterAccept(acceptEvent); } 그 뒤에 클라이언트가 접속하면 Listener에서 Dispatch하여 ProcessAccept를 실행하면 아래와 같이 미리 생성했던 Session에 정보를 업데이트하고 난 후에 다시 RegisterAccept를 해줍니다. void Listener::ProcessAccept(AcceptEvent* acceptEvent) { /* 생략 */ session->SetNetAddress(NetAddress(sockAddress)); session->ProcessConnect(); // session->OnRecv(); cout << "Client Connected " << session->_socket << endl; // TODO RegisterAccept(acceptEvent); } 이렇게 된다면 AcceptEvent가 재사용되어 또 Session을 만들어 다른 클라이언트의 접속을 받을 수 있게 되는데 그렇다면 무한정으로 Session을 받을 수 있다는 의미가 아닌지 궁금합니다. 실제로 ServerService의 _maxSessionCount보다 DummyClient의 _maxSessionCount를 더 크게 하여 실행했을 때, DummyClient 갯수만큼 세션을 생성하는 것을 확인했습니다. 즉 _maxSessionCount가 의미하는 것이 서버에서 최대로 허용하는 세션의 갯수가 아니라 서버가 한번에 Accept 처리할 수 있는 최대 세션의 갯수인 것인지 궁금합니다.
-
미해결파이썬 텍스트 분석 입문 - 데이터 수집부터 분석까지
문의드립니다
위와 같이 결과값이 다른데.. 뭐가 잘못된지 모르겠습니다ㅠㅠㅠㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
버전 질문입니다.
현재 버전이 3.0.0(SNAPSHOT) , 3.0.0(M4), 2.7.3(SNAPSHOT), 2.7.2 , 2.6.11(SNAPSHOT) , 2.6.10 이렇게만 있어서 강의 영상과는 다른데 (SNAPSHOT) 이 아닌 버전으로 하면 될까요?
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
드라이브 주소 문의
안녕하세요 강사님, 주소는 현재 강의 밑부분에 넣어주신다고 하셨는데 URL을 찾을 수가 없습니다. 다시 한 번 올려주시면 감사하겠습니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
집합 (sets) 부분
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 집합 변수를 list로 변환시켜 출력했을때 출력값이 이상하게 나오는데요 (원래 e와 값이 다름) 이게 맞는건가요? e = {'foo', 'bar', 'baz', 'foo', 'qux'} l2 = list(e) print(l2) = {'qux', 'bar', 'foo', 'baz'}
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
소스코드 정리된거 없나요?
소스코드만 따로 받을 수 없나요? 이때까지 강의를 정주행 하면서 느낀거지만 준비를 완벽히 하고 찍은거 같지 않아 동영상과 같이 해보면서 스킬을 늘리는데에 힘이 드네요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.=========================================[질문 템플릿]1.안녕하세여 핸들러 매핑이 사용할 컨트롤러를 찾는거고 핸들러 어댑터 목록을 찾는 것이 해당 컨트롤러의 비즈니스 로직(서비스)를 찾아 실행하는 것으로 이해해도될까요??
-
미해결실전 리액트 프로그래밍
http://localhost:3001/user/search?keyword=u 이걸로 데이터를 보는데 저는 사이트에 연결할 수 없다고 나오네요
이유를 알수 있을가요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
Postgresql
안녕하세요 강의 데이터베이스 부분을 하다 궁금한 것이 생겼는데요 혹시 sequelize로 mysql mariaDB sqlite postgresql등을 지원한다고 들었는데 sequelize로 postgresql연동을 하면 mysql과 그 방법이 크게 다를까요?,,pg를 다운받고 config.json에서 형식이 달라지나 해서요 좀 강의와 벗어난 질문이긴하지만 혹시 힌트라도 주실 수 있을까요?..!
-
미해결홍정모의 따라하며 배우는 C++
안녕하세요 교수님 이번 강의에 대한 문의를 드리려고 합니다.
안녕하세요~ 일단 질문하기에 앞서 교수님의 강의 정말 감사하며 잘 보고 있습니다. 제가 이번 강의를 들으면서 강의 내용에 의문점이 생겼습니다. 그래서 제가 생각한 방식을 말씀드리고 의견을 한번 여쭤보고 싶었습니다. 일단 5분 21초경에 복사생성자가 1번만 호출이 됩니다. 저는 여기서 dosomething이란 함수에서 class타입인 temp를 return해줄때는 왜 복사가 일어나지 않는지 궁금했습니다. 제가 생각한대로라면 복사생성자가 두번 호출되어야 하니까요. 그래서 디버거모드로 한번 돌려보았습니다. 그 결과 return을 해줄때 복사생성자가 호출된다는 것을 알게되었습니다. 그럼 왜 return값을 대입해줄때는 복사생성자가 호출되지 않았을까요? 생각해보았더니 return값이 rvalue라서 그런거 같다는 생각이 들었습니다. 그래서 만약 return값이 lvalue이면 해답을 알 수 있을 것 같아서 dosomething함수의 return 타입을 클래스 참조로 바꾸고 같은 조건으로 디버거 모드를 실행해보았습니다. 그 결과 함수 안에서 return할때는 복사가 일어나지 않았고(참조이기 때문에 당연하다 생각했습니다.) , result객체를 생성할 때(lvalue를 대입할 때) 복사 일어났습니다. 그래서 제 결론은 lvalue를 대입 할 때는 복사 생성자가 호출되지만 rvlaue를 대입 할 때는 함수의 return에서 이미 복사가 일어나고 변수에 그냥 대입 된다고 보았습니다. 여러번 생각해보았으나 이 과정 중에 제가 잘못 생각한 부분이 있는지 여쭤보고 싶습니다. 아직 부족한 점이 많아서 제 생각의 흐름에서 어디가 빵꾸났는지 알고 싶습니다. 긴 글 읽어주셔서 감사합니다.
-
미해결배달앱 클론코딩 [with React Native]
초기화 방법
안녕하세요. 강사님. 강사님께서 안내해주신 방법을 따라 하다보니 에러가 하나 둘씩 계속해서 나오더라구요... 해결하다 해결하다 안되겠어서 모두 삭제하고 초기화시켜 처음부터 다시 하고자 합니다.. 깔끔하게 삭제하려면 어떻게 해야될까요?
-
미해결iOS AutoLayout 완벽 가이드 - 실무 프로젝트를 위한 실전강의
키보드 Appear에 맞춰서 tableView의 마지막셀도 자연스레 올라가는 방법에 대하여
질문드립니다. 강의를 듣고 키보드가 나타남과 동시에 TableView의 마지막 Cell의 내용도 자연스레 올라가는 기능을 추가하려고 시도하였습니다. 여러가지 시도를 해본 결과, 키보드가 나타남과 함께 tableView의 frame자체는 위로 올라가지만, 마지막 cell의 내용이 표시되지 않았습니다. 이럴 때는 어떠한 코드작성이 필요로 되는 건지 여쭙고자 질문 드립니다! 시도해본 코드: inputCustomView --> textView와 send 버튼을 감싸고 있는 하단의 UIView self.chatTableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: height, right: 0) 결과: --> inputCustomView와의 constraint가 걸려있으므로 마지막 메세지와 inputView의 간격만 키보드 height만큼 넓어짐 self.chatTableView.frame.size.height -= height 결과: --> 잘 반영이 안됨.. self.chatTableView.bottomAnchor.constraint(equalTo: self.inputCustomView.topAnchor).isActive = true 결과: --> 아무련 변화가 없었음.
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
보안 세션을 위한 TLS 핸드셰이크에 해싱알고리즘의 용도
안녕하세요! 큰돌님 강의 잘 듣고있습니다. 해싱 알고리즘은 단방향 알고리즘으로 복호화가 불가능한 것으로 알고있는데, 데이터를 주고받기에 양방향 알고리즘이 필요한 보안 세션 생성 과정에서 복호화가 불가능한 해싱알고리즘의 용도가 궁금합니다! 또한 저는 지금까지 https가 키교환 시 중간자 공격에 대비해 비대칭키 암호화로 공통의 암호키를 생성하고 추후 데이터 통신에는 만들어진 암호키로 사용하는, 대칭키와 비대칭키를 적절히 혼합해 사용한다고 생각했는데 AES라는 대칭키 블록 방식의 암호화를 사용하네요.. 혹시 제가 잘못 알고 있는 부분이 어딜지 궁금합니다!!
-
미해결대세는 쿠버네티스 (초급~중급편)
Mac 사용자는 SCP 사용하셔서 인증서 가져오시고, 인증서 권한 풀어주세요
# 인증서 가져오기 sudo scp root@192.168.56.30:/root/client.p12 ./ # kubernetes-admin 더블클릭 하셔서 항상 신뢰하면 동작합니다
-
해결됨Slack 클론 코딩[실시간 채팅 with React]
회원가입을 누를 때 에러가 발생합니다.
백엔드는 정주행하면서 전부 완료한 상태이고, 그것을 바탕으로 프론트엔드를 만들고 있습니다만 회원가입에서 에러가 발생합니다. - front 관련 화면 - 백엔드 관련 에러 이러한 식으로 에러가 발생합니다. 제 생각에는 워크스페이스멤버를 추가할 때 에러가 발생하는 것 같은데, 정확한 에러 원인과 해결방법이 무엇인지 궁금합니다.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
transactionManager가 쓰이는 곳
안녕하세요. TestConfig에 등록한 transactionManager 빈을 필요로 하는 곳은 어디인가요?
-
해결됨[언리얼 시스템 연구 과정] UE5 스파르타 클래스: 심화편
컨트롤릭 제어
안녕하세요 또 질문입니다 처음 동영상 그대로 따라하니 포즈를 저장해서 뒤집어 사용할때 이상한 포즈가 나타납니다 (이 파일은 지운상태) 다시 한번 동영상을 따라해보다 l 부분을 컨트롤을 만들고 r을 미러로 만든 후 글로벌 트랜스폼을 복사하고 컴파일을 하면 복사 하기 이전으로 돌아가길래 r을 l만든것처럼 각각 복사해서 만들어도 안됩니다. (CR_MyMannequin_Body 파일) 그후 파일 복사해서 r파트 다 지우고 동영상 방법대로 다시 하려니 글로벌 트랜스폼을 복사하면 모양이 이상하게 뒤집어지고 마찬가지로 컴파일 하면 원래대로 돌아갑니다. (CR_MyMannequin_Body2파일) https://drive.google.com/file/d/1in5zyHBFDWbaoMcstK33DDkxoWPpVzP4/view?usp=sharing 무엇이 문제일까요ㅠㅠ 답변 항상 감사합니다