묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Quaternion.Slerp 적용하면 유니티 짱이 20~30도 쓰러져요.
화면 클릭해서 이동시 transform.LookAt(_destPos); 위 코드 대신부드럽게 회전하기 -- 아래 코드로 하면 마지막 멈출때 유니티 짱이 쓰러짐. ㅜㅜtransform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(dir), 5 * Time.deltaTime); //t는 회전 속도 trasform.LookAt(_destPos)일때는 쓰러지지 않습니다.
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
<!DOCTYPE html> 없어도 상관없나요?ㅠㅠ
e유형 중인데html 제일 윗부분<!DOCTYPE html>이걸 넣으면 slide 사진이 사라지고 footer가 올라오고저것만 없애면 완벽하게 잘 작동하는데없애도 상관없나요? 시험때도 상관없을까요?
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
주문하기 클릭 시 Order 생성 안 되고 500에러가 뜹니다.
질문 내용주문 시 계속해서 주문에 실패했다고 떠서, 무엇이 문제이지 하고 봤는데, Status 500 에러가 던져집니다.그래서 서버 쪽 로그를 봤는데, 서버에서 이런 Exception이 던져지고 있습니다.[Nest] 63134 - 2023. 08. 13. 오전 2:35:36 ERROR [ExceptionsHandler] Cannot read properties of undefined (reading 'restaurant') TypeError: Cannot read properties of undefined (reading 'restaurant') at OrderService.postOrder (/Users/nx006/Documents/vscode/flutter-lv2-server/src/order/order.service.ts:36:8) at OrderController.postOrder (/Users/nx006/Documents/vscode/flutter-lv2-server/src/order/order.controller.ts:63:30) at /Users/nx006/Documents/vscode/flutter-lv2-server/node_modules/@nestjs/core/router/router-execution-context.js:38:29 at processTicksAndRejections (node:internal/process/task_queues:95:5) 'restaurant' 속성을 읽지 못한다는 게 무슨 말일까요? 애초에 Request Body에 Restaurant 속성 자체가 없는데, 400 에러도 아니고 왜 이런 에러가 서버 쪽에서 나는 지 모르겠습니다.코드 전문일단은, 현재 PostBody와 Response Body에 대한 모델입니다:// ignore_for_file: invalid_annotation_target /// order_model.dart import 'package:delivery_app/common/model/model_with_id.dart'; import 'package:delivery_app/common/utils/data_utils.dart'; import 'package:delivery_app/restaurant/model/restaurant_model.dart'; import 'package:flutter/foundation.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; part 'order_model.freezed.dart'; part 'order_model.g.dart'; @freezed class OrderProductModel with _$OrderProductModel { factory OrderProductModel({ required String id, required String name, required String detail, @JsonKey(fromJson: DataUtils.pathToUrl) required String imgUrl, required int price, }) = _OrderProductModel; factory OrderProductModel.fromJson(Map<String, dynamic> json) => _$OrderProductModelFromJson(json); } @freezed class OrderProductAndCountModel with _$OrderProductAndCountModel { factory OrderProductAndCountModel({ required OrderProductModel product, required int count, }) = _OrderProductAndCount; factory OrderProductAndCountModel.fromJson(Map<String, dynamic> json) => _$OrderProductAndCountModelFromJson(json); } @freezed class OrderModel with _$OrderModel implements IModelWithId { factory OrderModel({ required String id, required RestaurantModel restaurant, required List<OrderProductAndCountModel> products, required int totalPrice, @JsonKey(fromJson: DataUtils.stringToDateTime) required DateTime createdAt, }) = _OrderModel; factory OrderModel.fromJson(Map<String, dynamic> json) => _$OrderModelFromJson(json); } /// post_order_body.dart import 'package:freezed_annotation/freezed_annotation.dart'; part 'post_order_body.freezed.dart'; part 'post_order_body.g.dart'; @freezed class PostOrderBody with _$PostOrderBody { const factory PostOrderBody({ required String id, required List<PostOrderBodyProduct> products, required int totalPrice, required String createdAt, }) = _PostOrderBody; factory PostOrderBody.fromJson(Map<String, dynamic> json) => _$PostOrderBodyFromJson(json); } @freezed class PostOrderBodyProduct with _$PostOrderBodyProduct { const factory PostOrderBodyProduct({ required String id, required int count, }) = _PostOrderBodyProduct; factory PostOrderBodyProduct.fromJson(Map<String, dynamic> json) => _$PostOrderBodyProductFromJson(json); } 그리고 다음은 Repository 코드입니다./// order_provider.dart import 'package:delivery_app/common/const/data.dart'; import 'package:delivery_app/common/dio/dio.dart'; import 'package:delivery_app/order/model/order_model.dart'; import 'package:delivery_app/order/model/post_order_body.dart'; import 'package:dio/dio.dart' hide Headers; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:retrofit/retrofit.dart'; part 'order_repository.g.dart'; final orderRepositoryProvider = Provider((ref) { final dio = ref.watch(dioProvider); return OrderRepository(dio, baseUrl: 'http://$ip/order'); }); // baseUrl : http://$ip/order @RestApi() abstract class OrderRepository { factory OrderRepository(Dio dio, {String baseUrl}) = _OrderRepository; @POST('/') @Headers({'accessToken': 'true'}) Future<OrderModel> postOrder({ @Body() required PostOrderBody body, }); } 다음은 Provider 입니다./// order_provider.dart // ignore_for_file: public_member_api_docs, sort_constructors_first import 'package:delivery_app/order/model/post_order_body.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:uuid/uuid.dart'; import 'package:delivery_app/order/model/order_model.dart'; import 'package:delivery_app/order/repository/order_repository.dart'; import 'package:delivery_app/user/provider/basket_provider.dart'; final orderProvider = StateNotifierProvider<OrderStateNotifier, List<OrderModel>>( (ref) => OrderStateNotifier( ref: ref, repository: ref.watch(orderRepositoryProvider), )); class OrderStateNotifier extends StateNotifier<List<OrderModel>> { final Ref ref; final OrderRepository repository; OrderStateNotifier({ required this.ref, required this.repository, }) : super([]); Future<bool> postOrder() async { const uuid = Uuid(); final id = uuid.v4(); final state = ref.read(basketProvider); try { await repository.postOrder( body: PostOrderBody( id: id, products: state .map((e) => PostOrderBodyProduct( id: e.product.id, count: e.count, )) .toList(), totalPrice: state.fold<int>( 0, (previousValue, element) => previousValue + element.product.price * element.count, ), createdAt: DateTime.now().toString(), ), ); return true; } catch (e) { print('error: $e'); return false; } } } 그리고 View 단, 특 주문하기 버튼입니다:ElevatedButton( style: ElevatedButton.styleFrom( backgroundColor: primaryColor, ), onPressed: basket.isEmpty ? null : () async { final response = await ref .read(orderProvider.notifier) .postOrder(); if (context.mounted) { if (response) { context.goNamed(OrderDonePage.routeName); } else { ScaffoldMessenger.of(context).showSnackBar( const SnackBar( content: Text('주문에 실패했습니다.'), ), ); } } }, child: const Text('결제하기'), ),서버 쪽 코드혹시 몰라서, 에러가 발생하는 서버 쪽 코드 역시 첨부합니다. 일단 제가 건든 코드는 없습니다.import { Injectable } from '@nestjs/common'; import { CreateOrderDto } from './dto/create-order.dto'; import { CacheService } from '../cache/cache.service'; import { User } from '../user/entities/user.entity'; import { Order } from './entities/order.entity'; import { CoreService } from '../core/core.service'; import { PaginationDto } from '../core/dto/pagination.dto'; import { Pagination } from '../core/entity/pagination.entity'; import { OrderProduct } from './entities/order-product-entity'; @Injectable() export class OrderService { constructor( private cacheService: CacheService, private coreService: CoreService, ) {} paginateOrders(user: User, paginationDto: PaginationDto): Pagination<Order> { const result = this.coreService.paginate( this.cacheService.orders, paginationDto, ); return { ...result, data: result.data.map((item) => new Order(item)), }; } postOrder(user: User, createOrderDto: CreateOrderDto): Order { const newOrder = new Order({ id: createOrderDto.id, user, restaurant: this.cacheService.products.find( (x) => createOrderDto.products[0].productId === x.id, ).restaurant, products: createOrderDto.products.map((basketItem) => ({ product: new OrderProduct( this.cacheService.products.find( (product) => basketItem.productId === product.id, ), ), count: basketItem.count, })), totalPrice: createOrderDto.totalPrice, createdAt: createOrderDto.createdAt, }); this.cacheService.orders = [newOrder, ...this.cacheService.orders]; return newOrder; } } @ApiTags('order') @ApiExtraModels(PaginationDto, Order) @Controller('order') export class OrderController { constructor(private readonly orderService: OrderService) {} @UseGuards(AccessTokenGuard) @ApiOperation({ summary: '주문 Pagination', }) @ApiPaginatedOkResponseDecorator(Order, { description: 'Pagination 결과', }) @Get() paginateOrder( @Request() req, @Query() paginationDto: PaginationDto, ): Pagination<Order> { return this.orderService.paginateOrders(req.user, paginationDto); } @UseGuards(AccessTokenGuard) @Post() @ApiOperation({ summary: '주문 생성하기', }) @ApiBody({ type: CreateOrderDto, }) @ApiOkResponse({ status: 201, type: Order, }) postOrder(@Request() req, @Body() body: CreateOrderDto): Order { return this.orderService.postOrder(req.user, body); } }
-
해결됨
sklearn MinMaxScaler 사용
가로 100, 세로 724 픽셀의 30개의 이미지 데이터를 넘파이 배열로 바꿔준 뒤에 sklearn의 minmaxscaler 함수를 사용하여 정규화를 진행했습니다. 한 가지 궁금증이 생겼는데요, 이 함수를 여러 이미지의 동일한 픽셀 위치에서 min과 max을 찾아서 minmax스케일링을 하는 것으로 이해해도 될까요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
실제로 노래 mp3 파일과 연결해서 나오게끔 하려면
실제로 리사이클러뷰 클릭했을때 노래 mp3 파일과 연결해서 나오게끔 하려면 어떻게 할까요?후속 강의에 관련 내용이 있을까요??
-
해결됨실전! 스프링 데이터 JPA
Slice 방식에서의 엔티티를 DTO 로 변환
Page 방식에서 api response 를 줄 때 엔티티-> DTO 변환은 Page 인터페이스에서 지원하는 map 을 이용하는 것이라고 이해했습니다.Slice 인터페이스의 스펙에는 map 함수가 없던데 Slice 를 사용할 때 엔티티-> DTO 변환은 어떻게 해야 하나요?
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
D3 visibility: hidden; 이걸 없애면 슬라이드가 보이는 문제!...
다른건 아니오라 작업하다가 원래 fade in / fade out 슬라이드 형식대로 써봤는데..visibility: hidden; 을 주석처리 하는순간 슬라이드가 작동되는 현상은 처음이라 적어봅니다!...제가 뭘 잘못건드렸는지 확인 한번만 부탁드려요!<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="container"> <div class="main-content"> <div class="left"> <header> <div class="header-logo"> <a href="#none"><img src="images/header-logo.png" alt="header-logo"></a> </div> <div class="navi"> <ul class="menu"> <li> <a href="#none">MENU-1</a> <div class="sub-menu"> <a href="#none">submenu-1</a> <a href="#none">submenu-2</a> <a href="#none">submenu-3</a> <a href="#none">submenu-4</a> </div> </li> <li> <a href="#none">MENU-1</a> <div class="sub-menu"> <a href="#none">submenu-1</a> <a href="#none">submenu-2</a> <a href="#none">submenu-3</a> <a href="#none">submenu-4</a> </div> </li> <li> <a href="#none">MENU-1</a> <div class="sub-menu"> <a href="#none">submenu-1</a> <a href="#none">submenu-2</a> <a href="#none">submenu-3</a> <a href="#none">submenu-4</a> </div> </li> <li> <a href="#none">MENU-1</a> <div class="sub-menu"> <a href="#none">submenu-1</a> <a href="#none">submenu-2</a> <a href="#none">submenu-3</a> <a href="#none">submenu-4</a> </div> </li> </ul> </div> <div class="spot-menu"> <a href="#none">로그인</a> <a href="#none">회원가입</a> </div> </header> </div> <div class="right"> <div class="slide"> <div class="slide-img"> <div class="slide-image-inner"> <a href="#none"><img src="images/slide-d-01.jpg" alt="slide 1"></a> <a href="#none"><img src="images/slide-d-02.jpg" alt="slide 2"></a> <a href="#none"><img src="images/slide-d-03.jpg" alt="slide 3"></a> </div> </div> <div class="slide-banner"> <a href="#none"><img src="images/banner-01.png" alt="banner 1"></a> <a href="#none"><img src="images/banner-02.png" alt="banner 2"></a> <a href="#none"><img src="images/banner-03.png" alt="banner 3"></a> </div> </div> <div class="items"> <div class="shortcut"> <img src="images/shortcut-01.png" alt="shortcut 1"> <div class="shortcut-content"> <h2>얼리버드 선착순 할인 이벤트, 신규강의 최대 30% 할인</h2> <p> 12월은 사랑의 달~ 코딩웍스에서 여러분께 사랑을 뿌려요~ 12월 개강반을 12월 06일까지 접수하는 분들께는 15%~ 20% 의 얼리버드 할인을 제공합니다. 더불어 소중한 리뷰를 꼼꼼히 남겨주시는 분들을 뽑아 더 큰 적립금을 추가지급해 드릴 예정이오니 리뷰도 놓치지 마시고 작성해주세요~^^ <br><b>기간: 2022년 12월 18일~ 12월 25일</b> </p> </div> <a href="#none"><img src="images/shortcut-02.png" alt="shortcut 2"></a> </div> <div class="news"> <div class="tab-inner"> <div class="btn"> <a class="active" href="#none"><span>공지사항</span></a> <a href="#none"><span>갤러리</span></a> </div> <div class="tabs"> <div class="tab1"> <a class="open-modal" href="#none">스트리밍 서버 이전 작업으로 2시간 서비스 중지<b>2022.12.20</b></a> <a href="#none">얼리버드 선착순 할인 이벤트 최대 50% 할인<b>2022.10.13</b></a> <a href="#none">내 집 마련의 꿈을 꿈이 아닌 현실로 만드는 진짜 방법<b>2022.11.31</b></a> <a href="#none">외국인과 영어로 네이티브처럼 대화하는 노하우!<b>2022.08.09</b></a> <a href="#none">월 500만원 매출을 내는 블로그 운영하는 노하우<b>2022.07.07</b></a> </div> <div class="tab2"> <a href="#none"><img src="images/gallery-01.png" alt="gallery 1"><span>퍼블리셔 취업</span></a> <a href="#none"><img src="images/gallery-02.png" alt="gallery 2"><span>퍼블리셔 취업</span></a> <a href="#none"><img src="images/gallery-03.png" alt="gallery 3"><span>퍼블리셔 취업</span></a> <a href="#none"><img src="images/gallery-04.png" alt="gallery 4"><span>퍼블리셔 취업</span></a> <a href="#none"><img src="images/gallery-05.png" alt="gallery 5"><span>퍼블리셔 취업</span></a> <a href="#none"><img src="images/gallery-06.png" alt="gallery 6"><span>퍼블리셔 취업</span></a> <a href="#none"><img src="images/gallery-07.png" alt="gallery 7"><span>퍼블리셔 취업</span></a> </div> </div> </div> </div> </div> </div> </div> <footer> <div class="footer-logo"> <a href="#none"><img src="images/footer-logo.png" alt="footer-logo"></a> </div> <div class="footer-content"> <div class="footer-link"> <a href="#none">기업소개 제휴 및 입점 문의</a> <a href="#none">이용약관</a> <a href="#none">개인정보처리방침</a> <a href="#none">이메일무단수집거부</a> <a href="#none">사이트맵</a> <a href="#none">인재채용</a> </div> <div class="copyright"> 상호 : (주)코딩웍스 | 대표자 : 홍길동 | 개인정보관리책임자 : 성춘향 부장 br사업장주소 : 경기도 남양주시 별내동 1234 코딩웍스 빌딩 6층 (주)코딩웍스 </div> </div> </footer> </div> <div class="modal"> <div class="modal-content"> <h2>스트리밍 서버 이전으로 서비스 장애</h2> <p> 스트리밍 서버 이전 작업으로 2시간 서비스 중지됩니다. 주요 작업 내용은 아래와 같습니다. <br><br>1. 서버 이전에 따른 DNS 이전으로 기존 호스팅 서비스 대체 <br>2. 문자셋을 utf-8로 변경 후 모바일 등에 대처하기 위해 미리 조치 <br>3. 스트리밍 서버 CDN과 연동 후 멀티미디어 이러닝 서비스가 제공 <br><br>위 내용을 보시면 제법 큰 작업이었음을 알 수 있습니다. 특히 문자셋의 변경에 따라 기존의 DB, data, 웹사이트 솔루션 등의 커스트마이징 등에 상당한 어려움이 있었고, 이에 따른 일부 접속 오류가 있을 수 있었음에 양해를 구합니다. 특히 인터넷익스플로러 11로 접속하셨을 경우 일부 문제은행 목차가 출력되지 않았을 수도 있습니다. <br><br>서버 이전 작업으로 고객님들께 불편을 드려서 대단히 죄송합니다. 정상 운영되도록 최선을 다하겠습니다. 감사합니다. </p> <a href="#none"><div class="close-modal">닫기</div></a> </div> </div> <script src="script/jquery-1.12.4.js"></script> <script src="script/custom.js"></script> </body> </html>@charset "utf-8"; body { margin: 0; background-color: #fff; color: #333333; } a { text-decoration: none; color: inherit; } .container {} .main-content { display: flex; } .main-content > div { /* border: 1px solid red; */ } .left { width: 200px; } header {} header > div { /* border: 1px solid blue; */ } .header-logo { height: 150px; line-height: 170px; } .navi { /* height: 400px; */ } .menu { list-style: none; width: 90%; margin: 20px auto; padding: 0; } .menu li { position: relative; } .menu li > a { padding: 7px; border: 1px solid black; display: block; transition: 0.5s; } .menu li:hover > a { background-color: #00000021; } .sub-menu { position: absolute; left: 100%; top: 0; width: calc(100vw - 209px); padding: 8px; background-color: #00000021; z-index: 10; display: none; } .sub-menu > a { width: 120px; display: inline-block; transition: 0.5s; text-align: center; } .sub-menu > a:hover { background-color: #000; color: #fff; } .spot-menu { height: 50px; text-align: center; } .spot-menu a:after { content: "|"; margin: 8px; } .spot-menu a:last-child:after { content: none; } .right { flex: 1; } .slide { position: relative; height: 400px; } .slide > div { /* border: 1px solid green; */ } .slide-img { height: 400px; } .slide-image-inner { height: inherit; } .slide-image-inner a { visibility: hidden; position: absolute; height: inherit; top: 0; left: 0; width: 100%; animation: slide 10s linear infinite; opacity: 0; } .slide-image-inner a:nth-child(1) { animation-delay: 0s; } .slide-image-inner a:nth-child(2) { animation-delay: 3.5s; } .slide-image-inner a:nth-child(3) { animation-delay: 7s; } .slide-image-inner a img { height: inherit; width: inherit; object-fit: cover; } @keyframes slide { 0% { opacity: 0; } 5% { opacity: 1; } 35% { opacity: 1; } 40% { opacity: 0; } 100% { opacity: 0; } } .slide-banner { top: 0; right: 0; position: absolute; width: 150px; height: 300px; float: right; } .slide-banner a {} .slide-banner a img { width: 150px; display: block; } .items {} .items > div { /* border: 1px solid pink; */ } .shortcut { /* border: 1px solid black; */ height: 200px; display: flex; align-items: center; gap: 25px; margin: 0 20px; } .shortcut > img {} .shortcut > a {} .shortcut h2 {} .shortcut p {} .shortcut p b {} .news { height: 250px; } .tab-inner { width: 95%; margin: auto; margin-top: 25px; } .btn {} .btn a { width: 100px; text-align: center; display: inline-block; border: 1px solid black; margin-right: -6px; border-bottom: none; border-radius: 5px 5px 0 0; background-color: #ddd; margin-bottom: -1px; padding: 4px; } .tabs {} .tabs > div {} .tab1 { background-color: #fff; border: 1px solid black; padding: 6px; } .tab1 a { border-bottom: 1px dashed black; padding: 6px; display: block; } .tab1 a:last-child { border-bottom: none; } .tab1 a b { padding-right: 100px; float: right; font-weight: normal; } .tab2 { display: none; border: 1px solid black; padding: 20px; height: 140px; text-align: center; /* box-sizing: border-box; */ } .tab2 a { display: inline-block; text-align: center; margin: 0 15px; } .tab2 img { width: 200px; } .tab2 a span { display: block; } .btn a.active { background-color: #fff; } footer { display: flex; } footer > div { /* border: 1px solid blue; */ height: 120px; } .footer-logo { width: 200px; line-height: 180px; } .footer-content { flex: 1; } .footer-content > div { /* border: 1px solid green; */ height: 60px; /* box-sizing: border-box; */ /* padding: 0 20px; */ } .footer-link { padding-top: 30px; box-sizing: border-box; } .footer-link > a:hover { text-decoration: underline; color: blue; } .footer-link a::after { content: "|"; margin: 0 8px; color: #ccc; } .footer-link a:last-child:after { content: none; } .copyright { /* padding-top: -100px; */ } .modal { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #0000003b; display: none; } .modal-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); background-color: #fff; padding: 20px; width: 500px; } .close-modal { float: right; border: 1px solid black; padding: 2px; } $('.menu li').mouseenter(function(){ $('.sub-menu').stop().fadeIn() }); $('.menu li').mouseleave(function(){ $('.sub-menu').stop().fadeOut() }); $('.btn a:first-child').click(function(){ $('.tab1').show() $('.tab2').hide() $(this).addClass('active') $(this).siblings().removeClass('active') }); $('.btn a:last-child').click(function(){ $('.tab1').hide() $('.tab2').show() $(this).addClass('active') $(this).siblings().removeClass('active') }); $('.open-modal').click(function(){ $('.modal').fadeIn() }); $('.close-modal').click(function(){ $('.modal').fadeOut() });
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
IDENTITY Batch Insert 쿼리
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 강사님 덕분에 JPA를 재밌게 공부하고 있는 취준생입니다. Mysql에 Batch INSERT 쿼리에 대해 여쭤보고 싶습니다. Mysql은 시퀀스를 지원하지 않아 @GeneratedValue를 IDENTITY로 할 경우 PK때문에 INSERT가 한건씩 나가게 됩니다. 그동안 네이티브 쿼리를 사용했을 때는 배열 같은 형태로 여러 Row를 한 개의 INSERT로 처리하였는데 이 경우에도네이티브 쿼리가 실용적인 대안이 될 수 있을까요??Mysql에서 SEQUENCE 전략을 사용하면 PK 테이블을 생성 -> SELECT pk (비관적 락) -> UPDATE pk순으로 실행 되어 조금 더 찾아보니 allocateSize처럼 seq(pk) 뭉치로 가져 오는 방법이 있긴 한데 대부분의 경우 Native 쿼리로 푸는게 더 효율적이란 생각이 듭니다.혹시 이 밖에 더 괜찮은 방안이 있을까요?? 감사합니다!!
-
미해결[게임 프로그래머 도약반] DirectX11 입문
마지막에 삼각형이 안 떠서 질문을 드립니다.
선생님 진도에 따라서 문제없이 잘 진행되다가 삼각형을 출력하는 부분에서 삼각형이 안 떠서 질문을 드립니다.저 혼자 디버깅을 해보았으나 Pass, Technique, stride, offset이 모두 제가 보기엔 정상이고, Render에 들어오는데 삼각형이 안떠서 비교하기 위해 수업자료를 다운받아봤습니다.이번 수업에서 엔진은 복붙이고, 클라쪽 코드와 경로 설정 정도만 직접 타이핑해서 선생님 코드를 복붙했으나 삼각형이 뜨지 않아서 선생님 코드를 돌려보니 선생님 코드도 회색화면만 뜹니다.혹시 제가 어떤 부분을 체크하면 좋을지 알려주실 수 있으실까요??제가 현재 사용하는 환경은 VS 2022최신버전, 윈도우 11입니다.
-
해결됨리눅스 성능 분석 시작하기
안녕하세요 네트워크 관련 질문드립니다.
안녕하세요좋은 강의 감사드립니다.네트워크 관련 몇가지 질문 드립니다.첫번째로 TIME_WAIT 상태에 대한 질문 드립니다.연결을 끊는 입장(Active Closer)에서 TIME_WAIT이 발생하는 이유로Active Closer가 FIN과정 중 마지막으로 ACK를 보냈을때 패킷이 유실될 경우를 대비해서 생기는 것으로 이해해도 될까요?패킷이 유실될 경우 Passive Closer가 다시 FIN을 보내고 Active Closer는 TIME_WAIT상태이므로 소켓이 남아 있기에 다시 ACK를 보내고,, 이렇게 이해하고 있습니다. 두번째로 Keep alive에 대한 질문 드립니다.HTTP/1.0+에서는 Keep-Alive 헤더를 사용하여 Keep Alive기능이 사용되었지만, HTTP/1.1 부터는 스펙 자체에 Persistent Connection 개념이 도입되어 헤더가 필요없이 기능이 활성화 되어 있다고 이해하고 있습니다.강의 내용 중 나오는 keepalive_timeout 설정 파라미터가 HTTP/1.1 스펙 이라고 소개된 부분은 HTTP/1.1 스펙을 사용하는 nginx의 설정값인 부분으로 이해해도 될까요?keep alive 개념 이해는 되지만 실제 구현에 대한 이해가 부족한 상태여서 약간 헷갈리는 부분이라 질문 드립니다,,
-
해결됨유니티 머신러닝 에이전트 완전정복 (기초편)
ML-agents 살펴보기 5페이지 질문입니다.
여기서 stacked vectors를 3으로 하면 space size도 9가 되는게 맞나요?
-
미해결스프링 핵심 원리 - 기본편
AppConfig의 @Bean 메서드의 이름을 아무렇게나 지으면 안되나요?
@Configuration public class AppConfig { @Bean public MemoryMemberRepository memoryRepository() { return new MemoryMemberRepository(); } @Bean public RateDiscountPolicy discountPolicy() { return new RateDiscountPolicy(); } @Bean public MemberService memberService(){ return new MemberServiceImpl(memoryRepository()); } @Bean public OrderService orderService(){ // return null; return new OrderServiceImpl(memoryRepository(), discountPolicy()); } } 저는 지금까지 위의 코드처럼 MemoryMemberRepository 빈 객체를 생성하는 메서드의 이름을 memberRepository가 아니라 memoryRepository로 이름지어주고 진행해왔습니다. 그러다가 7.의존관계 자동 주입 챕터에서 test 폴더를 전부 테스트할 때CoreApplicationTests에서 동일한 타입에 여러 Bean이 생성되었다는 오류 메시지를 받았습니다.Parameter 0 of constructor in hello.core.member.MemberServiceImpl required a single bean, but 2 were found: - memoryMemberRepository: defined in file [C:\Users\***\***\coding\source_code\Spring\inflearn2\out\production\classes\hello\core\member\MemoryMemberRepository.class] - memoryRepository: defined by method 'memoryRepository' in class path resource [hello/core/AppConfig.class]///Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memoryRepository 해결하려는 과정에서 강의노트에 메서드 이름이 memberRepository였다는걸 알게됐고 이걸로 이름을 고쳐주고 다시 테스트하니까 정상적으로 테스트가 완료됐습니다.메서드 이름만 바꿔준 것만으로 NoUniqueBean 오류가 해결된 이유가 궁금해졌습니다.이것저것 코드를 건드렸는데 @Component 코드들을 아래에 붙이겠습니다. 감사합니다.@Component public class MemberServiceImpl implements MemberService{ private MemberRepository store; @Autowired public MemberServiceImpl(MemberRepository memberRepository){ this.store = memberRepository; } @Override public void register(Member newMember) { store.save(newMember); } @Override public Member search(Long memberId) { return store.findById(memberId); } } @Component public class MemoryMemberRepository implements MemberRepository{ private static Map<Long, Member> store = new HashMap<>(); @Override public void save(Member member) { store.put(member.getId(), member); } @Override public Member findById(Long memberId) { return store.get(memberId); } }@Component public class OrderServiceImpl implements OrderService { private MemberRepository memberRepository; private DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { System.out.println("Constructor DI"); this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPrice = discountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } }@Component public class RateDiscountPolicy implements DiscountPolicy{ private static final double DISCOUNT_RATE = 0.1; @Override public int discount(Member member, int price) { if(member.getGrade() == Grade.VIP) return (int) (price * DISCOUNT_RATE); else return 0; } }
-
미해결[NLP] IMDB 영화리뷰 감정 분석을 통한 파이썬 텍스트 분석과 자연어 처리
word2vec 질문
for review in train["review"]: sentences += KaggleWord2VecUtility.review_to_sentences(review, remove_stopwords=False) for review in unlabeled_train["review"]: sentences += KaggleWord2VecUtility.review_to_sentences(review, remove_stopwords=False)섹션2 word2vec에서는 다음과 같이 train data와 unlabeled train data를 합쳐서 사용하고 있습니다. 각각 일부를 출력했을때 서로 다른 데이터로 보입니다. 이 데이터들을 사용해서 word2vec을 만들어주는데 word2vec에서 사용하는 단어의 개수를 늘려주기 위함인가요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
android setup 안해도 되나요
저는 mac을 사용하는데 adroid로는 배포할 일이 없어서요 혹시 android setup은 지나쳐도 될까요??!
-
미해결스프링부트 개념정리(이론)
JPA가 저장되는 위치는 어디인가요?
JPA가 저장되는 위치는 어디인가요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
버퍼링
버퍼링이 너무 심해서 강의를 시청할수가없을정도에요
-
해결됨실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
질문입니다
1. 무엇을 하고 싶으신가요? 디렉토리가 없다고 나옵니다 2. 언제, 어떤 오류가 발생하시나요? incle@incleuicBookPro ~ % mkdir -p /Users/incle/.terraform.d/plugin-cache위명령어를 통해 디렉토리를 생성했습니다. incle@incleuicBookPro terra % terraform initTerraform initialized in an empty directory!The directory has no Terraform configuration files. You may begin workingwith Terraform immediately by creating Terraform configuration files.incle@incleuicBookPro terra % terraform initTerraform initialized in an empty directory! 3. 어떤 시도를 해보셨나요?강의 내용에 있는 걸 그대로 붙여넣었고테라폼인잇 명령어를 친결과입니다. 4. 작성한 코드를 공유해주세요.provider "aws" { region = "ap-northeast-2" } data "aws_caller_identity" "current" {} output "account_id" { value = data.aws_caller_identity.current.account_id } output "caller_arn" { value = data.aws_caller_identity.current.arn } output "caller_user" { value = data.aws_caller_identity.current.user_id }
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
PUT , POST , PATCH , DELETE 등..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.HTTP 메서드를 어떤걸 보내든 결국에 서버단에서 결과를 덮어씌울지 , 삭제할지 , 생성할지 조회할지 결정하는것이 아닌가요? 예를들면 클라이언트 입장에선 PUT으로 바디에 특정데이터를 보내서 수정되길 원했는데 서버단에서는 해당 요청을 받고 바디는 싹 다 무시한체 리소스 위치를 이용해 DELETE쿼리로 삭제할 수있고 SELECT쿼리로 해당 리소스를 조회한 결과를 리턴해줄수도 있는데 이러면 결국 HTTP메서드가 무의미해지는게 아닌가하는지 궁금합니다.
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
90번 심바문제 질문있습니다.
69 ~70 번째 줄인 while (!Q.empty()) { Q.pop(); } res = tmp.dis; }이 부분이 이해가 안됩니다. 왜 큐를 제거를 하는지 이전에 다 없어지지 않았나요? 그리고 dis를 하는이유도 궁금합니다. z로 설정을 다하셨는데 왜 갑자기 이렇게 나오는지....
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
session
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. 세션이 무엇인지 정확히 이해하지 못하고 있습니다. 저장소 정도로 이해하면 될까요?2. HttpSession session = request.getSession(); 세션이 있으면 세션 반환, 없으면 신규 세션을 생성한다고 하셨는데 request의 어떤 정보를 보고 세션을 반환하는 건가요?다른 호스트 100명이 호출하면 새로운 세션 100개를 생성하는 건가요?