묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
AllBeanTest 시 discountPrice 값 0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]AllBeanTest 클래스의 findAllBean 테스트하는데 자꾸 실패하네요. 1000원이 아닌 0원으로 나오는데, member.getGrade()를 해보면 VIP가 아닌 null로 나옵니다..package hello.core.autowired; import hello.core.AutoAppConfig; import hello.core.discount.DiscountPolicy; import hello.core.member.Grade; import hello.core.member.Member; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import java.util.List; import java.util.Map; public class AllBeanTest { @Test void findAllBean(){ ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class, DiscountService.class); DiscountService discountService = ac.getBean(DiscountService.class); Member member = new Member(1L, "userA", Grade.VIP); int discountPrice = discountService.discount(member, 10000, "fixDiscountPolicy"); Assertions.assertThat(discountPrice).isEqualTo(1000); } static class DiscountService { private final Map<String, DiscountPolicy> policyMap; private final List<DiscountPolicy> policies; @Autowired public DiscountService(Map<String, DiscountPolicy> policyMap, List<DiscountPolicy> policies) { this.policyMap = policyMap; this.policies = policies; System.out.println("policyMap = " + policyMap); System.out.println("policies = " + policies); } public int discount(Member member, int price, String discountCode) { DiscountPolicy discountPolicy = policyMap.get(discountCode); return discountPolicy.discount(member, price); } } }
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
31:30 영상에서는 델리게이트의 인자들을 넣어주지 않습니다.
안녕하세요 선생님 강의 잘 보고 있습니다.다름이 아니라 영상에서는 31:30초에서 33번과 34번 라인의 델리게이트의 브로드케스트 함수가OnStatChanged.Broadcast();로 끝나고 인자들을 넣어주지 않습니다. 깃허브코드에서는 OnStatChanged.Broadcast(GetBaseStat(), GetModifierStat());OnStatChanged.Broadcast(GetBaseStat(), GetModifierStat());로 인자들을 넣어줍니다. 제가 확인하였을 때는 31:30초 이후 영상에서도 수정되는 부분이 나오지 않아 질문을 남깁니다..!
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
코드 작성 시 SOLID 원칙을 처음부터 준수해가며 작성하시는지, 아니면 개발 후 리팩토링을 통해 점진적으로 변경해 나가시는 편인지 궁금합니다.
안녕하세요, 강사님.강의 정말 유익하게 잘 듣고 있습니다. 강의를 보면서 기존에 작성된 로직에서 SOLID 원칙을 위반하는 코드들을 점진적으로 개선해 나가시는걸 보고 한가지 궁금한게 생겼는데요. 강사님께서는 코드를 작성할 때 위 원칙들을 처음부터 준수해 가시면서 작성을 하시는 편인지, 아니면 기능 구현에 우선 초점을 맞춰 코드를 작성하신 뒤 강의처럼 점진적으로 리팩토링을 해나가시는 편인지 궁금합니다. 이 원칙들을 준수해가면서 코드를 작성하는 버릇이 생기게 되면 전자의 방식이 가능해지는건가요? 지금 당장 생각했을 때는 아무리 원칙을 잘 이해한다고 하더라도 쉽지는 않을 것 같아서요. ㅜ 그리고 혹시 다음 강의 계획하고 계신게 있으신가요? ㅎㅎ
-
미해결Airflow 마스터 클래스
EmailOperator 강습 중에 실행 오류 관련 문의 드립니다.
강사님*** !!!! Please make sure that all your Airflow components (e.g. schedulers, webservers, workers and triggerer) have the same 'secret_key' configured in 'webserver' section and time is synchronized on all your machines (for example with ntpd) See more at https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html#secret-key *** Could not read served logs: 403 Client Error: FORBIDDEN for url: http://e1efbc97ae25:8793/log/dag_id=dags_email_operator/run_id=manual__2024-08-24T06:22:20.118495+00:00/task_id=send_email_task/attempt=1.log [2024-08-24, 06:22:25 UTC] {local_task_job_runner.py:123} ▶ Pre task execution logs [2024-08-24, 06:22:25 UTC] {warnings.py:112} WARNING - /home/***/.local/lib/python3.12/site-packages/***/utils/email.py:155: RemovedInAirflow3Warning: Fetching SMTP credentials from configuration variables will be deprecated in a future release. Please set credentials using a connection instead. send_mime_email(e_from=mail_from, e_to=recipients, mime_msg=msg, conn_id=conn_id, dryrun=dryrun) [2024-08-24, 06:27:49 UTC] {taskinstance.py:3301} ERROR - Task failed with exception Traceback (most recent call last): File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 767, in executetask result = executecallable(context=context, **execute_callable_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 733, in executecallable return ExecutionCallableRunner( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/operator_helpers.py", line 252, in run return self.func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/baseoperator.py", line 406, in wrapper return func(self, args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/operators/email.py", line 79, in execute send_email( File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 80, in send_email return backend( ^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 155, in send_email_smtp send_mime_email(e_from=mail_from, e_to=recipients, mime_msg=msg, conn_id=conn_id, dryrun=dryrun) File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 280, in send_mime_email smtp_conn.starttls() File "/usr/local/lib/python3.12/smtplib.py", line 779, in starttls self.sock = context.wrap_socket(self.sock, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/ssl.py", line 455, in wrap_socket return self.sslsocket_class._create( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/ssl.py", line 1042, in create self.dohandshake() File "/usr/local/lib/python3.12/ssl.py", line 1320, in do_handshake self._sslobj.do_handshake() TimeoutError: _ssl.c:983: The handshake operation timed out 위 문구와 함께 현재 smtp.gmail.com에 접속이 안되는데.. (worker에서도 접속이 안됨)혹시 다른 설정이 필요할게 있을까요?
-
미해결
2160p 강의는 배속재생이 풀립니다.
강의를 보통 1.7 ~ 1.8 배속으로 수강하고 있습니다. 1080p는 문제 없는데2160p의 경우 3~4초후에 배속재생이 풀려 1x로 바뀌어 버리네요. 네트워크 속도에 따른 문제입니까? 수강하는곳의 인터넷 환경은 sk 1g로 1g 가 아니더라도 이정도 트래픽도 감당 안될만큼은 아닐거라 생각이 되네요. 확인부탁드립니다.
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
윈도우10으로 해도 되나요??
집 os가 윈도우 10이여서요..
-
해결됨김영한의 실전 자바 - 중급 1편
익명 클래스 활용2 - 리펙토링 문제 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 익명 클래스 활용2 - 코드조각을 혼자서 리펙토링 하라는 말을 듣고, 생각이 안 나다가, 커뮤니티에 있는 if문을 보게 되었고(리펙토링이 어떤지 코드 리뷰를 해달라는 질문이었습니다.),이것을 보고 이렇게 풀게 되엇고,전부다 보지는 못하였지만 강사님의 풀이를 그냥 대충 넘기며 ('10-20분도 안 됬는데 그냥 커뮤니티를 보게 되니 2-3일 후에 기억에 없어질것 같으니 그때 다시 풀까?'라는 생각을 하게됨) 보는데, 다형성의 맨 마지막 pay 문제가 생각 이 나더라고요.이럴 때에는, 객체지향의 맨 마지막 문제 및 객체지향의 ocp원칙을 설명하는 영상을 보고 오는 게 나을까요? 아니면 지금 강사님의 영상(익명클래스 활용2 만 보기)으로 충분할까요?답변 부탁 드립니다.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
facade 패턴 질문
현재 진행중인 프로젝트에 Aop 구현은 힘들어서 facade를 통해 Redisson lock을 적용해보려고 합니다.facade 패턴을 처음 접해서 그런지 프로젝트에 어떻게 적용해야 할지 고민입니다.service 로직을 건들지 않고, facade 패턴을 사용해서 역할분리 한 거에 대해서는 이해했습니다만,mvc 패턴에서, controller가 결국 동시성 제어가 적용된 서비스를 이용하려면 service(createReservation)가 아니라 facade(createReservation)를 사용해야 하는데, controller가 service로도 동시성 제어가 적용되지 않은(사용해서는 안될) 메서드(createReservation)에 접근이 가능하다는 점에서 문제가 될수도 있다고 생각했습니다.(비슷한 상황으로 컨트롤러가 reposiotry를 가끔 참조하기도 하는데, 이때의 경우는 service에 굳이 해당 로직을 만들지 않을때인데, 지금 같은 경우는 비슷한 로직이 service에도 있고, facade 에도 있는 경우라.. ) 협업에서 어떤 개발자의 실수로 service 계층의 createReservation(사용해서는 안될)가져다 쓸 수 있다는 것이 신경쓸 문제가 아닌지, 아니면 컨트롤러가 그 서비스의 메서드에 접근을 못하게 한다던지, 실제로 어떻게 적용하시는지 궁금합니다.
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
버튼모양 질문 소스코드 첨부
강의대로 소스코드 입력했는데도 원으로 나옵니다.<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!--레이아웃 기준으로 배치하기--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:text="parent\nstart"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:text="parent\nend"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="parent bottom"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentEnd="true" android:text="parent bottom\n + parent end"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="parent\ncenter"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="center\nhorizontal"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text="center\nvertical"/> </RelativeLayout>
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
Redisson lock() vs tryLock()
반드시 실행 되어야할 서비스 로직에 lock(3,TimeUnit.SECONDS) 이럭식으로 사용하려고 하는데 tryLock() 대신 써도 될지 궁금합니다.코드 찾아보면, 다들 tryLock() 쓰시던데,시스템적으로 저렇게 계속 lock획득 대기 상태로 만들어 놓으면, 안되는건지 궁금합니다.lock 대기 상태일때도 커넥션이 잡혀있나요?lock 대기상태가 많아지면 서버가 다운될 수 있나요?
-
미해결[핵집] 2025 빅데이터 분석기사(필기)_과목 3~4
통합 강의안 요청드립니다
통합 강의안 요청 드립니다.shjs07@naver.com
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Controller + RestController 함께 사용
안녕하세요! 스프링 로드맵을 수강하고 Spring Boot + Thymeleaf 로 간단한 프로젝트를 진행하던 중 궁금한 점이 있어 질문 남김니다. 좋아요 기능이나 모달창에서 일어나는 동작들은 매번 결과를 view를 넘겨주기 번거롭거나 처리하기 복잡한 것 같아서, 이러한 부분들만 일반 Controller 말고 Rest Controller를 호출하고 처리하도록 구현하고 싶은데 혹시 이런 방식으로 혼용해서 사용해도 괜찮을까요? 아니면 프로젝트의 일관성을 위해 일반 Controller만 사용하는 것이 좋을까요? 감사합니다.
-
미해결플러터와 장고로 1시간만에 퀴즈 앱/서버 만들기 [무작정 풀스택]
24년 8월 기준,, SnackBar 부분 변경
ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Row( children: <Widget>[ const CircularProgressIndicator(), Padding(padding: EdgeInsets.only(left: width * 0.036), ), const Text("로딩중,,,") ], ), duration: const Duration( milliseconds: 300 ), ), );으로 변경됨
-
미해결윤재성의 자바 기반 안드로이드 앱개발 Part 1 - UI Programming
8강 viewBinding의 경우에 안드로이드 14에서는 gradle scripts에 작성하면 에러가 나서 적용을 못하는데
8강 viewBinding의 경우에 안드로이드 14에서는 gradle scripts에 작성하면 에러가 나서 적용을 못하는데 어떻게 하면 될까요
-
미해결
fpga 강의 관련해서 보드 뿐
키트 또한 사야되는것이 맞나요? https://www.inipro.net/goods/goods_view.php?goodsNo=1000618011
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
2.1강에서 소개해주신 rlm/rag-prompt에 대해 궁금한 부분이 있습니다
Langchain에서 제공해주는 rag-prompt 기능에 대해 설명해주셨는데요 하나 궁금한게 LLM마다 prompt의 처리도 다를 것으로 생각되는데 prompt를 잘 만들어주는게 langchain 내부적으로 사용한 target model에 맞추어 최적화해주는건가요 ? 아니면 서로 다른 LLM이더라도 공통적으로 최적화된 prompt가 존재할 수 있는건가요 ?
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
사용자 등록하고 나서 H2 에서 보면 신규 사용자의 password, ssn 이 null 로 되어 있습니다.
POST 로 사용자 등록하는 예제를 수행하고 나서DB를 조회해보면 password, ssn은 null 로 되어 있습니다. 이유가 뭘까요?{ "name": "User4", "joinDate": "2024-08-23T23:35:48.706+00:00", "password": "test4", "ssn": "444444-1111111" }
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
inheritAttrs: false 명시 유무와 v-bind="$attrs" 사용 가능 여부의 관계
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요,강좌 17:39 전후로 해서root element가 n개인 자식 component에서 특정 element에 $attrs를 v-bind 하지 안흐면 run time warning이 발생한다는 설명을 해주셨습니다. 그런데 이 상황에서 inheritAttrs: false를 선언하지 않아도v-bind="$attrs"가 동작해서 run time warning이 사라졌습니다. inheritAttrs:flase를 선언하여구조상 상속을 비활성화해야만v-bind="$attrs"를 설정할 수 있는게 맞지 않나요~?이 과정에서 제가 잘못 이해한 부분이 있을까 싶어 짐코딩님께 여쭤봅니다.
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
색상베리어블 등록하기
색상베리어블 등록하기에서 질문드립니다.플로그인을 사용해서 색상을 등록하는 내용에서 ...아래와 같이 강사님의 화면과 다르게 나와서요이 플러그인을 오른쪽처럼 화면이 뜨는데....강의화면에서는 실행하면 색상들이 뜨던데...혹시 제가 중간과정을 빼놓은걸까요?
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
6-7) 이미지 사이즈 지정 위치 질문드립니다.
안녕하세요 애구마님!6-7) 7:50 쯤에 이미지의 사이즈를 지정해주기 위해 frame() 작성하시는 부분에 질문이 있습니다.bigBanner의 이미지 사이즈 지정 시AsyncImage(url:URL(string:bigBanner)) { image in image .resizable() .cornerRadius(10) .aspectRatio(contentMode: .fit) // 여기서 사이즈 지정 .frame(width: 300, height: 525) }poster의 이미지 사이즈 지정 시 AsyncImage(url: url) { image in image .resizable() } placeholder: { ProgressView() .tint(Color.white) } // 여기서 사이즈 지정 .frame(width: 100, height: 175) 첫 번째 AsyncImage를 작성하셨을 때 이미지 사이즈는 image에서 직접적으로 작성하셨는데 두번째 포스터들의 이미지 사이즈를 작성하실 때는 placeholder 아래쪽에 작성하신 이유가 궁금합니다.답변 부탁드립니다.감사합니다 :)