묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결토비의 스프링 부트 - 이해와 원리
인용구의 출처가 궁금합니다.
안녕하세요. 강의 마지막에 조영호님의 프레임워크에 대한 견해를 소개해주셨는데요. 조영호(프레임워크3부) 라는 설명이 달려있는데프레임워크3부 라는 것이 무엇인지 알 수 있을까요?
-
해결됨오브젝트 - 기초편
다형성을 이용한 역할 디자인과 그에 대응되는 영속성 저장소에서의 모델 디자인의 괴리
안녕하세요. 영호님 좋은 책 그리고 그에 보충되는 강의를 정말 잘 읽고 있습니다. 책을 읽고 많은 교훈(역할, 책임 협력의 중요성)을 얻고 실무에 반영해보려했던 2년간의 경험이 있었습니다.역할과 책임에 따른 객체에 따른 클래스 디자인을 설계하고 관계형 데이터베이스와 ORM 기술을 이용해서 설계를 진행할 경우 테이블이 많아지는 경향성이 있다고 느껴왔습니다. DB 모델과 객체 모델은 달라야하는 걸까요? 아니면 같은 형태로 가도록 지향해야할가요? 비즈니스에 맞게 유연하게 진행해야하는 것은 알지만 여기서 "유연하게"가 모델과의 일치를 지향하면서 최적화를 해나가야하는건지 조영호님의 경험과 의견이 궁금합니다. (질문이 제대로 전달되는지 모르겠네요.)
-
미해결스프링 핵심 원리 - 기본편
데이터 호출관련 문의드립니다
package hello.core; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.order.Order; import hello.core.order.OrderService; import hello.core.order.OrderServiceImpl; public class OrderApp { public static void main(String[] args) { OrderService orderService = new OrderServiceImpl(); MemberService memberService = new MemberServiceImpl(); Long id=10L; Member member = new Member(id, "aaa", Grade.VIP); memberService.join(member); System.out.println(member.getName()+" "+" "+member.getId()+" "+" "+member.getGrade()); Order order = orderService.createOrder(id,"XBOX",100000); // // System.out.println("order = " + order); } }멤버의 정보까지는 정상적으로 불러와지는데 주문정보를호출하는 과정부터 멤버 정보를 받아오지 못하는거 같습니다.public interface OrderService { Order createOrder(Long id, String itemName, int itemPrice) throws IllegalStateException; }public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository = new MemoryMemberRepository();//회원 정보 찾기 private final DiscountPolicy discountPolicy = new FixDiscountPolicy();//할인 금액 @Override public Order createOrder(Long id, String itemName, int itemPrice) { Member member = memberRepository.findById(id); if(id ==null){ throw new IllegalStateException("유효하지 않은 아이디 입니다" + id); } int discountPrice = discountPolicy.discount(member, itemPrice); return new Order(id, itemName, itemPrice,discountPrice); } }public class Order { private Long id; private String itemName; private int itemPrice; private int discountPrice; public Order(Long id, String itemName, int itemPrice, int discountPrice) { this.id = id; this.itemName = itemName; this.itemPrice = itemPrice; this.discountPrice = discountPrice; } public int calculatePrice(){ return itemPrice - discountPrice; //비지니스 로직 } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getItemName() { return itemName; } public void setItemName(String itemName) { this.itemName = itemName; } public int getItemPrice() { return itemPrice; } public void setItemPrice(int itemPrice) { this.itemPrice = itemPrice; } @Override public String toString() { return "Order{" + "id=" + id + ", itemName='" + itemName + '\'' + ", itemPrice=" + itemPrice + ", discountPrice=" + discountPrice + '}'; } }order 패키지 쪽 소스 인데 수정해야 될부분이 있을까요Exception in thread "main" java.lang.NullPointerException: Cannot invoke "hello.core.member.Member.getGrade()" because "member" is null at hello.core.discount.FixDiscountPolicy.discount(FixDiscountPolicy.java:10) at hello.core.order.OrderServiceImpl.createOrder(OrderServiceImpl.java:20) at hello.core.OrderApp.main(OrderApp.java:22)에러는 이와같이 발생합니다도와주셔서 감사합니다
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
자식 클래스의 생성자 함수는 부모 클래스의 생성자 함수를 기본적으로 실행시키지 않나요?
5:50을 보면, s2 생성 시 super가 없으면 부모의 기본 생성자함수 A()를 먼저 실행시킨 후 this()가 실행되어야하지 않나 해서요.
-
해결됨[초급] QML 프로그래밍 2편
TableView에서 ImplicitWidth, ImplicitHeight와 일반 width, height의 차이가 궁금합니다.
안녕하세요.TableView의 예제에서 ImplicitWidth와 ImplicitHeight 대신 width, height를 그냥 사용하였더니, Rectangle의 사이즈가 설정해준 값을 유지하지 못하고 그 보다 작은 정사각형 형태로 실행되어버리네요.혹시 Component 내에서 Rectangle 사용 시에는 Implicit를 width와 height에 꼭 붙여서 사용해야 하고, 일반 width와 height는 사용하면 안되는 걸까요?
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
안드로이드 버튼이 정사각형으로 보이는 문제
안녕하세요 강사님!날짜를 선택하면 아이폰에서는 원형으로 나오는데 안드로이드에서는 정사각형으로 나옵니다ㅠㅠ
-
해결됨[초급] QML 프로그래밍 2편
GridView에서 Padding과 Margin의 차이가 있을까요?
안녕하세요.GridView 예제에서 topPadding과 같이 Padding을 통해 간격을 설정하는 거 같던데, Margin을 사용하는 것과 차이가 있는걸까요?
-
미해결코로나맵 개발자와 함께하는 지도서비스 만들기 2
marker 크기 관련 질문
안녕하세요. 강의를 듣고 있는 고등학생입니다. 학교 프로젝트로 강의 하천이나 수질을 나타내는 지도 서비스를 만들려고 하는데 강의 길이에 따라 마커의 크기를 바꾸고 강의 수질에 따라 마커의 색을 바꾸고 싶습니다. css 파일 자체에서 index.js에서 선언된 변수에 따라 마커의 크기를 바꿀 수는 없나요??
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
target sdk 34, 에뮬레이터 실행 문제 질문
현재 빌드 진행 중 이러한 오류가 발생합니다.7 issues were found when checking AAR metadata:1. Dependency 'androidx.appcompat:appcompat-resources:1.7.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).2. Dependency 'androidx.appcompat:appcompat:1.7.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).3. Dependency 'androidx.activity:activity:1.8.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).4. Dependency 'androidx.core:core-ktx:1.13.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).5. Dependency 'androidx.transition:transition:1.5.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).6. Dependency 'androidx.core:core:1.13.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).7. Dependency 'androidx.annotation:annotation-experimental:1.4.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).이후 해결을 위해 build.gradle.kts 파일에서compile, target Sdk를 모두 34로 올리고,dependencies { implementation("androidx.core:core-ktx:1.9.0") implementation("androidx.appcompat:appcompat:1.7.0") implementation("com.google.android.material:material:1.12.0") implementation("androidx.constraintlayout:constraintlayout:2.1.4") implementation("androidx.databinding:databinding-runtime:8.7.0") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.2.1") androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1") }dependencies에서 core-ktx 버전을 1.9.0에서 1.13.1로 올렸습니다.이후 빌드에서 오류가 발생하지 않는 걸 확인했습니다.하지만 이후에도run app이 불가능해서 앱을 확인할 수 없었습니다.혹시 sdk 버전 올라가면서 변경할 점이 추가로 있다면 알려주실 수 있나요..
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
Build가 안됩니다..
BUILD FAILEDThe following build commands failed:CompileC /Users/gyeongdeok/Library/Developer/Xcode/DerivedData/matzip-ggkhtgdnrjngpwgdmpbaaurtozob/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/FlipperKit.build/Objects-normal/x86_64/FlipperPlatformWebSocket.o /Users/gyeongdeok/Documents/01.git/matzip/client/ios/Pods/FlipperKit/iOS/FlipperKit/FlipperPlatformWebSocket.mm normal x86_64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'FlipperKit' from project 'Pods')Building workspace matzip with scheme matzip and configuration Debug(2 failures)]npx react-native run-ios를 실행시키면 어마어마하게 긴 에러가 쭉 나오고 끝에 build failed라고 뜨는데 뭐 찾아보니 flipper쪽 문제라는데... flipper 코드를 없애거나 여러 방법을 해봤는데 잘 안되네요...시뮬레이터는 잘 켜집니다.. 컴퓨터는 인텔맥입니다..
-
해결됨[초급] QML 프로그래밍 2편
ListView에서 currentIndex 작동안됩니다.
안녕하세요.ListView의 예제에서 currentIndex: 50 으로 두고 실행시켜보아도 실행 시 시작은 항상 0에서 시작합니다.currentIndex: 50이면 실행 직후 창에 보이는 시작 인덱스가 0이 아닌 50에서 시작할 거 같은데 맞을까요?
-
해결됨Godot Engine 마리오라이크 2D PC 게임 만들기
변수 이름 한글인 이유??
안녕하세요.취미로 godot 엔진 개발 공부하고 있는 초보 개발자입니다.다름이 아니라 변수명을 한글로 지정하시는 이유가 궁금합니다.유니티도 잠깐 해봤고 여러 언어를 해봤는데 변수명을 한글로 지었던 기억은 없어서 단순 호기심에 질문 남깁니다.강의 잘 듣고있습니다.감사합니다 ㅎㅎ
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
리턴값
함수와 재귀함수 (v2) 59:06에서 arr[0]이 어떻게 리턴이 되는지 궁금합니다. arr[0]이 max 값으로 리턴 되는건가요? return arr[0]값이 위에 int maxval로 리턴이 돼서 밑에 있는maxVal(arr, size-1) 함수에 값이 대입이 돼서 max에 arr[0]이 대입된건가요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
운영체제 페이징교체 알고리즘 OPT 13:30 질문 드립니다.
안녕하세요. 운영체제 페이징교체 알고리즘 OPT 13:30 질문 드립니다. 문자열 보면 4도 있는것 같은데 안쓰는 이유가 있을까요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
tomcat manager 연결 문제
tomcat manager 접속 문제가 지속됩니다. tomcat-users.xmlcontext.xml 이외에 csrf 보호 비활성 작업 등 다른 조치를 취해봐도 계속 403 오류가 지속되어 질문 드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강사님이 보시는 문서 볼 수 있는 곳이 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강사님이 보시는 문서 볼 수 있는 곳이 있나요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
switch-case 3:46초
len=5 여서 case5부터 쭉 브레이크가 나올때까지 폭포수처럼 흐르는 방식으로 하는건가요? case3,4는 건너뛴 이유가 len=5여서 인가요?
-
해결됨김영한의 실전 자바 - 기본편
클래스 따로 만들어 선언하는 이유
package ref.ex; public class ProductOrder { String productName; int price; int quantity; }package ref.ex; public class ProductOrderMain2 { static ProductOrder createOrder(String productName, int price, int quantity) { ProductOrder order = new ProductOrder(); order.productName = productName; order.price = price; order.quantity = quantity; return order; } static void printOrders(ProductOrder[] orders) { for (ProductOrder order : orders) { System.out.println("상품명: " + order.productName + ", 가격: " + order.price + ", 수량: " + order.quantity); } } static int getTotalAmount(ProductOrder[] orders) { int amount = 0; for (ProductOrder order : orders) { amount += order.price * order.quantity; } return amount; } public static void main(String[] args) { ProductOrder[] orders = new ProductOrder[3]; orders[0] = createOrder("두부", 2000, 2); orders[1] = createOrder("김치", 5000, 1); orders[2] = createOrder("콜라", 1500, 2); printOrders(orders); System.out.println("총 결제 금액: " + getTotalAmount(orders)); } }섹션3, 기본형과 참조형 문제와 풀이여기에서 productName, price, quantity를 다른 클래스에 따로 선언하는 이유가 인스턴스를 생성하기 위함인가요? 만약 맞다면, 클래스 ProductOrderMain2의 멤버변수로 선언하고 만들면 비효율적인가요? 아니면 불가능한가요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
isLoaded, gerReference
emf.PersistenceUnitUtil.isLoaded()로 프록시 인스턴스가 초기화 되었는지를 확인할 때 Member member1 = new Member(); member1.setUsername("user1"); em.persist(member1); em.flush(); em.clear(); Member refMember = em.getReference(Member.class, member1.getId()); System.out.println("refMember.getClass() = " + refMember.getClass()); // refMember.getUsername(); // 프록시에 없는값을 조회하여 프록시를 초기화 // Hibernate.initialize(refMember); // refMember를 강제로 초기화 System.out.println("isLoaded(refMember) = " + emf.getPersistenceUnitUtil().isLoaded(refMember)); tx.commit();이런 상황이면 false가 나오는 이유에 대해 메커니즘을 제대로 이해했는지 모르겠어서 문의드립니다!저는 getReference만으로도 객체를 생성했으니까 초기화가 이루어졌구나라고 이해했는데,처음 getReference로 조회하면 프록시 객체가 생성될 때 원래의 Entity를 상속받아서 생성되는게 아니라,아규먼트 값의 getId값만으로 프록시가 생성되었기 때문에 초기화는 아직 안한 상태여서 그런것일까요?그럼 초기화를 해야서 프록시의 target에 실제 객체를 연결해야지만 실제 엔터티를 상속받은 프록시 객체라고 이해해야할지 명확하게 이해가 안되어서 문의드립니다!
-
미해결
react Suspense ErrorBoundary ??
react로 개발하시는 분들이라면 Suspense ErrorBoundary 용어에 친숙하실텐데요.개발하면서 몇가지 궁금증이 생겨 질문드립니다.1. 데이터 패칭을 부모에서 진행하고 자식요소에서 로딩처리를 하고싶을때는 suspense 사용개념상 선언적으로 처리 못하는데 이런경우는 보통 어떻게 처리하시나요?2. mutation 에러가 났을때, 대부분의 ui에서는 노티하는 토스트알랏을 사용하는데요. 보통은 한곳에서 토스트 알랏으로 에러처리를 하는데 특수사용처에서 만 공통에러 처리가 아닌 커스텀 한 에러 알랏으로 ui를 제공하고 싶을땐 어떻게 처리할까여?3. Suspense ErrorBoundary를 사용하게 되면 데이터의 흐름이 직관적으로 보이지 않는 경우가 생기는데요.예를 들어 부모에서 바운더리 공통컴포넌트가 중첩 될 경우 (글로벌 바운더리, 사용처 바운더리 혼용)어떠한 자식 컴포넌트에서 패칭을 하는지 확인하려면 컴포넌트 내부를 살펴봐야 됩니다. 이런 경우 어떠한 규칙을 세우고 개발 하는지 궁금합니다.