묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
Followers & Followees 프로퍼티 생성
강의 2:30 쯤에서@ManyToMany(() => UserModels, (user) => user.followees) @JoinTable() followers: UserModel[]; @ManyToMany(() => UsersModel, (user) => user.followers) followees: UserModel[]; 위처럼 되어있는데요 .혹시 @ManyToMany(() => UserModels, (user) => user.followers) @JoinTable() followers: UserModel[]; @ManyToMany(() => UsersModel, (user) => user.followees) followees: UserModel[];이렇게가 아닌가요 ??
-
미해결딥러닝을 활용한 자연어 처리 (NLP) 과정 (기초부터 ChatGPT/생성 모델까지)
강사님 Tensorflow 실습코드 중 궁금한 점이 있습니다.
# 훈련 데이터셋에서 포르투갈어 및 영어 예제 출력 for pt_examples, en_examples in train_examples.batch(3).take(1): print('> 포르투갈어 예제:') for pt in pt_examples.numpy(): print(pt.decode('utf-8')) # 포르투갈어 문장 디코딩하여 출력 print() print('> 영어 예제:') for en in en_examples.numpy(): print(en.decode('utf-8')) # 영어 문장 디코딩하여 출력 =====> 위의 코드에 pt 와 en 이 어떻게 생성된 변수인지 잘 이해가 안 가서 여쭤봅니다.
-
미해결[하루 10분|GA] Google Analytics(GA) 보고서 살펴보기
최근 구글 애널리틱스 화면이 맞나요?
따라하려고 구글 애널리틱스 갔는데..티스토리 블로그 url 넣는 부분의 속성부분에서 화면이랑 다른것 같아요
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
payment
안녕하세요 거의 강의 다 들어가는데요 ~ 추천해주셔서 아마 패스트캠퍼스에서도 뵙게 될것 같은데결제에 대해서도 다뤄주시면 안될까요 ??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
혹시 현업에서도 예외 테스트 시, Assertions.assertThrows 를 많이 사용하나요?
@Test void 상품주문_재고수량초과() throws Exception { //given Member member = createMember(); Item item = createBook("시골 JPA", 10000, 10); int orderCount = 11; //when // orderService.order(member.getId(), item.getId(), orderCount); //then Assertions.assertThrows(NotEnoughStockException.class, () -> orderService.order(member.getId(), item.getId(), orderCount),"재고 수량 부족 예외가 발생해야 한다."); }Assertions.assertThrows 사용 시 파라미터 자체에 로직을 넣어줘야 해서, JUnit4 의 expected 옵션과 다르게 테스트의 when 항목을 적지 않아도 되는 상황이 발생하는 것 같아서요. 현업에서도 이 방식을 주로 사용하시나요?(+ 추가 질문)junit 과 assertj.core 라이브러리를 함께 쓰는 경우엔 이렇게 한 쪽을 지저분하게 쓸 수 밖엔 없나요? (isEqualTo와 assertThrows를 하나의 테스트 클래스에서 같이 쓰는 경우) @Test void 주문취소() throws Exception { //given Member member = createMember(); Book item = createBook("시골 JPA", 10000, 10); int orderCount = 2; Long orderId = orderService.order(member.getId(), item.getId(), orderCount); //when orderService.cancelOrder(orderId); //then Order getOrder = orderRepository.findOne(orderId); org.assertj.core.api.Assertions.assertThat(getOrder.getStatus()).isEqualTo(OrderStatus.CANCEL); org.assertj.core.api.Assertions.assertThat(item.getStockQuantity()).isEqualTo(10); }
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장 요청드립니다!
안녕하세요!해당 강의를 열심히 수강하면서 AWS 자격증 공부를 하고 있습니다!그런데 시험날짜가 다가오는데 아직 강의 수강을 완료하지 못했습니다 ㅠㅠ!혹시 수강기간을 연장해주실 수 있을까요?확인부탁드립니다! 감사합니다
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
Head 태그의 공통화 사용
MetaData 라는 컴포넌트를 만들어서Head태그를 공통화 시켜서 props로 title과 description, 그리고 image는 옵셔널로 받으려고 하는데각 페이지들의 렌더링 방식에 영향을 미치는지 궁금합니다!
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
몬스터 충돌판정
안녕하세요 강의를 보고 배운 서버와 dx11로 3d게임을 만들어 보고있습니다. 이동동기화 등은 잘 됬고 몬스터를 만들었는데 접속한 클라에서 모두 동일하게 로직이 돌아가야하니 몬스터의 로직은 서버에서 돌아가게 만들었습니다. 그런데 플레이어가 몬스터를 타격하면 타격한 플레이어가 타격했다는 패킷을 보내고 플레이어가 플레이어를 타격하면 피격당한 플레이어가 패킷을 보내는 식으로 했는데 투사체 같은경우 몬스터가 투사체를 맞았다 라는건 서버에서도 충돌체를 두고 몬스터가 검증을 해야할까요? 클라에서 판단하더라도 그러면 여러 클라가 있을경우 여러 클라가 다 맞았다는 패킷을 보낼것 같아 뇌가 꼬입니다...물론 방법이야 많겠지만 이부분 구현에 있어 감이 안잡혀 질문드립니다 ㅠㅠ
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
1비트 1바이트 1킬로바이트
넓고 얕게 외워서 컴공 전공자 되기외워야 할 단위 체계와 숫자 5분 2초 강의 내용이 이해가 안 가서 올립니다. 8bit = 1byte1024 byte = 1KB 까지 이해했습니다. 하지만 강의 내용에서 16bit가 64KB가 되는 건 이해가 전혀 가지 않습니다. 우선 위에 적은 내용에 따르면 64KB가 되기 위해선 8bit * 1024 * 64 = 524288bit = 65536byte가 되어야 64KB가 되는건데 왜 갑자기 16비트가 64KB가 되는거죠? 그리고 65536의 숫자가 64KB가 되려면 단위가 bit가 아니라 65536byte 가 되어야 64KB 아닌가요? 16비트는 65,536가지 (64KB)이다.가 아니라2^16바이트는 65,536byte (64KB)이다.가 되어야 하는 거 아닌가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
반례 질문 좀 드리고 싶습니다.
죄송합니다. 반례를 도저히 모르겠습니다.http://boj.kr/b03daff7be7b471091653480f1cd380f 도저히 모르겠어서 그냥 다시 짜서http://boj.kr/808e04c0dc7a48b4ba377150b039c7d7이렇게 하니 또 패스되더라구요. 둘의 차이를 전 모르겠습니다.... 한번 부탁드려도 될까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Web_view flutter 4.9.0을 설치후 에러
iOS 디바이스로 디버그 실행하면러 자꾸 위와같은 에러가 떠서 진행이 안되네요…왜 그럴까요?
-
미해결CloudNet@ - Amazon EKS 기본 강의
작업 노드에서 키 없이 어떻게 워커 노드 접속이 가능하죠?
원클릭 배포에서 작업 노드에서 Worker Node로 SSH 접속이 가능하던데 작업 노드가 별도의 private key를 가지고 있지 않는데 어떻게 가능한거죠?
-
미해결2시간으로 끝내는 코루틴
코루틴 dispatcher IO관련 질문
안녕하세요 강사님? 강의 잘 듣고 있습니다. 듣다보니 몇가지 궁금증이 생겨서 질문드립니다. 너무 쉬운 질문들도 있겠지만, 선생님의 답변을 통해 확신을 얻고 싶은 마음이 있어 질문드립니다 __)동기적 호출을 전제하는 동작, 예를 들 FeignClient기반의 호출을 다른 스레드(DISPATCHER.IO)에위임하지 않고 기존 스레드에서만 코루틴형태로 동작시키면, 이때에도 여전히 의도와 다르게 블락킹될 것 같은데 맞을까요? 강의에서 보여주신 예시중에 아래와같은 예시가 있는데, 이 경우에는 하나의 스레드만 사용하시는 것 같아 혹시나 하는 마음에 여쭤봅니다. // Async 사용 fun main(): Unit = runBlocking { val time = measureTimeMillis { val job1 = async { apiCall1() } val job2 = async { apiCall2() } printWithThread(job1.await() + job2.await()) } printWithThread("소요시간 : $time") } // 출력 결과 [main] 소요시간 : 1030 IO를 효율적으로 진행하기 위해서는 결국 Dispatcher I.O의 스레드들에게 위임해야 할 것 같은데그렇다면 애초부터 Dispatcher I.O의 스레드들은 ‘블락킹당해도 괜찮다’를 전제로 만들어진 스레드들(스레드풀)인걸까요?그러면 결론적으로 Dispatcher IO는 블락킹 당해도 괜찮을 수 있도록 어떤식으로 처리되어 있는 건지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 테스트 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 다음과 같은 에러가 발생합니다 이유가 궁금합니다
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
한글 커서 한 칸 앞으로 밀려서 쳐짐
인텔리제이 에디터에 영어를 칠 때는 괜찮은데 한글만 커서가 한 칸 앞으로 당겨져서 보이네요 ㅠㅠ진행하는데 큰 문제가 없긴 한데 너무 신경쓰여요😢 구글링이랑 스택오버플로우에 찾아봤는데 해결방법을 모르겠는데 혹시 같은 이슈가 있으신분 있으실까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 빌드
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]JDK은 21로 Gradle은 8.5로 맞췄는데요 gradlew build하면 BUILD FAILED가 뜨지만 localhost:8080은 잘작동합니다. 파일경로에는 한글포함안되어있고 gradlew clean build해도 동일한 오류가 발생합니다. 해당 오류가 왜 발생하는지 그냥 진행해도 되는지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
수업노트 관련 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.이번 수업노트의 아래부분에서 궁금한점이 있어서 질문드립니다.코드가 수정되었습니다.void go(int here){ if(here == n){라고 언급해주셨는데, 이 부분이만약 n이 3인 상황에 here == n 코드 기준으로위 사진 처럼go(1) -> go(2) -> go(3) 까지 호출되어서 go(3) 총 4번 호출되게 되는데요, 이러면 1번째 행과 2번째 행에대한 반전/비반전 경우의 수가 2*2 = 4만이 고려되었다고 생각합니다. 따라서 기존 코드인 here == n +1 을 기준으로 본다면go(1) -> go(2) -> go(3) -> go(4) 까지 호출되어서 go(4)가 총8번 호출되게 되는데요, 이래야 1,2,3(n = 3)행의 비반전/반전의 경우의 수인 2*2*2=8가지의 경우의 수가 고려된것이 아닌지 궁금합니다..
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
nodebird 프로필 수정 기능 구현 시, 에러가 발생했을 때 에러처리미들웨어에서 res.render('error')가 안되는 상황
프로필 수정 기능을 구현하기 위한 profileUpdate.html{% extends 'layout.html' %} {% block content %} <div class="timeline"> <form id="profile-update-form"> <!-- <div class="input-group"> <label for="join-email">이메일</label> <input id="join-email" type="email" name="email" /> </div> --> <div class="input-group"> <label for="join-nick">닉네임</label> <input id="join-nick" type="text" name="nick" /> </div> <div class="input-group"> <label for="join-password">비밀번호</label> <input id="join-password" type="password" name="password" /> </div> <button id="join-btn" type="submit" class="btn">수정</button> </form> </div> {% endblock %} {% block script %} <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> window.onload = () => { const errorParam = new URL(location.href).searchParams.get('error'); if (errorParam) { alert(errorParam); } }; if (document.getElementById('profile-update-form')) { document.addEventListener('submit', async (event) => { event.preventDefault(); const formData = new FormData(event.target); const config = { headers: { 'content-type': 'application/json', }, }; axios .put('/profile/update', formData, config) .then((res) => { alert('프로필 정보가 수정되었습니다.'); window.location.href = '/profile'; }) .catch((error) => { alert(error); }); }); } </script> {% endblock %} 그리고 controller/page.jsexports.renderProfileUpdate = (req, res, next) => { res.render('profileUpdate', { title: '내 정보 수정 - NodeBird' }); }; exports.profileUpdate = async (req, res, next) => { try { const { nick, password } = req.body; const id = req.user.id; const exUser = await User.findOne({ where: { id } }); if (!exUser) { throw new Error('존재하지 않는 사용자입니다.'); // res.status(404).send('no user'); } const sameNickUser = await User.findOne({ where: { nick, id: { [Op.ne]: exUser.id, }, }, }); if (sameNickUser) { throw new Error('중복된 닉네임입니다.'); // res.status(501).send('중복된 닉네임입니다.'); } const hash = await bcrypt.hash(password, 12); exUser.set({ nick, password: hash, }); await exUser.save(); res.status(201).send(); } catch (error) { console.error(error); next(error); } };app.js의 에러처리 미들웨어app.use((err, req, res, next) => { // 404 다음은 에러처리 미들웨어 console.error('에러는 ', err.message); res.locals.message = err.message; res.locals.error = process.env.NODE_ENV !== 'production' ? err : {}; // 보안상 위험(오히려 배포 시 사용자 화면에 에러를 숨김) // 에러를 로깅 서비스에 넘김 res.status(err.status | 500); res.render('error'); // views/error.html });일부러 중복된 닉네임을 넣어 라우터에서 에러를 발생시켰을 때, 에러처리미들웨어의 console.error('에러는 ', err.message); 부분에서 "Error: 중복된 닉네임입니다. at exports.profileUpdate (/nodestudy/nodebird/controllers/page.js:31:13) at process.processTicksAndRejections (node:internal/process/task_queues:95:5)에러는 중복된 닉네임입니다.PUT /profile/update 500 10.568 ms - 1862" 로 에러 메시지가 정상적으로 찍히는 것을 확인하였습니다.preview 탭에선 정상적으로 나오는 것 같은데, 실제 브라우저 화면에선 위와 같이 뜨면서 제가 원하는 에러 메시지('중복된 닉네임입니다')가 alert 창에 뜨지 않으며, error.html이 렌더링도 되지 않고 있습니다. 구글링해봐도 제가 잘 못한건지 이유를 못찾겠습니다🥲 제가 뭘 놓친걸까요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
typeof 와 GetType
DataTransformer.cs 에서ParseExcelDataToList 함수 안에 typeof와 GetType을 혼용해서 사용하시는 것을 보고 궁금해서 찾아보다가 질문드립니다. typeof의 경우에 컴파일 타임에 형식의 메타 데이터를 참고해서 Type 형식을 뱉어주고GetType의 경우에 인스턴스의 형식을 런타임에 가져오는 경우 사용하는 걸로 알고 있는데요.위 함수에서 typeof(LoaderData)를 통해 Type을 가져오더라구요. 이 경우에 제네릭 타입 매개변수는 컴파일 시점에 정확한 형식을 모르기 때문에 GetType을 사용하는 것이 적절하지 않을까요?
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
태그 관련 질문
imageview나 layout 등 태그를 만들면 자동으로 닫히는 태그가 안생기는데 어떻게 하신건가요???