묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
axios error
안녕하세요 그랩님! 바로 아래 질문과 같이 axios error가 콘솔창에 뜨는데 포스트맨으로 다른 api 연결 확인 다 되었고 app.use(cors()); 역시 서버의 index.js 에 기재되어 있는데도 여전히 오류가 뜨고 있어 혹시 이런경우엔 어떻게 해결이 가능할지 문의드리고자 합니다!
-
미해결한 입 크기로 잘라먹는 타입스크립트(TypeScript)
인터페이스 관련 질문입니다!
interface Person { name: string; age: number; sayHi(): void; // 오버로딩 sayHi(a: number, b: number): void; } const person: Person = { name: "name", age: 1, sayHi(a?: number, b?: number) { if (a && b) { console.log("hi" + a + b); } else { console.log("No paramete"); } }, }해당 코드를 sayHi 메소드에 파라미터가 없으면 void를 return 하고 2개이면 number 를 return하게 만들고싶을땐 어떤식으로 해야할까요? interface Person { name: string; age: number; sayHi(): void; // 오버로딩 sayHi(a: number, b: number): number; } const person: Person = { name: "name", age: 1, sayHi(a?: number, b?: number) { if (a && b) { console.log("hi" + a + b); return a+b ; } else { console.log("No parameter"); } }, }이런식으로 했더니 오류가 생기더라고요 ㅜㅜ
-
해결됨스프링 핵심 원리 - 기본편
OrderServiceTest에서 무엇을 테스트하는지?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]마지막에 OrderServiceTest에서Assertions.assertThat(order.getDiscountPrice()).isEqualTo(1000); 으로 order에서 할인된 금액이 1000인지를 확인하고있습니다.그런데 OrderService의 createOrder라는 메소드는 회원id(memberId), 상품명(itemName), 상품가격(itemPrice)을 가지는 주문(Order)를 생성하는 메소드인데,OrderServiceTest에서는 assertThat을 이용해서 Order에서 할인된 금액이 1000원이 맞는지를 확인하는 방식으로 테스트를 하고있습니다.제 생각에는 createOrder라는 메소드를 실행하면 우리가 원하는 회원id(memberId), 상품명(itemName), 상품가격(itemPrice)을 가진 객체(Order)가 잘 생성되었는지를 확인하는 방식의 테스트를 진행해야 할 것 같은데, 단순히 할인된 금액이 1000인 것을 확인하는게 조금 이해가 되지 않아서 질문합니다.asserThat(order.getMemberId()).isEqaulTo(memberId)asserThat(order.getItemName()).isEqaulTo("itemA")asserThat(order.getItemPrice())).isEqaulTo(9000)이런 식으로 Order가 잘 생성되었는지에 대한 테스트를 진행하는것이 맞지 않나해서 질문드립니다!
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
url
캡쳐 사진처럼, 제 url은 강사님 url과 달리 실습하다보면 %20 이렇게 표현되는데 저거 어떻게 못하나요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Segment와 Span의 차이
강의를 보던 중 Segment나 Span 같은 것들이 나오던데 이 둘의 차이점은 뭔가요 ?
-
해결됨호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
PostCreate 기본 생성자 문제 질문
질문PostController 에서 "/posts" 요청 시 PostCreate Dto Binding 관련 질문Controller @RequestBody의 Dto는 기본생성자와 Getter or Setter 중 하나가 필요한 것으로 알고 있습니다.[참고 링크][Spring] @RequestBody에 기본생성자만 필요하고 Setter는 필요없는 이유 - 1 (tistory.com)[Spring] @RequestBody에 기본생성자만 필요하고 Setter는 필요없는 이유 - 2 (tistory.com)하지만, 강사님의 코드를 보면,PostCreate (Dto)에 기본생성자가 없음에도 테스트가 정상적으로 통과하는데 어떻게 그것이 가능한가요?제가 따로 코드를 작성하여 시도한 경우, 기본 생성자가 없어서 실패하였습니다. (아래 코드 작성) 완전히 같은 질문https://www.inflearn.com/questions/752002/comment/236088https://www.inflearn.com/questions/796162호돌맨님 답변 → 생성자가 존재하는 경우 생성자를 통해 값이 들어간다.답변에 대한 질문 → 저는 생성자가 존재하더라도 기본생성자가 없으면, 오류가 발생합니다.. 왜 그런걸까요? 강사님 코드기본 생성자가 없음에도 성공@Setter @Getter @ToString public class PostCreate { @NotBlank(message = "타이틀을 입력하세요.") private String title; @NotBlank(message = "콘텐츠를 입력해주세요.") private String content; @Builder public PostCreate(String title, String content) { this.title = title; this.content = content; } } 질문자 코드 :: 실패 케이스강사님 코드와 동일하다고 생각합니다 @Getter @Setter @ToString public class CreatePostRequest { @NotBlank(message = "타이틀을 입력하세요") private String title; @NotBlank(message = "글 내용을 입력하세요") private String content; @Builder private CreatePostRequest(String title, String content) { this.title = title; this.content = content; } } 오류 메세지org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com.example.blog.dto.request.CreatePostRequest]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com.example.blog.dto.request.CreatePostRequest (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 2]※ 컨트롤러에 진입도 못하고 오류 발생합니다.질문자 코드 :: 성공 케이스@NoArgsConstructor 하나 추가 @Getter @Setter @ToString @NoArgsConstructor public class CreatePostRequest { @NotBlank(message = "타이틀을 입력하세요") private String title; @NotBlank(message = "글 내용을 입력하세요") private String content; @Builder private CreatePostRequest(String title, String content) { this.title = title; this.content = content; } }
-
해결됨스프링 핵심 원리 - 고급편
ThreadLocal.remove()
사용자A 가 thread-A 로 thread-A 전용 보관소에 사용자A 데이터를 저장했다가 ThreadLocal.remove() 를 하게 되면 thread-A 전용 보관소에 저장된 사용자A 데이터도 사라지게 되는 것 아닌가요..??
-
미해결네트워크, 그림으로 이해하자(2022ver.)
질문드립니다:)
안녕하세요 지난번에 이어 공인ip에 대해서 또 질문이 생겨서 올립니다.내 pc에서 네이버의 서버와 통신을 할 때 당연히 내 pc에도 공인ip가 있어야 통신이 가능한데요....그럼 사설 ip 192.168.....으로 시작되는 것 말고 공인ip는 임시적으로 isp에서 자동으로 할당을 해주는 건가요???https://www.findip.kr/ 곳에서 내 공인ip를 확인 할 수 있는데 이게 제 pc의 실제 공인 ip인건지요??그렇다면 이 주소로 원격데스크톱 연결이 가능한건지요???감사합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
[세션30] fetchUser시 UseGuard 401에러
안녕하세요, jwt토큰을 입력하여 사용자 인가를 받고 싶은데 그 과정에서 계속 오류가 나서 문의드립니다. 제가 확인하기로는 코드도 정확히 입력하고, HTTP HEADERS로 보내주는 토큰도 문제 없어서요. 에러 강의에서 jwt를 넣어주지 않았을 때 발생한다는 에러가 발생합니다. 제가 보기에는 토큰값이 잘못된것 같은데, login으로 받아온 토큰을 바로 넣는거라 만료가 되지도 않았을텐데 해결이 안되네요. 제 코드는 아래와 같습니다. users.resolver.ts// users.resolver.ts import { Args, Int, Mutation, Query, Resolver } from '@nestjs/graphql'; import { User } from './entities/user.entity'; import { UsersService } from './users.service'; import * as bcrypt from 'bcrypt'; import { UseGuards } from '@nestjs/common'; import { GqlAuthAccessGuard } from '../auth/guards/gql-auth.guard'; // import { AuthGuard } from '@nestjs/passport'; // 추가 @Resolver() export class UsersResolver { constructor( private readonly usersService: UsersService, // ) {} @UseGuards(GqlAuthAccessGuard) // 수정 @Query(() => String) fetchUser(): string { console.log('인가에 성공하였습니다'); return '인가에 성공하였습니다.'; } @Mutation(() => User) async createUser( @Args('email') email: string, @Args('password') password: string, @Args('name') name: string, @Args({ name: 'age', type: () => Int }) age: number, ): Promise<User> { // const hashedPassword = await bcrypt.hash(password, 10); // return this.usersService.create({ email, hashedPassword, name, age }); // } return this.usersService.create({ email, password, name, age }); } } gql-auth.guard.ts import { ExecutionContext } from '@nestjs/common'; import { GqlExecutionContext } from '@nestjs/graphql'; import { AuthGuard } from '@nestjs/passport'; export class GqlAuthAccessGuard extends AuthGuard('access') { getRequest(context: ExecutionContext) { const gqlContext = GqlExecutionContext.create(context); return gqlContext.getContext().req; } } jwt-access.strategy.ts import { PassportStrategy } from '@nestjs/passport'; import { ExtractJwt, Strategy } from 'passport-jwt'; export class JwtAccessStrategy extends PassportStrategy(Strategy, 'access') { constructor() { super({ jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), secretOrKey: '나의비밀번호', }); } validate(payload) { console.log('페이로드', payload); return { id: payload.sub, }; } } auth.module.tsimport { Module } from '@nestjs/common'; import { AuthResolver } from './auth.resolver'; import { AuthService } from './auth.service'; import { UsersModule } from '../users/users.module'; import { JwtModule } from '@nestjs/jwt'; import { JwtAccessStrategy } from './strategy/jwt-access.strategy'; @Module({ imports: [ JwtModule.register({}), UsersModule, // 서비스를 각각 불러오기보다는 module을 통으로 불러오는게 낫다. 원래는 import 에 TypeOrmModule.forFeature([Users])& providers에 UsersServie가 있었음. ], providers: [ JwtAccessStrategy, AuthResolver, // AuthService, // ], }) export class AuthModule {}
-
미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
self.client.post에 글이 생성되지않습니다
강의 영상과 똑같이 작성했음에도 last_post의 내용이 client가 생성한 post가 아닌, post_003의 내용이 들어가면서 Failed가 발생합니다.실행결과 Failedself.assertEqual(last_post.title, 'Post Form 만들기')AssertionError: '세 번째 포스트 입니다.' != 'Post Form 만들기'- 세 번째 포스트 입니다.+ Post Form 만들기[test.py 코드]from time import sleep from django.test import TestCase, Client from bs4 import BeautifulSoup from .models import Post, Category, Tag from django.contrib.auth.models import User class TestView(TestCase): def setUp(self): self.client = Client() # 사용자 생성 self.user_yunju = User.objects.create_user( username='yunju', password='0129' ) self.user_subin = User.objects.create_user( username='subin', password='cute0313' ) self.user_yunju.is_staff = True self.user_yunju.save() # 카테고리 생성 self.category_programming = Category.objects.create( name='programming', slug='programming' ) self.category_music = Category.objects.create( name='music', slug='music' ) # 태그 생성 self.tag_python_kar = Tag.objects.create( name="파이썬 공부", slug='파이썬-공부' ) self.tag_python = Tag.objects.create( name="python", slug='python' ) self.tag_django = Tag.objects.create( name="django", slug='django' ) # 포스트 생성 self.post_001 = Post.objects.create( title="첫 번째 포스트 입니다.", content="Hello World! We are the World", author=self.user_yunju, category=self.category_programming ) self.post_001.tags.add(self.tag_django) self.post_002 = Post.objects.create( title="두 번째 포스트 입니다.", content="저는 마라탕과 떡볶이를 사랑합니다", author=self.user_subin, category=self.category_music ) self.post_003 = Post.objects.create( title="세 번째 포스트 입니다.", content="Category가 없는 포스트입니다.", author=self.user_subin ) self.post_003.tags.add(self.tag_django) self.post_003.tags.add(self.tag_python) # 내비게이션바 함수 def navbar_test(self, soup): navbar = soup.nav self.assertIn('Blog', navbar.text) self.assertIn('Blog', navbar.text) logo_btn = navbar.find('a', text='Do It Django') self.assertEqual(logo_btn.attrs['href'], '/') home_btn = navbar.find('a', text='Home') self.assertEqual(home_btn.attrs['href'], '/') blog_btn = navbar.find('a', text='Blog') self.assertEqual(blog_btn.attrs['href'], '/blog/') about_me_btn = navbar.find('a', text='About me') self.assertEqual(about_me_btn.attrs['href'], '/about_me/') # 카테고리 카드 함수 def category_card_test(self, soup): categories_card = soup.find('div', id='categories-card') self.assertIn('Categories', categories_card.text) self.assertIn( f'{self.category_programming}({self.category_programming.post_set.count()})', categories_card.text ) self.assertIn( f'{self.category_music}({self.category_music.post_set.count()})', categories_card.text ) self.assertIn( f'미분류({Post.objects.filter(category=None).count()})', categories_card.text ) # 포스트가 있는 경우 def test_post_list_with_posts(self): self.assertEqual(Post.objects.count(), 3) response = self.client.get('/blog/') self.assertEqual(response.status_code, 200) soup = BeautifulSoup(response.content, 'html.parser') self.assertIn('Blog', soup.title.text) self.navbar_test(soup) self.category_card_test(soup) main_area = soup.find('div', id='main-area') post_001_card = main_area.find('div', id='post-1') self.assertIn(self.post_001.title, post_001_card.text) self.assertIn(self.post_001.category.name, post_001_card.text) self.assertIn(self.tag_django.name, post_001_card.text) self.assertNotIn(self.tag_python.name, post_001_card.text) self.assertNotIn(self.tag_python_kar.name, post_001_card.text) post_002_card = main_area.find('div', id='post-2') self.assertIn(self.post_002.title, post_002_card.text) self.assertIn(self.post_002.category.name, post_002_card.text) self.assertNotIn(self.tag_django.name, post_002_card.text) self.assertNotIn(self.tag_python.name, post_002_card.text) self.assertNotIn(self.tag_python_kar.name, post_002_card.text) post_003_card = main_area.find('div', id='post-3') self.assertIn(self.post_003.title, post_003_card.text) self.assertIn('미분류', post_003_card.text) self.assertIn(self.tag_django.name, post_003_card.text) self.assertIn(self.tag_python.name, post_003_card.text) self.assertNotIn(self.tag_python_kar.name, post_003_card.text) self.assertIn(self.post_001.author.username.upper(), main_area.text) self.assertIn(self.post_002.author.username.upper(), main_area.text) # 포스트가 없는 경우 def test_post_list_without_posts(self): Post.objects.all().delete() self.assertEqual(Post.objects.count(), 0) response = self.client.get('/blog/') self.assertEqual(response.status_code, 200) soup = BeautifulSoup(response.content, 'html.parser') self.navbar_test(soup) self.assertIn('Blog', soup.title.text) main_area = soup.find('div', id='main-area') self.assertIn('아직 게시물이 없습니다.', main_area.text) # 상세페이지 함수 def test_post_detail(self): self.assertEqual(Post.objects.count(), 3) self.assertEqual(self.post_001.get_absolute_url(), '/blog/1/') response = self.client.get(self.post_001.get_absolute_url()) self.assertEqual(response.status_code, 200) soup = BeautifulSoup(response.content, 'html.parser') self.navbar_test(soup) self.category_card_test(soup) self.assertIn(self.post_001.title, soup.title.text) main_area = soup.find('div', id='main-area') post_area = main_area.find('div', id='post-area') self.assertIn(self.post_001.title, post_area.text) self.assertIn(self.post_001.category.name, post_area.text) self.assertIn(self.user_yunju.username.upper(), post_area.text) self.assertIn(self.post_001.content, post_area.text) self.assertIn(self.tag_django.name, post_area.text) self.assertNotIn(self.tag_python.name, post_area.text) self.assertNotIn(self.tag_python_kar.name, post_area.text) # 카테고리별 페이지 나타내는 함수 def test_category_page(self): response = self.client.get( self.category_programming.get_absolute_url()) self.assertEqual(response.status_code, 200) soup = BeautifulSoup(response.content, 'html.parser') self.navbar_test(soup) self.category_card_test(soup) main_area = soup.find('div', id='main-area') self.assertIn(self.category_programming.name, main_area.h1.text) self.assertIn(self.category_programming.name, main_area.text) self.assertIn(self.post_001.title, main_area.text) self.assertNotIn(self.post_002.title, main_area.text) self.assertNotIn(self.post_003.title, main_area.text) # 태그 페이지를 나타내는 함수 def test_tag_page(self): response = self.client.get(self.tag_django.get_absolute_url()) self.assertEqual(response.status_code, 200) soup = BeautifulSoup(response.content, 'html.parser') self.navbar_test(soup) self.category_card_test(soup) self.assertIn(self.tag_django.name, soup.h1.text) main_area = soup.find('div', id='main-area') self.assertIn(self.tag_django.name, main_area.text) self.assertIn(self.post_001.title, main_area.text) self.assertNotIn(self.post_002.title, main_area.text) self.assertIn(self.post_003.title, main_area.text) # 로그인하지 않은 사용자에 대한 폼 제한 함수 def test_create_post_without_login(self): response = self.client.get('/blog/create_post/') self.assertNotEqual(response.status_code, 200) # 폼(form)을 이용한 포스트 작성 페이지 생성 # 로그인한 사용자만 폼 작성 가능 def test_create_post_with_login(self): self.client.login(username='yunju', password='0129') response = self.client.get('/blog/create_post/') self.assertEqual(response.status_code, 200) soup = BeautifulSoup(response.content, 'html.parser') self.assertEqual('Create Post - Blog', soup.title.text) main_area = soup.find('div', id='main-area') self.assertIn('Create a New Post', main_area.text) self.client.post( '/blog/create_post/', { 'title': 'Post Form 만들기', 'content': 'Post Form 페이지를 만듭시다.', }, ) last_post = Post.objects.last() self.assertEqual(last_post.title, 'Post Form 만들기') self.assertEqual(last_post.author.username, 'yunju') self.assertEqual(last_post.content, 'Post Form 페이지 만들어보자!')[views.py 코드]from django.core.exceptions import PermissionDenied from django.shortcuts import render, redirect from django.views.generic import ListView, DetailView, CreateView, UpdateView from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin from .models import Post, Category, Tag # 리스트를 출력하는 django 기본 라이브러리 class PostList(ListView): model = Post ordering = '-pk' def get_context_data(self, **kwargs): context = super(PostList, self).get_context_data() context['categories'] = Category.objects.all() context['no_category_post_count'] = Post.objects.filter( category=None).count() return context # 하나의 리스트를 불러오는 django 기본 라이브러리 class PostDetail(DetailView): model = Post def get_context_data(self, **kwargs): context = super(PostDetail, self).get_context_data() context['categories'] = Category.objects.all() context['no_category_post_count'] = Post.objects.filter( category=None).count() return context # 포스트 생성 함수 class PostCreate(LoginRequiredMixin, UserPassesTestMixin, CreateView): model = Post fields = ['title', 'hook_text', 'content','head_image', 'file_upload', 'category'] def test_func(self): return self.request.user.is_superuser or self.request.user.is_staff def form_valid(self, form): current_user = self.request.user if current_user.is_authenticated and (current_user.is_staff or current_user.is_superuser): form.instance.author = current_user return super(PostCreate, self).form_valid(form) else: return redirect('/blog/') class PostUpdate(LoginRequiredMixin, UpdateView): model = Post fields = ['title', 'hook_text', 'content','head_image', 'file_upload', 'category'] template_name = 'blog/post_update_form.html' def dispatch(self, request, *args, **kwargs): if request.user.is_authenticated and request.user == self.get_object().author: return super(PostUpdate, self).dispatch(request, *args, **kwargs) else: return PermissionDenied # 카테고리별 페이지 반환 함수 def category_page(request, slug): if slug == 'no_category': category = '미분류' post_list = Post.objects.filter(category=None) else: category = Category.objects.get(slug=slug) post_list = Post.objects.filter(category=category) return render( request, 'blog/post_list.html', { 'post_list': post_list, 'categories': Category.objects.all(), 'no_category_post_count': Post.objects.filter(category=None).count(), 'category': category } ) # 태그별 페이지 반환 함수 def tag_page(request, slug): tag = Tag.objects.get(slug=slug) post_list = tag.post_set.all() return render( request, 'blog/post_list.html', { 'post_list': post_list, 'categories': Category.objects.all(), 'no_category_post_count': Post.objects.filter(category=None).count(), 'tag': tag } )
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
로그아웃 질문
로그아웃 버튼 클릭후에setAccessToken을통해 accessToken이 공백으로 바뀌고 로그아웃 mutation 결과값 true 반환까지 확인되는데쿠키의 refreshtoken 값이 사라지지않습니다ㅜㅜ도와주세요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost 에러문의드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 localhost:8080이 에러가나서 localhost:8090으로 접속하려고 Edit configurations와 application.yaml에도 포트 번호 사진과 같이 추가하였는데도 계속 에러가 나네요...ㅠ 어디가 잘못된걸까요...?
-
미해결홍정모의 따라하며 배우는 C언어
배열 초기화 쉼표 쓰임
안녕하세요. 잘 듣고 있습니다. char cakes[7] = { 'A' ,}; 이런식으로 배열 초기화시 마지막에 쉼표를 넣는 경우가 있는데 무슨 뜻인가요? 해당 내용이 궁금해서 '배열과 포인터' 같은 연관 강의를 빠르게 찾아봤는데, 없었습니다. 혹시 해당 내용 설명한 강의가 있나요?
-
미해결실무자를 위한 구글애널리틱스(GA4+GTM) 활용법(25년 Update)
추천제외 메타 로그인 관련 질문입니다.
안녕하세요. 강의 잘 듣고 있습니다.페이스북 로그인의 경우 도메인이 네이버나 구글과 달리 소셜로그인 도메인이 페이스북 URL에서 따로 구분이 안 되어 있는 걸로 알고 있는데 이 부분 추천제외 설정은 어떻게 해야할까요?UA때부터 해결이 안 됐던 부분인데...크게 신경을 안 쓰고 있었는데요. 이번에 옮긴 회사의 경우 페이스북을 통한 마케팅 활동도 활발하고 로그인도 페이스북 비율이 워낙 높아서 이 부분이 매우 중요한 부분인데 해결이 안 되네요 ㅠㅠ기존 인력들은 데이터를 보던 분들이 없어서 이 문제에 대해 모르고....방법 혹시 있는지 문의드립니다.감사합니다.
-
미해결파이썬 무료 강의 (활용편2) - GUI 프로그래밍 (4시간)
한글 출력 오류
텍스트&엔트리 편에서 버튼을 클릭했을 때 한글 출력이 제대로 안되고 깨지는데 왜그러는 걸까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
구글지도 - 플랫폼뷰 관련 에러
안녕하세요 강사님, 구글지도 사용해보기 수업을 듣는데 지도가 나타나지 않아 질문드립니다. PlatformView, registerViewFactory가 호출되었는지 확인하라는 메세지로 파악했으나 해결 방법을 찾지 못하고 있습니다. 에러 메세지는 아래와 같습니다. [VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(unregistered_view_type, A UIKitView widget is trying to create a PlatformView with an unregistered type: < plugins.flutter.io/google_maps >, If you are the author of the PlatformView, make sure registerViewFactory is invoked.See: https://docs.flutter.dev/development/platform-integration/platform-views#on-the-platform-side-1 for more details.If you are not the author of the PlatformView, make sure to call GeneratedPluginRegistrant.register., null)#0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:652:7)#1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:310:18)<asynchronous suspension>#2 PlatformViewsService.initUiKitView (package:flutter/src/services/platform_views.dart:242:5)<asynchronous suspension>#3 UiKitViewState.createNewUiKitView (package:flutter/src/widgets/platform_view.dart:649:44)<asynchronous suspension>
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jsp부터 뭔가 이상하더니...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1.예2.예3.예 jsp부터 뭔가 오류가 계속 되었는데 해결하지 않고 있다가 v2까지 해결 못하고 있었네요..jsp는 회원가입 회원목록servlet - mvc : 회원목록frontController v1,v2 : 회원목록이 실행이 안됩니다 jsp는 파일이 다운로드 되고 mvc,v1,v2에서는 회원목록 실행하면 404에러가 뜹니다 파일경로입니다. : https://drive.google.com/file/d/1z0JFJg-avLK29wKi0KDhXhnztsErp5YB/view?usp=drive_link
-
미해결Practical Testing: 실용적인 테스트 가이드
섹션7 - 테스트 환경의 독립성을 보장하자
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요. 강의 재미나게 잘 보고있습니다.제목에 남겨드린 강의에서 creatOrderWithNoStock의 주제와 벗어나 given절의 deductQuantity에서 예외가 발생할 수 있는 상황을 예를 들어서 설명해 주셨고, 테스트 환경에서는 가능한 생성자를 기반으로 환경을 구성하여 진행하는것이 좋다고 말씀 주셨는데 그럼 이 경우에는 Stock stock1 = Stock.create("001", 2); Stock stock2 = Stock.create("002", 1);와 같이 생성 시점에 이미 부족한 수량으로 설정 하여 테스트를 진행하여 deductQuantity를 사용하지 않고, deductQuantity의 경우 따로 단위 테스트를 통해 수량 감소를 확인하는걸로 테스트를 구성하는 식으로 가면 되는건지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
엔티티 설계 관련된 질문이 있습니다
[질문 내용]배운 내용을 바탕으로 혼자 프로젝트 생각해서 만들고 있는데요어떤게 궁금한지 간단히 말씀드리면멤버라는 엔티티가 있습니다.. 멤버라는 엔티티에는 오늘의 추천 할 일이 필요하고 날마다 바뀝니다. 추천할 일은 개발자 혹은 운영자가 직접 넣는 것이구요.. 이러면 member랑 추천선행이랑 연관관계가 필요가 없지 않나요??이러면 추천선행은 ERD? 같은거 설계할때 연관관계ㅒ 없이 동떨어져있는 걸로 그리면 될까요?? 혹시라도 전에 사용했던 추천선행이 안나오게 하려면 이 경우는 연관관계를 세팅하는게 좋을까요?
-
해결됨친절한 블렌더 - [LV.0] 입문 필수
점, 선, 면 단축키 123을 누르면 카메라가 움직입니다
점, 선, 면이 선택되는 게 아니라 카메라가 움직여서 큐브 윗면, 측면, 정면을 보여주는데 어떻게 해야 하나요?