묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 핵심 원리 - 기본편
OrderService와 MemberService는 왜 서로 다른MemoryMemberRepository를 사용하는 건지 궁금합니다!
AppConfig에서 다음과 같이 각각 MemberService와 OrderService를 생성자에서 각각 따로MemoryMemberRepository를 새로 생성하는데 이렇게 하면 클라이언트는 같은 리포지토리를 공유를 안하지 않나요?? 서로다른 서비스가 같은 리포지토리를 공유하여 사용하는게 아니고 각각의 리포지토리를 사용한다고 생각하니 의문이 들어서 질문드립니다!!아니면 우선 DIP를 지키기 위한 코드를 보여주려고 이렇게 짜신건 지 궁금합니다!
-
미해결스프링 핵심 원리 - 기본편
스프링부트 빈 이름 조회
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스프링부트에선 강의에서처럼 ac를 통한 조회를 못하는데 빈 이름을 어떻게 조회할 수 있을까요?
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
기본생성자 질문드리겠습니다.
BlackBox(){}BlackBox(String modelName, String resolution, int price, String color){}위와같이 매개변수가 없는 기본생성자매개변수가 있는 생성자가 있는 경우에 해당 클래스를 참조하는 객체를 생성하는 경우BlackBox b2 = new BlackBox("하양이", "UHD", 300000, "화이트");이와같이 매개변수가 있는 생성자를 참조하는 객체를 만든다면 메소드가 오버로딩이 되어 기본생성자를 호출하지 않는건가요? 매개변수가 있는 생성자와 없는 기본생성자 둘다 없는 경우에는 에러가 나지 않는데. 매개변수가 있는 생성자만 생성을 한뒤해당 메소드를 참조하는 객체를 생성하는 경우 BlackBox b2 = new BlackBox("하양이", "UHD", 300000, "화이트");와같이 형식을 맞춰 해당 객체를 생성하는 오류가 나는 이유를 알고싶습니다.
-
해결됨스프링 핵심 원리 - 기본편
스코프와 프록시 scope request 관련 질문입니다.
안녕하세요.MyLogger와 같은 기능을 현업에 적용 해보려고 합니다.각 서비스는 물론 클라이언트의 요청을 구분하기 위해 MyLogger가 필요하지만, 모든 서비스에서 MyLogger 라는 서비스를 선언을 해주는게 맞을까? 의문이 들었습니다.혹시 다른분들의 질문이 있나 찾아보던 중 https://www.inflearn.com/questions/288770/%EC%8B%A4%EB%AC%B4%EC%97%90%EC%84%9C-scope-request-%EB%A5%BC-%EB%A7%8E%EC%9D%B4-%EC%82%AC%EC%9A%A9%ED%95%98%EB%82%98%EC%9A%94더 나은 방법이 있다는걸 알게 되었습니다.해당 방법이 AOP 와 프록시를 이용한 기술인지 궁금하여, 질문드립니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
질문 드리겠습니다.
강의를 듣는 중 갑자기 의문이 들어서 질문드립니다.main메소드는 해당 클래스파일을 실행하는경우 가장 먼저 실행되는 메소드로 알고있습니다.근데 blackBox.java의 경우에는 main메소드를 생성하지 않고 개별의 메소드만 생성하여 다른 파일에서 객체를 생성하여 해당 메소드를 호출하여 사용하고있습니다.그렇다면 main메소드가 없다면 해당 클래스는 자체적으로 자신의 메소드를 수행시킬 수 없는것일까요?
-
미해결스프링 핵심 원리 - 기본편
NoSuchBeanDefinitionException 오류
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.order.OrderServiceImpl' available오류가 나온다면 AutoAppConfig에서 @ComponentScan( basePackages = "hello.core.member", <- 이 부분을 지우면 된다!! // memeber를 포함한 하위 패키지를 기준으로 찾기 때문에 // order에 대한 것 NoSuchDefiniton이 나오게된다. excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) )
-
해결됨스프링 핵심 원리 - 기본편
localhost:8080 만 쳐도 localhost:8080/hello페이지로 넘어갑니다
다른 강의 듣느라 아무것도 설정안한 화이트 에러페이지가 떠야되는데 옛날에 실습했던 이 부분이자꾸 떠요 크롬에서 캐시삭제해봐도 똑같습니다 이럴땐 아예 그 프로젝트를 삭제하면 해결이 될까요? 아님 어디를 고쳐야할까요..<!DOCTYPE HTML> <html> <head> <title>Hello</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> Hello <a href="/hello">hello</a> </body> </html>
-
해결됨스프링 핵심 원리 - 기본편
3분 경 필드 명을 빈 이름으로 변경하였을 경우에 대한 설명
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]3분 10초 경 강의 중에 생성자의 파라미터를 rateDiscountPolicy로 변경하고 필드 명을 빈 이름으로 변경하는 예시를 설명 중 필드명을 생성자의 파라미터 이름과 다르면 오류가 나온다고 하였는데 실제로 보니 fix로 바꾸어서 확인해보았는데 따로 오류는 나지 않더라구요.그래서 생각해보았는데 일단 순서상 생성자 주입이 먼저 일어나니 이 때 파라미터명을 보고 rateDiscountPolicy가 주입이 일어나고 이후 3번째 필드 주입된 곳은 앞서 주입했던 rateDiscountPolicy가 다시 들어간 것인가요?콘솔을 보니 fixDiscountPolicy는 의존 주입이 일어나지 않아서 이렇게 생각해보았습니다.
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
main 함수 실행과 관련해서 질문드립니다.
안녕하세요. 좋은 강의 잘 듣고 있습니다.현재 인텔리제이에서 src/main/kotlin 폴더를 만들어서 강의를 따라가고 있습니다.2강 강의를 듣던 도중 println(str?.length) 를 실행해보려고 main 함수를 실행시켰더니 빌드가 되면서 에러가 발생합니다.lec12 패키지의 Lec12Main class에서error: package Person does not exist 가 발생합니다.Run Configuration에서 Run이 되기 전에 Build를 안 하게 옵션을 바꿔주면 함수가 실행은 되지만 str에 null을 넣었을 때도 길이가 3이 나오는 기이한 현상이 발생합니다.어떻게 해결하는 것이 좋을까요? (일단은 에러가 나는 부분을 주석처리하고 강의를 진행하고 있습니다!)
-
해결됨스프링 핵심 원리 - 기본편
선생님의 Build.gradle 소스코드를 받을 수 있을까요
분명 예제 강의에서 알려준대로 spring 홈페이지에서 받은 파일인데 저는 assertj 나 springframework 가 Build.gradle에 안들어가 있더라고요 그래서 Build.gradle 코드를 받고싶습니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
질문이요
arrayList.add(new Student("유재석","파이썬"));여기서 (new Student("유재석","파이썬")); 는 생성자에 값을 넣는게 맞는걸까요?
-
해결됨스프링 핵심 원리 - 기본편
스프링빈을 만드는 방법
수업중에 스프링 빈을 만드는방법에 대하여 설명해 주셨는데 스프링빈을 만드는 방법직접 등록하는 방법 (Xml) factoryBean을 통해서 등록하는 방법 (일반적으로 자바 config를 사용하는 것)이렇게 이해하면 될까요??
-
해결됨스프링 핵심 원리 - 기본편
부모 - 자식 관계에서의 빈 조회
자바와 관련된 질문인데, 강의 내용과 연관성이 있어서 질문 드립니다.강의에서 스프링 빈을 조회할 때, 부모 타입으로 조회하게 되면, 자식 타입도 함께 조회된다고 하셨었는데요.인터페이스 - 구현클래스 의 관계도 부모 - 자식의 관계로 취급할 수 있는 것인가요?예를 들어, 아래의 두 경우를 보면,Map<String, DiscountPolicy> beansOfType = ac.getBeansOfType(DiscountPolicy.class); Map<String, Object> beansOfType = ac.getBeansOfType(Object.class);object는 모든 클래스의 부모 클래스이기 때문에, 모든 클래스가 상속받으므로, 부모 - 자식의 관계에 의해, 하위의 모든 자식 클래스까지 전부 조회가 되는 것은 이해가 되는데,discountpolicy의 경우, 부모 클래스의 상속을 받은 것이 아닌, 인터페이스를 실제로 구현한 것인데, 이를 부모 - 자식의 관계라고 볼 수 있는지 궁금합니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
chap_05 아스키코드 질문
영화관 좌석 번호에서 ch를 문자열로 바꾸는 부분에서 실행하면 A1~A15 까지는 정상 표시되지만 그밑에는null 로 표시가 되는데 원인이 무엇인가요? // 세로 크기 10 x 가로크기 15 에 해당하는 영화관 좌석 String[][] seats3 = new String[10][15]; char ch = 'A'; for (int i = 0; i < seats3.length ; i++) { for (int j = 0; j < seats3[i].length ; j++) { seats3[i][j] = String.valueOf(ch) + (j + 1); } ch++; // 영화관 좌석 확인 for (i = 0; i < seats3.length; i++) { // 세로 for (int j = 0; j < seats3[i].length; j++) { // 가로 System.out.print(seats3[i][j] + " "); // A1 A2 A3... } System.out.println(); }
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
다차원 배열순회 궁금점
// 다차원 배열 순회 String[][] seats = new String[][]{ {"A1", "A2", "A3", "A4", "A5"}, {"B1", "B2", "B3", "B4", "B5"}, {"C1", "C2", "C3", "C4", "C5"} }; for (int i = 0; i < 3; i++) { // 세로 for (int j = 0; j < 5; j++) { // 가로 System.out.print(seats[i][j] + " "); //A1 A2 A3... } System.out.println();이 부분에서 세로랑 가로의 순서를 바꾸는방법은 없는건가요?컴퓨터가 세로먼저 계산을 하게 되는건가요?
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
Switch Case 질문 드립니다
안녕하세요.Switch Case 강의 듣고 궁금한 점이 있어서 질문 드립니다.강의 설명 장학금 예시에서 여러 개의 case에 대해 동일한 동작을 수행할 때는 아래와 같이 case 내 statement를 안적어도 된다고 설명해주셔서 중고 상품 등급에 따른 가격 책정 예시 부분에도 case 내 동일한 동작(price+=1000)을 삭제해봤는데 출력값이 안 맞게 나오네요~ 연산 동작을 수행할 때는 적용이 안되는 건가요? 아니면 제가 뭔가를 잘못 적은걸까요?ㅎㅎgrade = 1; // 등급 price = 7000; // 기본 가격 switch (grade) { case 1: case 2: case 3: price += 1000; break; } System.out.println("2." + grade + "등급 제품의 가격: " + price + "원");
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
클래스에 생성자를 만든 후 _08_Constructor를 실행하면 에러가 납니다.
클래스 파일에 생성자를 추가 한 다음에는앞에서 했던 클래스 파일에서 오류가 나서 실행이 안되는데 단일 클래스만 실행하는 방법이 있을까요?
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
배열 생성의 세번째 네번째 방법 질문드립니다.
세번째 방법 String[] coffees = new String[] {"아메리카노", "카페모카", "라떼","카푸치노"}; 네번째 방법String[] coffees = {"아메리카노", "카페모카", "라떼","카푸치노"}; 강의에서 세번재 네번째 배열 선언의 방법이 같다고 하셨는데 new 를 이용하여 배열을 생성한다면 coffees라는 배열의 주소를 생성한다는 개념으로 알고있는데요.네번째 방법의 경우 new 를 사용하지 않아도 동일하게 객체의 주소가 생성되는것인지요. new의 정확한 이해도가 부족하여 생긴문제같은데 설명해주시면 감사하겠습니다.
-
미해결스프링 핵심 원리 - 기본편
스프링의 도움없이 싱글톤을 구현하면서 di해주는법
"스프링의 도움없이 싱글톤을 구현할 경우엔개방폐쇄원칙과 의존관계역전원칙을 위배하게 됩니다" << 이 말에 대해 궁금한점이 있습니다왜 스프링의 도움없인 싱글톤을 구현하면서 di를 해줄수없는건가요?위 사진과 같은 코드를 자바코드로 작성해주면 되는거아닌가요??..
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
코루틴의 대한 질문이 있습니다.
강사님, 강의 내용에는 코루틴이 없어 학습중에 궁금한 점이 있어서 문의드립니다.아래 코드의 실행 순서를 제가 정리 해봤습니다.제가 코루틴의 suspend, resume을 잘 이해한게 맞나 궁금해서요.물어볼 곳이 없어서, 죄송스럽게도 강사님께 문의를 하게 되었습니다.강의 내용과는 관련이 없어 답변을 해주시면 감사하겠지만, 답변이 안달리다도 괜찮습니다.감사합니다. println("Coroutine Outer") 이 실행된다.A 코루틴에서 delay를 만나, B 코루틴으로 실행권을 넘겨간다.B 코루틴도 delay를 만나, A 코루틴으로 실행권을 넘겨준다.1초가 지나고 A코루틴의 println("Coroutine A, Si")을 실행한다.반복문에 의하여 A코루틴의 2번째 delay를 만나, 다시 B 코루틴으로 실행권을 넘겨준다.B 코루틴도 1초가 지난 상태여서, 바로 println("Coroutine B, Si")을 실행한다.반복문에 의하여 B코루틴의 2번째 delay를 만나, 다시 A 코루틴으로 실행권을 넘겨준다.그 다음 4~7을 반복문이 끝날 때 까지 반복 후 코루틴이 종료된다.fun main() = runBlocking { // A 코루틴 launch { repeat(5) { i -> delay(1000L) println("Coroutine A") } } // B 코루틴 launch { repeat(5) { i -> delay(1000L) println("Coroutine B") } } println("Coroutine Outer") } fun <T> println(msg: T) { kotlin.io.println("$msg [${Thread.currentThread().name}]") }