묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
13장 강의 수강 후 질문드려요~
안녕하세요 🙂 맛비님!FPGA 13장 수강 후 질문이 있어 글 남겨요!13장 28분 즈음을 보면, Vitis(=PS) 를 통해 13이라는 값을 Bram에 Write 하여 0번지 주소에 "8c29664c" 값이 들어오는 것을 확인하였는데요. 여기서, BRAM 에 정보 ( Address , Data ) 를 바탕으로 PL 로직에서 Source Code 를 작성하여 기능 구현을 하려고 합니다. ( 예를 들어 BRAM 0번지 Address 에 "8c29664c" Data 가 저장되면 LED On , 다른 값일 경우 Off..) 혹시 이러한 동작으로도 사용이 가능할까요? 사용 가능하다면, 설정 방법을 알려주시면 도움이 될 것 같습니다.
-
미해결Vue 3 시작하기
Vue 개발자도구 timeline에 No events라 뜨는 문제
버튼 클릭을 해 이벤트를 발생시켰음에도 불구하고 개발자도구에는 No events라고 뜹니다.Timeline에서 record 버튼 눌러 record on 했음에도 마찬가지입니다.해결방법을 아실까요? ㅠㅠ
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
투두리스트 content 수정 기능 추가 문의
투두리스트를 만들고 있는데여기서 만약 삭제버튼 옆에 수정버튼을 추가하여todo list에 입력한 content 내용을 수정할 수 있는 기능을 추가하려면todolist 내용 요소를 div요소에서 input text 요소로 바꾸고보이기는 input value사용하고,수정은 OnChange 이벤트를 사용하면 될까요?
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
파일 시스템 관련 질문입니다.
강의에서 모든 파일 시스템의 종류들은 다 FAT형식을 기본으로 갖는다고 하셨는데 검색해보니까 FAT도 한 종류의 파일시스템일 뿐이고 NTFS나 EXT 같은 종류의 파일 시스템은 각자 다른 방식으로 파일을 관리한다고 나와서요 그냥 기본적으로 FAT형식을 기반으로 발전시킨것들이다라고 이해해야할까요?다른 종류의 파일 시스템들도 0번 트랙, 0번 섹터의 MBR을 다 가지고 있는건가요?
-
미해결스프링 핵심 원리 - 고급편
@AfterReturning 설명 중 객체의 변경과 조작의 차이점
강의 18분 40초쯤 @AfterReturning 설명 중 반환되는 객체를 조작할 수는 있으나 변경할 수는 없다라고 말씀하셨는데 조작의 예시로 setter를 들어주시기는 했으나 setter를 통해 값을 변경하는 것도 결국 변경이 아닌가 생각이 들기도 하고 조작과 변경의 차이가 잘 이해되지 않습니다.조작과 변경의 차이를 조금 더 구체적이고 정확한 예시와 의미를 통해 이해시켜주실 수 있으실까요?
-
미해결폭발적인 조회수가 나오는 쇼츠 with 캡컷
영상 오류?
영상 제대로 올리는 법쇼츠 저작권두 개의 강의 영상이 파트2 캡컷영상으로 재생되는데오류인 건지 확인 부탁드립니다
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
감정일기장 getMonthlyDate 질문
안녕하세요.작성한 일기를 언제 작성했는지 필터링 하기 위한 getMonthlyDate 함수에 대해 질문이 있습니다.강의 내용에서는 작성한 일기가 언제 작성했는지를 알기 위해서 beganTime, endTime을 두고 시간까지 비교를 하였는데요.간단하게 getMonth()를 활용해서 작성한 일기를 해당하는 '월'로만 비교를 할 수는 없는 건지 궁금합니다!
-
해결됨실리콘밸리 엔지니어에게 배우는 파이썬 아파치 스파크
cdc 기반의 스트리밍 데이터 처리
안녕하세요. 강의 잘듣고 있는 도중에 질문이 있어 글을 작성하게 되었습니다. 현재 cdc 기반으로 iceberg 테이블에 operation(insert, update, delete) 정보들을 적용해서 데이터를 적재하고 있습니다. 이부분까지는 DMS -> kinesis -> lambda-> firehose -> iceberg 순서로 문제없이 적재를 진행하고 있지만 이런형식으로 운영중인 iceberg 테이블 10개를 join 시켜 datamart에 현재는 1주일에 한번씩 전체를 삭제 후 insert하는 비효율 적인 방식으로 마트를 운영중에 있습니다. 이것을 개선시키기 위해 적재중인 iceberg 테이블들에 변경된 데이터들을 5분 10분 단위로 종합해 datamart 테이블에 변경 분에 한해서만 insert, update, delete를 반영해주고자 하는데 강의를 듣다보니 spark streaming을 활용해서 뭔가 해결을 할 수 있을것 같은데 혹시 이부분에 대한 아이디어에 대해서 조언을 구할 수 있을까요? 10개의 테이블에 대해서 10분간 발생한 변경 점들을 종합해 datamart에 반영을 해주려고 하는데 아직 제대로 감이 잡히지 않아서 질문드렸습니다.
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
13-16) UpdateAPI test 에러
강의 수강 내용에 따라test_author_can_update_post 와 test_non_author_cannot_update_post를 수행하면 하기의 에러가 발생합니다.list, retrieve, create, destroy 전부 정상 작동하는데 update만 해당 오류가 발생합니다/blog/api.py, line 75, in has_permission if request.method in SAFE_METHODS: NameError: name 'SAFE_METHODS' is not defined 수업 내용대로 따라가고 있는데 ㅠㅠ 오류가 발생한 곳이 어디인지 알 수 가 없습니다.수업 내용을 따라서 구현한 코드는 다음과 같습니다.# blog/tests/test_api.py import base64 import pytest from django.core.exceptions import ObjectDoesNotExist from django.urls import reverse from rest_framework import status from rest_framework.response import Response from rest_framework.test import APIClient from accounts.models import User from accounts.tests.factories import UserFactory from blog.models import Post from blog.tests.factories import PostFactory def create_user(raw_password: str = None) -> User: """새로운 User 레코드를 생성 및 반환""" return UserFactory(raw_password=raw_password) def get_api_client_with_basic_auth(user: User, raw_password: str) -> APIClient: """인자의 User 인스턴스와 암호 기반에서 Basic 인증을 적용한 APIClient 인스턴스 반환""" # *.http 파일에서는 자동으로 base64 인코딩을 수행해줬었습니다. base64_data: bytes = f"{user.username}:{raw_password}".encode() authorization_header: str = base64.b64encode(base64_data).decode() client = APIClient() client.credentials(HTTP_AUTHORIZATION=f"Basic {authorization_header}") return client @pytest.fixture def unauthenticated_api_client() -> APIClient: """Authorization 인증 헤더가 없는 기본 APIClient 인스턴스 반환""" return APIClient() @pytest.fixture def api_client_with_new_user_basic_auth(faker) -> APIClient: """새로운 User 레코드를 생성하고, 그 User의 인증 정보가 Authorization 헤더로 지정된 APIClient 인스턴스 반환""" raw_password: str = faker.password() user: User = create_user(raw_password) api_client: APIClient = get_api_client_with_basic_auth(user, raw_password) return api_client @pytest.fixture def new_user() -> User: """새로운 User 레코드를 생성 및 반환""" return create_user() @pytest.fixture def new_post() -> Post: """새로운 Post 레코드를 반환""" return PostFactory() @pytest.mark.it("작성자가 아닌 유저가 수정 요청하면 거부") @pytest.mark.django_db def test_non_author_cannot_update_post(new_post, api_client_with_new_user_basic_auth): url = reverse("api-v1:post_edit", args=[new_post.pk]) response: Response = api_client_with_new_user_basic_auth.patch(url, data={}) assert status.HTTP_403_FORBIDDEN == response.status_code @pytest.mark.it("작성자가 수정 요청하면 성공") @pytest.mark.django_db def test_author_can_update_post(faker): raw_password = faker.password() author = create_user(raw_password=raw_password) created_post = PostFactory(author=author) url = reverse("api-v1:post_edit", args=[created_post.pk]) api_client = get_api_client_with_basic_auth(author, raw_password) data = {"title": faker.sentence()} response: Response = api_client.patch(url, data=data) assert status.HTTP_200_OK == response.status_code assert data["title"] == response.data["title"] ## core/mixins.py from typing import List, Optional, Type from colorama import Fore from django.conf import settings from django.db.models import Model, QuerySet from rest_framework import permissions from rest_framework.renderers import BrowsableAPIRenderer, JSONRenderer from rest_framework.request import Request from rest_framework.response import Response from rest_framework.serializers import Serializer from rest_framework.utils.serializer_helpers import ReturnDict from rest_framework.views import APIView from core.permissions import make_drf_permission_class class JSONResponseWrapperMixin: def finalize_response( self, request: Request, response: Response, *args, **kwargs ) -> Response: is_ok = 200 <= response.status_code < 400 accepted_renderer = getattr(request, "accepted_renderer", None) if accepted_renderer is None or response.exception is True: response.data = { "ok": is_ok, "result": response.data, } elif isinstance( request.accepted_renderer, (JSONRenderer, BrowsableAPIRenderer) ): response.data = ReturnDict( { "ok": is_ok, "result": response.data, # ReturnList }, serializer=response.data.serializer, ) return super().finalize_response(request, response, *args, **kwargs) class PermissionDebugMixin: if settings.DEBUG: def get_label_text(self, is_permit: bool) -> str: return ( f"{Fore.GREEN}Permit{Fore.RESET}" # colorama 라이브러리 활용 if is_permit else f"{Fore.RED}Deny{Fore.RESET}" ) def check_permissions(self, request: Request) -> None: print(f"{request.method} {request.path} has_permission") for permission in self.get_permissions(): is_permit: bool = permission.has_permission(request, self) print( f"\t{permission.__class__.__name__} = {self.get_label_text(is_permit)}" ) if not is_permit: self.permission_denied( request, message=getattr(permission, "message", None), code=getattr(permission, "code", None), ) def check_object_permissions(self, request: Request, obj: Model) -> None: print(f"{request.method} {request.path} has_object_permission") for permission in self.get_permissions(): is_permit: bool = permission.has_object_permission(request, self, obj) print( f"\t{permission.__class__.__name__} = {self.get_label_text(is_permit)}" ) if not is_permit: self.permission_denied( request, message=getattr(permission, "message", None), code=getattr(permission, "code", None), ) class TestFuncPermissionMixin: TEST_FUNC_PERMISSION_CLASS_NAME = "TestFuncPermissionMixin" @classmethod def get_test_func_permission_instance(cls) -> permissions.BasePermission: permission_class = make_drf_permission_class( class_name=cls.TEST_FUNC_PERMISSION_CLASS_NAME, # *_test_func_name 속성이 지정되면, 이 권한 클래스가 사용된 APIView 클래스에서 # 지정 이름의 메서드를 찾습니다. has_permission_test_func_name="has_permission", has_object_permission_test_func_name="has_object_permission", ) return permission_class() def get_permissions(self) -> List[permissions.BasePermission]: # 기존 permission_classes 설정에 권한 정책을 추가하는 방식으로 동작 return super().get_permissions() + [self.get_test_func_permission_instance()] def has_permission(self, request: Request, view: APIView) -> bool: return True def has_object_permission( self, request: Request, view: APIView, obj: Model ) -> bool: return True
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
ㅇ
ㅇ
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
android 실행 에러 질문있습니다
안녕하세요 강의 잘 보고 있습니다.현재 저는 Mac을 사용하고 있고인텔리제이로 iOS 와 Android 둘다 실행하는것으로 강의를 보며 공부하고 있는데요Android를 빌드 할때" Lost connection to device.Finished with error: getVM: (-32000) Service connection disposedthe Dart compiler exited unexpectedly. " 와 같은 메시지와 함께 실행이 되지 않습니다 아직 초보라 구글링하여 혼자 해결해보려해도 방법을 찾지못해 질문드립니다.
-
해결됨실리콘밸리 엔지니어에게 배우는 파이썬 아파치 스파크
broadcast 코드 예시 관련 질문
안녕하세요.broadcast 예제코드에서는 이미 aggregation된 dataframe(코드에서 interviwer_count)에 대해서 udf 실행을 위해서 meta 딕셔너리를 broadcast한 다음에 udf를 실행하는 것으로 이해하였는데요.실제 운영하는 상황에서는 이런 경우에는 이미 aggregation이 된 dataframe이 먼저 만들어질 것이기 때문에 meta 딕셔너리를 dataframe으로 만든 후 join하는 것과 큰 차이가 없지 않나요?해당 코드에서 broadcast를 함으로써 다른 방법(join 등)에 비해 얻는 이점이 어떤 건지 궁금합니다.
-
미해결[C#/.NET 7.0]어서와, WPF는 처음이지?
제너레이터 질문 있습니다
DataBinding 13분52초 까지 4강을 듣고 있는도중DashboardViewModel.cs 클래스에서.[ObservableProperty]private string? text = string.Empty;를 적어도 f12 단축키를 입력해서 직접가봤지만 추가가되지 않는것을 눈으로 확인했습니다.제너레이터가 자동으로 Text 라는 속성을 추가하지 않습니다 이로 인해서 DashboardPage.xaml 에서Text="{Binding ViewModel.Text, Mode = TwoWay}" /> f를 적어주면 Text 속성을 DashboardViewModel 형식에서 찾을 수 없습니다 라고 오류가 나옵니다.여기서부터 무엇을 건드려야 할까요.현재 사용중인 비주얼스튜디오 버전은 2022 17.11.2.Net FrameWork 4.8.09037 버전입니다
-
미해결Next + React Query로 SNS 서비스 만들기
페러렐 라우트(default.tsx)
강사님 안녕하세요! 강의 수강 후 개인 프로젝트 진행중인데 페러렐 라우트 부분에서 막혀 질문남깁니다ㅜㅠ..default.tsx는 강의에서 진행해주신대로 return null;을 넣었습니다. (.next 캐쉬도 지웠습니다)// 폴더구조 app/ ├──(afterLogin) │ ├── _component │ │ ├── Header.tsx // header 컴포넌트 │ ├── @message │ │ ├── page.tsx │ │ ├── default.tsx │ ├── @modal │ │ ├── //...compose/[username] 등 폴더 │ │ ├── default.tsx │ ├── home │ │ ├── page.tsx // home 컴포넌트 │ ├── default.tsx │ ├── layout.tsx │ │ ├──(beforeLogin) │ ├── page.tsx │ ├── layout.tsx ├── layout.tsx // (afterLogin)/layout.tsx import { ReactNode } from "react"; import Header from '@/app/(afterLogin)/_component/Header'; type Props = {children: ReactNode, modal: ReactNode, message: ReactNode;}; export default function AfterLoginLayout({children,modal,message,}: Props) { return ( <div className="wrap"> <Header /> <div className="container">{children}</div> <div className="chatting">{message}</div> {modal} </div> ); }해당 이미지와 같이 layout에서 header/{children}/{message}/{modal}을 띄우고 싶은데 message부분이 나오고 있지 않습니다..! (그래서 afterLogin의 layout.tsx와 같은 상위요소에 default를 만들어도 똑같더라구요..)<질문>1. 제가 폴더구조를 잘못 짠 걸까요..?2. (afterLogin)/@message/default.tsx(default.tsx에서 @message/page.tsx를 import해서 진행해도 될까요? 요런식으로 하면 잘 노출이 됩니다..!)import Message from './page'; export default function Default() { return <Message /> }3. 아니면 header처럼 컴포넌트 형식으로 메시지창만 만든다음 onClick되면 -> 인터셉팅으로 가로채는것(/message/page.tsx)이 좋을까요?조언 부탁드리겠습니다..!! ĭ˄ĭ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
GetMapping 경로 설정
프로젝트를 따로 만들면서 강의 들었던 내용을 참고하면서 혼자 해보는중입니다.근데 컨트롤러 경로 설정할때 /add 는 어디에도 없는데 왜 경로를 그렇게 했는지 궁금해서 작성합니다.컨트롤러 최상위는@Controller @RequestMapping("/basic/items") @RequiredArgsConstructor내부 컨트롤러는 @GetMapping("/add") public String addForm() { return "basic/addForm"; }html 경로는/resources/templates/basic/addForm.html `인데add 의 의미가 요청/응답 가상의 이름인지 아니면 제가 못찾은 경로의 이름인지 궁금합니다.
-
해결됨코틀린 고급편
지식공유자님 inline에 대해서의 질문과 추가적인 질문 1가지가 있습니다!
먼저 강의 정말 감사합니다.. 질문 폭탄을 드려서 매번 죄송할따름입니다..1번 질문// inline 프로퍼티 class InLinePropertyPerson(val name: String) { inline val uppercaseName: String get() = this.name.uppercase() // 가능 // get() = field.uppercase() // 불가능 }위의 코드처럼 inline 프로퍼티의 경우 this로의 접근은 가능한 반면, backing field 사용시에는 불가능하더라구요!이렇게 되는 이유or원리가 궁금합니다 2번 질문inline 사용의 경우 디버깅이 어렵다는 말을 어느 컨퍼런스의 코틀린 주제 네트워킹 세션때 들은 것 같습니다그런 경우 강의에서 나온 대로 invoke를 유발할 수 있는 함수 파라미터의 경우 noinline을 붙이면 해결되는 부분일지, 아니면 inline을 제외한 일반 함수로 만들어서 디버깅으로 문제점을 찾고 다시 inline fun으로 만드는게 나은지 궁금합니다(어떤 경우 차라리 메서드 콜스택을 만드는 편이 진입점을 파악하기 좋으니깐요!) 3번 질문inline 키워드와는 관계 없는 질문이긴하지만..!// 1번 listOf(1, 2, 3) .map { num -> val result = num + 1 result } // 2번 listOf(1, 2, 3) .map { num -> val result = num + 1 return@map result }위와 같은 코드에서 보면 map의 중간연산에 최종적으로 result가 반환될거야 라고 명시적으로 나타내는 2번 방식과kotlin의 특징인 scope { } 의 최종 line 값을 반환하는 자동기능이 쓰인 1번 방식이 있는데코틀린을 처음 접하거나 모르는 사람이 보면 저기 왜 뜬금없이 쓰이지도 않는 변수인 result가 있지? 이상하군! 이렇게 생각할수도있을것같아요(그냥 예시 중 하나.. 아마 이렇게 생각하시는 분은 없다고 예상)오히려 2번 방식에서 아 여기 map에서의 최종연산 결과는 result구나 하고 map라벨링을 달고 리턴하는게 좀 더 가독성이 있어보이는데요!2번 방식은 라벨링을 해서 jump를 하는 방식이라 안티패턴으로 봐야하는지? 아니면 그렇지 않은지?가 궁금합니다 강의 잘 보고있습니다! 감사합니다 :)
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
react-native-reanimated:compileDebugJavaWithJavac :( instanceof is not supported in -source 11) 오류 문의
강사님 navigation 6버전 변경후 다른 이슈로 재 문의 드립니다. 1.OS: window2.이슈 : react-native-reanimated 이슈로2.x 버전으로 사용하면 - 빌드는 되지만createDrawerNavigator를 찾을수 없다는 오류3.x 버전을 사용으로 사용했을때는 아래와 같은 오류가 납니다. 3.dependencies 버전에러react-native-reanimated:compileDebugJavaWithJavac :( instanceof is not supported in -source 11) java 11버전을 지원하지 않는 버전으로 이슈가 있습니다. 강사님이 빌드하신 gradle 버전이랑 자바 버전 알려주시면 동일 환경해서 다시 해보겠습니다. > Task :react-native-reanimated:compileDebugJavaWithJavac FAILEDDeprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.See https://docs.gradle.org/8.0.1/userguide/command_line_interface.html#sec:command_line_warnings64 actionable tasks: 2 executed, 62 up-to-dateinfo 💡 Tip: Make sure that you have set up your development environment correctly, by running react-native doctor. To read more about doctor command visit: https://github.com/react-native-community/cli/blob/main/packages/cli-doctor/README.md#doctorC:\project\base-react-native\MatzipApp\front\node_modules\react-native-reanimated\android\src\main\java\com\swmansion\reanimated\layoutReanimation\AnimationsManager.java:356: error: pattern matching in instanceof is not supported in -source 11if (props.get(Snapshot.TRANSFORM_MATRIX) instanceof ReadableNativeArray matrixArray) {^(use -source 16 or higher to enable pattern matching in instanceof)C:\project\base-react-native\MatzipApp\front\node_modules\react-native-reanimated\android\src\main\java\com\swmansion\reanimated\NodesManager.java:440: error: switch rules are not supported in -source 11case "opacity" -> {^(use -source 14 or higher to enable switch rules)2 errorsFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':react-native-reanimated:compileDebugJavaWithJavac'.> Compilation failed; see the compiler error output for details.* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 17sinfo Run CLI with --verbose flag for more details. ❗질문 작성시 꼭 참고해주세요현재 문제(또는 에러)와 코드(또는 github)를 첨부해주세요. 맥/윈도우, 안드로이드/iOS, ReactNative, Node 버전 등의 개발환경을 함께 적어주시면 도움이 됩니다. 에러메세지는 일부분이 아닌 전체 상황을 올려주세요. (일부만 자르거나 복사하지말아주세요.) 개발환경/코드에 대한 정보가 없을경우 답변이 어렵습니다.
-
해결됨코드로 배우는 스프링 웹 프로젝트 - Basic
섹션5 파라미터 수집과 변환에서 시차 문의
강의4에서 강의5로 넘어오면SampleController.java에 작성하지 않았던 코드가 작성되어 있습니다. 강의에서 보여지던 git 주소와실제 git에서 검색되는 레파지토리 이름이 다름.spring2024_template 인가 싶어서 보면이것도 브런치 ch03, ch07 두개 뿐인데그나마도 강의에서 보여주는 소스코드와 다릅니다. 교재와 강의와 git이 모두일관성이 없어서 따라가기가 벅차네요.강의 찍으신 거 그대로 실습해보시고 올리시는 게 맞나요 ??강의초기에 미리 만들어둔 JSP 파일이 없어서 에러나는 부분 컨트롤러 소스 주석 푸실 때 언급이라도 해주시면 좋겠습니다. 강의 마칠 때(9:22) 즈음 되어서에러나는 게 정상입니다. 라고 하시면 1~4강 강의 진행 하다가 갑자기 5강 강의 초반에 에러 떠서 이것저것 확인해보고 하느라 시간 잡아먹게 되네요.
-
미해결Next + React Query로 SNS 서비스 만들기
RequestMemoization 관련해서 질문드립니당
데이터 캐시 설정을 force-cache 로 했을 때 이걸 갱신하기 위한 방법으로 revalidate 옵션을 주거나 revalidateTag, revalidatePath 등이 있다고 하셨는데요.그러면 RequestMemoization에 의해서 캐싱된 데이터는 브라우저 새로고침 등을 하면 다시 fetch 하면서 갱신이 되는건가요?RequestMemoization 에 의해서 캐싱된 데이터는 언제 갱신되는지 궁금합니다. 그런데 제가 이해한 바로는 유저가 처음 브라우저를 통해 애플리케이션에 접근해서 해당 url 에서 요청을 보냈을 때 특정 데이터를 페칭하는 함수가 여러 컴포넌트에 있어서 그 데이터를 불러오기 위한 요청을 한 번만 함으로써 서버에 요청이 가는 것을 줄여주는것이 RequestMemoization 이라고 저는 이해를 했는데요. 어차피 처음에 같은 데이터를 보여주기 위해 여러 번의 요청을 하는 것은 불필요한 네트워크를 타게 되고 성능상에 좋지 않으니까요.이런 경우라면 사실 RequestMemoization 은 캐싱된 데이터를 갱신할 필요가 없을 수도 있겠다는 생각이 듭니다.그래서 제로초님이 별다른 언급이 없으셨나? 하는 생각도 드네요. 감사합니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
인텔리제이 앱이 안 열려요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.인텔리제이 앱이 어제까지만 해도 됬는데 갑자기 오늘 키려고 보니 현재 Pc에서는 앱을 실행할 수 없다고 뜨는데 어떻게 해야하나요?ㅠㅠ