묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Next + React Query로 SNS 서비스 만들기
서버 액션 함수의 "use server"
클라이언트 컴포넌트 안에서 서버 액션을 활용할 것이라면 서버 액션 안에다 "use server"; 를 작성하라고 했는데 그럼 서버 컴포넌트일 경우엔 굳이 "use server"를 작성할 필요 없죠?
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
종속성 충돌 질문
firebase 관련 패키지 충돌에 관한 주요 공지에서 코드대로 맞춘 다음 flutter pub get을 했는데 firebase_core의 버전을 업그레이드나 firebase_auth의 버전을 다운그레이드하라는 메세지가 떴습니다... 알려준대로 다운그레이드하거나 업그레이드 진행해도 될까요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@EqualsAndHashCode
주문 조회 V4: JPA에서 DTO 직접 조회 제공해주신 피피티에서는 @EqualsAndHashCode 를 사용하는데 강의에서는 제가 못 본것 같습니다.. @EqualsAndHashCode 를 사용하신 이유가 있을까요? 강의 중 9분 34초 에서 본 OrderQueryDto는 @Data만을 사용했습니다.
-
해결됨스프링 핵심 원리 - 기본편
섹션 9 - 빈 스코프의 Singleton에서 Prototype을 사용할 때 관리주체는?
프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결위 강의에서는 Singleton Bean에서 필드 객체로 Prototype를 사용해야 할 경우를 알려주고 있는데, 이전 강의에서는 Prototype의 관리 주체는 Di를 통해 가져올 경우 Spring Container라고 했으나, 결국 Bean에서 Dependency Lookup을 통해 객체를 생성할 경우 관리 주체는 Prototype이기 때문에 개발자가 Prototype Bean의 관리주체가 된다고 했습니다. 이 때, Spring Container가 아닌 개발자가 직접 Prototype Bean을 관리한다는 것은 어떤것인지, 그리고 실제 Prototype Bean을 관리하는 상황을 몇가지 듣고싶습니다.
-
해결됨취업/이직에 성공할 수 밖에 없는 포트폴리오 전략 강의
디스코드 커뮤니티 링크 오류
공유해주신 디스코드 커뮤니티 링크로 들어갔을 때 만료된 초대장이거나 완료된 초대장으로 뜨고 있습니다 ~ 혹시 접속할 수 있는 방법이 없을런지요 ?
-
해결됨모두를 위한 모두의 EVM 블록체인 BApp 개발 - 입문
import "hardhat/console.sol"; 어디에 있나요?
import "hardhat/console.sol"; 위 hardhat 폴더 생성 및 console.sol 파일 생성에 대한 내용이 없는 것 같습니다.확인 부탁드립니다.
-
미해결실전! Querydsl
쿼리메서드에서 And Or 조건 혼용시 괄호를 표현하는 방법이 있나요?
안녕하세요.JPA 쿼리메서드를 사용하면서 궁금한점이 있어 질문 드립니다.SELECT Col_A, Col_B, Col_C, Col_D FROM TBL_AWHERE Col_A = 'aaa' and Col_B = 'bbb' and (Col_C = 'ccc' or Col_D = 'ddd')일반 쿼리로 위의 WHERE 문의 조건을 쿼리메서드로 작성하고자 하는데 내공이 부족하여 잘 안됩니다.findByCol_AAndCol_BAndCol_COrCol_D(String A, String B, String C, String D)이렇게 작성할 경우WHERE Col_A = 'aaa' and Col_B = 'bbb' and Col_C = 'ccc' or Col_D = 'ddd'이 같이 괄호가 없는 쿼리문으로 작성이 되는거 같습니다.쿼리메서드로 and와 or 조건의 괄호를 묶는 방법이 있을까요?
-
해결됨
vm poweroff
안녕하세요, 강사님.destory하고 cen1~3까지 다시 vagrant up한 상태인데,계속 poweroff로 status가 표시되고 있습니다.vagrant destroy후에 up,resume 등을 다시 진행해도 poweroff상태인데 어떻게 poweron시켜야할지 문의드립니다!
-
해결됨Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
firebase 설정시 문제가 생겨요
Failed to load resource: net::ERR_BLOCKED_BY_CLIENTclient-entry.js:144 [Quasar] boot error: TypeError: Failed to fetch dynamically imported module: http://localhost:9000/src/boot/firebase.js(anonymous) @ client-entry.js:144 quasar.config.js 에서 boot: ['firebase'] 설정시 위와 같은 console.error가 발생합니다!구글로그인 단계로 넘어가지 못하고 있는데, 방법을 모르겠어요 ㅠㅠ
-
미해결홍정모의 따라하며 배우는 C++
구조체 안의 구조체
#include <iostream> #include <string> using namespace std; struct Person { double height; float weight; int age; string name; void print() { cout << height << " " << weight << " " << age << " " << name; cout << endl; } }; struct Family { Person me, mom, dad; }; int main() { Family fm1; Person fm1.me = { 2.0,100.0,20,"Jack Jack" }; fm1.me.age = 4.0; fm1.me.print(); return 0; }여기에서 Person fm1.me = { 2.0,100.0,20,"Jack Jack" };Error expected a ';' E0065가 뜹니다. fm1 안에 정의된 me를 초기화하고 age만을 바꾸어서 출력하고 싶은데 어떻게 해야 되나요?
-
해결됨스프링 시큐리티
최신 spring security 기준 web.ignoring 관련 질문입니다
현재 최신 spring security 및 spring 3.2.1 버전을 사용중입니다.강의 섹션 3-2번강의에서 web.ignoring 설정이 현재 SecurityFilterChain에는 어떻게 적용해야 될지 몰라 찾아보던 중 아래와 같은 자료를 발견하였습니다.해당 자료는 spring security 관련https://docs.spring.io/spring-security/reference/servlet/authorization/authorize-http-requests.html#favor-permitall위의 주소에서 확인하였는데 이부분과 관련하여 질문드립니다. 최신 버전에서는 위의 사진과 같이 코드를 사용하는게 좋을까요? 만약 위와 같이 사용한다면 달라지는 부분이 있는지 궁금하여 질문드립니다. 현재 제가 작성한 코드는 아래와 같습니다.추가한 부분은 css, js, img, favcon.ico, webjars 입니다http .authorizeHttpRequests(Authorize -> Authorize .requestMatchers("/mypage").hasRole("USER") .requestMatchers("/messages").hasRole("MANAGER") .requestMatchers("/config").hasRole("ADMIN") .requestMatchers("/css/**").permitAll() .requestMatchers("/js/**").permitAll() .requestMatchers("/img/**").permitAll() .requestMatchers("/favcon.ico").permitAll() .requestMatchers("/webjars").permitAll() .requestMatchers("/").permitAll() .anyRequest().authenticated() );전체 부분 @Configuration @EnableWebSecurity @Slf4j public class SecurityConfig{ @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication().withUser("user").password(new BCryptPasswordEncoder().encode("1111")).roles("USER"); auth.inMemoryAuthentication().withUser("manager").password(new BCryptPasswordEncoder().encode("1111")).roles("MANAGER","USER"); auth.inMemoryAuthentication().withUser("admin").password(new BCryptPasswordEncoder().encode("1111")).roles("ADMIN","MANAGER","USER"); } @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } @Bean protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests(Authorize -> Authorize .requestMatchers("/mypage").hasRole("USER") .requestMatchers("/messages").hasRole("MANAGER") .requestMatchers("/config").hasRole("ADMIN") .requestMatchers("/css/**").permitAll() .requestMatchers("/js/**").permitAll() .requestMatchers("/img/**").permitAll() .requestMatchers("/favcon.ico").permitAll() .requestMatchers("/webjars").permitAll() .requestMatchers("/").permitAll() .anyRequest().authenticated() ); http.formLogin( formLogin -> formLogin .successHandler(new AuthenticationSuccessHandler() { @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { RequestCache requestCache = new HttpSessionRequestCache(); // 이걸 이용해 세션에 원래 가고자 하는 경로 저장되어 있음 SavedRequest savedRequest = requestCache.getRequest(request, response); //여기에 저장되어있음 String redirectUrl = savedRequest.getRedirectUrl(); log.info("redirectUrl : " + redirectUrl); response.sendRedirect(redirectUrl); } }) .permitAll() ); http .csrf(csrf -> csrf. csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) ); return http.build(); } }
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
WillPopScope 이제 안쓰이는거 같네여
PopScope로 쓰이는거 같네여 - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
강의 repositories 링크는 어디에서 구할수 있나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
-
미해결Next + React Query로 SNS 서비스 만들기
prefetch하는 queryFn이 Data Cache가 적용 되는 부분에 대해 이해가 잘 안가는 것이 있습니다
Next.js의 Data Cache가 동작하는 부분에 대해 궁금한 것이 생겨서 또 한번 질문 드립니다ㅠ공식문서도 찾아봤는데 제가 못 찾은건지 관련 내용을 찾을 수가 없네요 아래의 코드는 Home폴더의 page.tsx 에서 prefetch + dehydrate 를 진행하고 있습니다이때는 getPostRecommends에 대해서 Next.js의 Data Cache가 제대로 동작합니다. (fetch에 어떠한 옵션도 걸어두지 않았습니다)/home URL에서 새로고침을 계속 진행해도 loading.tsx가 보이지 않으며faker.js로 랜덤한 이미지를 반환하게 설정했음에도 계속 같은 이미지를 보여주기 때문입니다 그렇지만, 아래와 같이 prefetch + dehydrate 하는 부분을 page.tsx가 아니라 TabDeciderSuspense.tsx 라는 서버 컴포넌트로 빼서 사용 할 경우이때도 getPostRecommends를 서버컴포넌트에서 fetch를 하는 것임에도, Next.js의 Data Cache가 아예 적용되지 않습니다/home URL에서 새로고침을 할 때마다 loading.tsx가 delay(3000) 동안 보여지며faker.js의 랜덤한 이미지가 계속 보여지기 때문입니다처음에는 Suspense를 사용해서 그런건가 싶었는데 사진에 올린 것처럼 Suspense를 제거했음에도 동일한 현상이 나타나는걸로 봐서는다른 부분에 원인이 있는 것 같은데 혹시 왜 이렇게 되는 것인지 알 수 있을까요?혹시 fetch하는 부분이 page.tsx에 있어야만 Data Cache가 진행되는 것인가요..?
-
미해결[입문편] 안드로이드를 위한 코틀린(Kotlin) 문법
int, string?
안녕하세요! 타입과 형변환을 보고있는데요, 제가 아예 쌩초보라 벌써 헷갈려서요..!fun main() { val test1 = "1234" val test2 = 1234 println(test1 + 1) println(test2 + 1)} 강의에서 test1은 문자니까 문자열이 합쳐지는 것이고, test2는 숫자니까 더해지는 거라고 말씀해 주셨는데,println(test1 + 1)에서 뒤에 더해주는 1은 (""없어도) string 타입이고, println(test2 + 1)에서 뒤에 더해주는 1은 int 타입인 건가요??
-
미해결Flutter 중급 2편 - 실전 앱 개발 - 미국 주식 앱 (with 클린 아키텍처)
개남님 질문있씁니다! company_listing_entitiy가 왜 엔티티 인가요?
개남님 안녕하세요. 두 가지 여쭐 것이 있습니다!도메인 영역에 entitiy가 아니라 model 폴더를 위치하셨던데, freezed로 생성한 이상 각종 메소드가 들어가기에 "정석적인 속성만 존재하는 entitiy라고 보기엔 조금 그래서 model로 구분하셨구나~"하고 넘어갔습니다. 맞을까요?? 글구 company_listing_entitiy는 data 레이어에 속하는데 왜 entity인지 궁금합니다. 제가 아직 강의 초반이라 이해가 부족한 것인지.. 보통 data 레이어에서 api통신/로컬db와 관련된 비즈니스 로직에 사용할 model을 정의하고, 맵퍼가 도메인의 entity로 반환해 주는 구조로 이해했는데 이러면 CompanyListingEntity가 아니라, CompanyListingModel이 맞지 않나요? 제가 너무 시야를 좁게 보는 것 같기도하고.. 헷갈려 여쭙니다!
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Restaurant Repository 구현하기부분 restaurant_repository.g에서 오류
레포지토리 추가하는부분 수강중인데 getRestaurantDetail부분을 제너레이트하면 생성된코드에서빨간줄이그이네요....restaurant_repository에서 오타난부분도 없는것같은데 해결책을 잘 모르겠습니다.... 잘 부탁드립니다 ㅠㅠ깃헙링크도 남겨보겠습니다...!https://github.com/hottunes/hukuoka_eatimport 'package:dio/dio.dart'; import 'package:hukuoka_eat/restaurant/model/restaurant_detail_model.dart'; import 'package:retrofit/http.dart'; part 'restaurant_repository.g.dart'; @RestApi() abstract class RestaurantRepository { // http://$ip/restaurant/ factory RestaurantRepository(Dio dio, {String baseUrl}) = _RestaurantRepository; // @GET('/') // paginate(); // http://$ip/restaurant/:id/ @GET('/{id}') Future<RestaurantDetailModel> getRestaurantDetail({ @Path() required String id, }); }
-
미해결김영한의 실전 자바 - 기본편
NextInt 후 NextLine 쓰기
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오)[질문 내용]System.out.print(i+1+"번째 주문 정보 입력"); System.out.print("상품명 : "); String productName = scanner.nextLine(); System.out.print("가격 : "); int price = scanner.nextInt(); System.out.print("수량 : "); int quantity = scanner.nextInt(); scanner.nextLine(); //입력 버퍼를 비우기 위한 코드price 입력 받을 때와 quantity 입력 받을 때 둘다 int형으로 입력을 받는데 quantity 수량 받을 때는 nextLine을 해주는데,왜 price를 받을 때는 nextLine을 안해줘도 되는것일까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
Query parameter와 Path parameter의 적절한 사용 방법이 궁금합니다
/members?q=100 가 나은건지/members/100 이 나은건지 각각의 적절한 사용 방법이 궁금합니다
-
해결됨실전! FastAPI 입문
test 코드 질문
강의 너무 잘보고 있습니다test 코드 실습 중에 생긴 문제인데요def test_update_todo(client, mocker): mocker.patch.object(ToDoRepository, "get_todo_by_todo_id", return_value=ToDo(id=1, contents="todo", is_done=True)) mocker.patch.object(ToDoRepository, "update_todo", return_value=ToDo(id=1, contents="todo", is_done=True)) body = { "is_done": False } response = client.patch("/todos/1", json=body) assert response.status_code == 200 assert response.json() == {"id": 1, "contents": "todo", "is_done": True} # 404 mocker.patch.object(ToDoRepository, "get_todo_by_todo_id", return_value=None) response = client.patch("/todos/1", json=body) assert response.status_code == 404 assert response.json() == {"detail": "ToDo Not Found"}이런식으로 test 코드를 작성한 다음에 리팩토링 과정에서 잘못선택되서 todo_id가 빠진 상태로 코드를 올렸습니다@router.patch("/{todo_id}", status_code=200) def update_todo_handler( todo_id: int, is_done: bool = Body(..., embed=True), todo_repo: ToDoRepository = Depends()): todo: ToDo | None = todo_repo.get_todo_by_todo_id() # 이 부분 todo_id를 빼버림 if todo: todo.done() if is_done else todo.undone() todo: ToDo = todo_repo.update_todo(todo) return ToDoSchema.from_orm(todo) else: raise HTTPException(status_code=404, detail="ToDo Not Found")이게 제가 잘못 작성한 코드고 todo.get_todo_by_todo_id 함수에 parameter를 안넣고 pytest를 실행해도 mocker.patch로 지정된 값이 넘어오게 되니까 에러가 나지 않더라구요 실행하면 당연히 500 internal error가 발생하는데 혹시 이런 경우까지 방지하도록 test 코드를 바꾼다면 어떻게 바꿔야할까요?