묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
void의 정확한 의미를 모르겠어요
안녕하세요 챕터 6 부분을 공부하고 있는데 void를 쓰는 경우와 안쓰는 경우의 차이가 잘 와닫지 않습니다. 리턴값이 없으면 void를 쓰고, 리턴값이 있으면 void를 안쓴다고 알고 있는데 리턴값부터 이해가 잘 가지 않네요!예를 들어서// 호텔 주소 public static String getAdress() { return "서울시 어딘가"; }과셋째 줄에 sout "서울시 어딘가" 를 쓰는 것은 무엇이 다른건지요?감사합니다 :)
-
미해결스프링 핵심 원리 - 기본편
Provider 에러관련해서 질문있어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]implementation 'javax.inject:javax.inject:1' 추가 후 리로드 해줬는데도 하기와 같은 에러가 발생해서요..org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'singletonWithPrototypeTest1.ClientBean': Unsatisfied dependency expressed through field 'prototypeBeanProvider': No qualifying bean of type 'javax.inject.Provider<hello.core.scope.SingletonWithPrototypeTest1$PrototypeBean>' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}강의를 똑같이 따라 했는데 왜 이런 에러가 발생하는지 혹시 알 수 있을까요?
-
미해결스프링 핵심 원리 - 기본편
@Configuration 유무 질문
안녕하세요, @Bean이 있더라도,@Configuration이 있어야만, 싱글톤이 보장된다(프록시,,,)고 알고 있습니다... 그러나 강의 중에 보면 Class TestConfig에 @Configuration이 없어도 싱글톤 처럼 작동을 하네요,,(statefulService1 = hello.core.singleton.StatefulService@d78795statefulService2 = hello.core.singleton.StatefulService@d78795) 해당 부분은 왜 그런지 자세한 설명 요청드립니다... public class StatefulServiceTest { @Test void statefulServiceSingleton() { ApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class); StatefulService statefulService1 = ac.getBean("statefulService", StatefulService.class); StatefulService statefulService2 = ac.getBean("statefulService", StatefulService.class); System.out.println("statefulService1 = " + statefulService1); System.out.println("statefulService2 = " + statefulService2); //ThreadA: A사용자 10000원 주문 statefulService1.order("userA", 10000); //ThreadB: B사용자 20000원 주문 statefulService2.order("userB", 20000); //ThreadA: 사용자A 주문 금액 조회 int price = statefulService1.getPrice(); //ThreadA: 사용자A는 10000원을 기대했지만, 기대와 다르게 20000원 출력 System.out.println("price = " + price); Assertions.assertThat(statefulService1.getPrice()).isEqualTo(20000); } // @Configuration static class TestConfig { @Bean public StatefulService statefulService() { return new StatefulService(); } } }
-
미해결스프링 핵심 원리 - 기본편
@beforeEach 사용하는 이유가 궁금합니다.
@beforeEach 를 사용하면 모든 테스트는 자신이 실행되기 전에 이 작업을 수행한다 라고 되어있는데 MemberServiceTest 부분에서 @beforeEach를 안쓰고MemberService memberService; AppConfig appConfig = new AppConfig(); memberService = appConfig.memberService();위와같이 쓰니 오류(Unknown class: 'memberService')가 났습니다.MemberService memberService; @BeforeEach public void beforeEach(){ AppConfig appConfig = new AppConfig(); memberService = appConfig.memberService(); }위의 코드처럼 @BeforeEach 사용해야 appConfig와 memberService를 정의 할 수 있는 이유가 궁금하며 @BeforeEach가 없으면 왜 오류가 나는지 궁금합니다.답변주시면 정말 감사하겠습니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
Static boolean, Static void 호출
클래스에 static boolean canAutoReport = false; static void callServiceCenter() { System.out.println("서비스 센터(1588-0000)로 연결합니다."); }이렇게 선언해두었는데 b1.canAutoReport 나 b1.callServiceCenter()이 안됩니다. BlackBox.canAutoReport랑 BlackBox.callServiceCenter() 는 되는데 뭐가 문제일까요?
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
아!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
아!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!package c6; import java.util.Scanner; public class _01_methood { /**메소드*/ public static void methood(int old, boolean birsthay) { if (birsthay == true) { any_old = old - 1; } else { any_old = old - 2; } System.out.println("내 이름은 xx이, " + old + "살이다. \n 만나이는 " + any_old + "살이다."); } public static void main(String[] args) { methood(11, false); } }java: cannot find symbol symbol: variable any_old location: class c6._01_methood
-
미해결스프링 핵심 원리 - 기본편
MemberServiceTest 실행 시 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 테스트 코드 실행 시 다음과 같은 오류가 발생합니다. 구글링해봐도 이유를 잘 모르겠네요.Process finished with exit code -1073741819 (0xC0000005)
-
해결됨스프링 핵심 원리 - 기본편
new 연산자 질문입니다.
[질문 내용]여기에 질문 내용을 남겨주세요.private final MemberRepository memberRepository = new MemoryMemberRepository();이 코드의 의미가 궁급합니다.제 생각했는 데 이 코드는 "MemberRepository타입이며 MemoryMemberRepository 클래스의 객체인 memberRepository를 생성한다" 라는 의미이며그래서 다형성에의해 MemoryMemberRepository 에 있는 메소드를 사용할 수 있다. 라고 생각합니다.그럼 또 궁금한 게 만약 private final MemoryMemberRepository memberRepository = new MemoryMemberRepository();이렇게 쓰면 어떻게 되는 지 궁금합니다.답변 주시면 정말 감사하겠습니다.
-
미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
이것이 왜 실행이 안되는지 여쭙고 싶네요.
void main() { Idol bts = const Idol.fromList([['제이홉','슈가'],'BTS']);}class Idol { final String name; final List<String> members; Idol(this.name, this.members); const Idol.fromList(List values) : this.members = values[0], this.name = values[1];}constructor를 const로 만들려고 하는데 잘 안되서요..이 코드는 왜 실행이 안되는건지 여쭤봐도 될까요..
-
해결됨스프링 핵심 원리 - 기본편
@Configuration과 싱글톤에서 memberRepository1, 2가 값이 달라요.
package hello.core.order; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPolicy; import hello.core.discount.RateDiscountPolicy; import hello.core.member.Member; import hello.core.member.MemberRepository; import hello.core.member.MemoryMemberRepository; public class OrderServiceImpl implements OrderService { // final 변수는 생성자를 통해 값이 반드시 할당 되어야 함 private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPrice = discountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } // 테스트 용도 public MemberRepository getMemberRepository() { return memberRepository; } }package hello.core.member; public class MemberServiceImpl implements MemberService { // private final MemberRepository memberRepository = new MemoryMemberRepository(); private final MemberRepository memberRepository; public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Override public void join(Member member) { memberRepository.save(member); } @Override public Member findMember(Long memberId) { return memberRepository.findById(memberId); } // 테스트 용도 public MemberRepository getMemberRepository() { return memberRepository; } } [ConfigurationSingletonTest]package hello.core.singleton; import hello.core.AppConfig; import hello.core.member.MemberRepository; import hello.core.member.MemberServiceImpl; import hello.core.order.OrderServiceImpl; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import static org.assertj.core.api.Assertions.*; public class ConfigurationSingletonTest { @Test void configurationTest() { ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); MemberServiceImpl memberService = ac.getBean("memberService", MemberServiceImpl.class); OrderServiceImpl orderService = ac.getBean("orderService", OrderServiceImpl.class); MemberRepository memberRepository = ac.getBean("memberRepository", MemberRepository.class); MemberRepository memberRepository1 = memberService.getMemberRepository(); MemberRepository memberRepository2 = orderService.getMemberRepository(); System.out.println("memberService -> memberRepository = " + memberRepository1); System.out.println("orderService -> memberRepository = " + memberRepository2); System.out.println("memberRepository = " + memberRepository); assertThat(memberService.getMemberRepository()).isSameAs(memberRepository); assertThat(orderService.getMemberRepository()).isSameAs(memberRepository); } }클래스는 강의 내용 따라 작성했습니다. 그런데 테스트 결과가 아래와 같이 나옵니다.02:27:22.491 [main] DEBUG org.springframework.context.annotation.AnnotationConfigApplicationContext - Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@63355449 02:27:22.499 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalConfigurationAnnotationProcessor' 02:27:22.560 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.event.internalEventListenerProcessor' 02:27:22.562 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.event.internalEventListenerFactory' 02:27:22.562 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalAutowiredAnnotationProcessor' 02:27:22.563 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalCommonAnnotationProcessor' 02:27:22.566 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'appConfig' 02:27:22.569 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'memberService' 02:27:22.572 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'memberRepository' 02:27:22.572 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'orderService' 02:27:22.573 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'discountPolicy' memberService -> memberRepository = hello.core.member.MemoryMemberRepository@71e693fa orderService -> memberRepository = hello.core.member.MemoryMemberRepository@48793bef memberRepository = hello.core.member.MemoryMemberRepository@7d286fb6강의에서는 memberService와 orderService가 같은 값을 가리켜야한다고 하는데 다른 값이 나와서 오류를 찾고있습니다. 오류를 찾는게 쉽지 않아 질문 드립니다!
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
연산자 파트 질문
안녕하세요 연산자 첫 파트 강의를 듣고 있는데요밑에 (1) 식에서는 c를 30으로 한번 출력하고 다시 식을 줄 때c = a - b;로 바로 했는데(2)에서는 val = 10;을 다시 선언하고 한게 무슨 차이인지모르겠습니다.(2)에서 처음 val 이 11로 됐기 때문에 다시 val=10;으로 한거라면(1)에서도 c는 30이 됐으니까 다시 c를 0으로 해줘야 하는거 아닌지.. (1)int a = 20; int b = 10;int c;c = a + b;System.out.println(c); //30c = a - b;System.out.println(c); //10 (2)int val; val = 10; System.out.println(val); //10 System.out.println(++val); //11 System.out.println(val); //11 val = 10; System.out.println(val); System.out.println(val++); System.out.println(val);
-
미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
초급강의를 수강할때 질문입니다.
초급강의를 수강할때는 꼭 flutter프로그램을 다운받아야 하나요? 감사합니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
Switch Case가 헷갈립니다.
안녕하세요 강의 너무 잘 듣고 있습니다 ㅎㅎ switch case를 공부하다가 헷갈리는 것이 생겨서 여쭙니다.case 3부터 1까지 8000, 9000, 10000원이라고 하셨는데 작동원리를 잘 모르겠습니다. 코드 순서대로라면 1등급이 순서 상 첫번째 이기 때문에 7000 + 1000 해서 8000으로 시작해서, case 3이 마지막으로 10000원이 되야할것만 같은데 그렇지 않은 이유를 알려주세요...// 중고상품의 등급에 따른 가격 책정 (1급: 최상, 4급: 최하) int grade = 1; // 등급 int price = 7000; // 기본 가격 switch (grade) { case 1: price += 1000; case 2: price += 1000; case 3: price += 1000; break; } System.out.println(grade + "등급 제품의 가격: "+ price + "원"); } }
-
미해결자바 : 클래스의 이해와 객체지향 프로그래밍
인터페이스의 다중상속
안녕하세요!강의 잘 듣고 있습니다.추상 클래스와 인터페이스의 사용 구분을 조금 더 명확히 하고 싶어 구글링을 하다보니,클래스 상속에서 "다중 상속의 모호성" 때문에 자바에서 다중 상속을 막고 있다는 글을 보게 됐습니다.여기서 말하는 "다중 상속의 모호성"이란 아래와 같이 car, plane의 클래스에 모두 drive()메서드가 구현돼어 있을 경우 어떤 클래스의 drive를 호출할지 모호하다는 것 입니다.! class MyVehicle extends car, plane{ @OVerride public void goTo(){ super.drive(); }출처 : https://brunch.co.kr/@kd4/6 그러면 인터페이스를 다중 상속을 하게 되면, 이러한 문제는 해결이 되는지 궁굼합니다.. 아래와 같이 두개의 인터페이스가 존재할 때, interface car { void goTo(){} } interface plane{ void goTo() } class MyVehicle implements car, plane{ @OVerride public void goTo(){ }car과 plane을 상속 받을 경우 , car의 추상메서드인 goTo, plane의 추상메서드인 goTo둘다 구현을 해야할텐데, MyVehicle에서 goTo를 하나만 구현해도, 괜찮은건가요? 아니면 다른 방법이 있는지 궁굼합니다. 현재 인텔리제이로 코드를 쳐보니, 두개의 클래스 둘다 구현이 완료돼서 문제가 없는 것으로 나오는데, 이유가 무엇인가요? interface plane{ void goTo(); } interface car { void goTo(); } public class MyVehicle implements car, plane{ @Override public void goTo() { System.out.println("구현했따우"); } public static void main(String[] args) { MyVehicle my = new MyVehicle(); my.goTo(); } } 아래는 car, plane클래스 모두 goTo가 구현이 됐다고 표기되는 모습입니다. 감사합니다!
-
미해결자바 : 클래스의 이해와 객체지향 프로그래밍
자식 클래스가 부모 클래스를 캐스팅 할 때,
안녕하세요!강의 정말 잘 듣고 있습니다. class PBoard { public void PBoard(){ System.out.println("PBoard method"); } } class CBoard extends PBoard{ public void Cboard(){ System.out.println("Cboard method"); } } public class ClassCast { public static void main(String[] args) { PBoard sbd1 = new CBoard(); System.out.println(sbd1.getClass().getName()); CBoard sbd2 = (CBoard)sbd1; System.out.println(sbd1.getClass().getName()); System.out.println("-------------"); } }위의 예제와 같이 자식 객체를 생성하고 부모타입으로 타입 캐스팅 한 경우, System.out.println(sbd1.getClass().getName()); 에서 부모 클래스가 나올 줄 알았는데, 자식 클래스가 나옵니다!혹시 그 이유가, 참조변수는 부모 클래스형이지만, 메모리에는 자식클래스가 올라와 있기 떄문인가요?자바에서 타입을 조회할 때 메모리를 조회하는지, 참조변수 형을 조회하는지 궁굼합니다..! 감사합니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
프로그래밍 언어 공부방법
안녕하세요 자바라는 언어로 프로그래밍 공부에 입문했는데요강의에서 알려주신 여러 함수나 내용들 모두 암기 해야하나요?자꾸 잊어버려서 걱정이네요.. 쉽게 암기하는 법을 알려주시면 감사하겠습니다.암기하지 않는다면 배운 내용을 어떻게 써먹을 수 있나요?처음 프로그래밍 공부라 국영수 공부 할때와는 조금 다른 느낌입니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
파일, 폴더 생성 관련 질문 있습니다!!
저는 test.txt 파일 만들 때도 바로 안나타나서 인텔리제이를 껐다가 키니까 나왔는데 폴더 만들기에서도 A 폴더가 존재한다고 나오는데 옆에 보이지가 않네요 ㅠㅠ 이거 왜 그렇죠?..
-
미해결스프링 핵심 원리 - 기본편
스프링 빈 호출시 질문있어요 !!
스프링 부트 쓸때는 그냥 편하게 스프링 빈 가져왔는데 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class); DiscountPolicy rateDiscountPolicy = ac.getBean("rateDiscountPolicy",DiscountPolicy.class);본 강의에서는 이처럼 ac 객체만들고 ac.getBean()해서 들고오는 이유가 뭐죠 ?? 제 생각에는 클래스 2개가 둘다 스프링 빈 등록시 그냥 편하게 가져와서 쓰면 된다. 하지만 만일 A클래스는 스프링빈 등록 x, B클래스는 스프링 빈 등록 시A에서 B객체를 들고 올때는 강의와 마찬가지로 ac.getBean()으로 들고와야 한다 혹시 맞나요 ??
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
강의 내용 출력 오류
강의에서 나온데로 잘 따라 한 것 같은데 실행하면 가로로 출력되지 않고 세로로 출력됩니다.이유를 알려주시면 감사하겠습니다.
-
해결됨PHP 7+ 프로그래밍: 객체지향
로컬환경에서 개발 후 운영환경으로 배포 시 발생하는 이슈에 대한 문의입니다.
질문에 앞서 해당 질문은 'CentOS 7.* 서버쪽으로 배포를 해보던 중에 질문드립니다.' 질문과 연관됩니다. 안녕하세요. 이번 강의를 통해 만들어본 프로젝트를 운영환경쪽으로 배포해 보고자 합니다.운영환경 서버 S/W 정보는 아래와 같습니다. [서버 S/W 정보] 1. OS: CentOS 7.9 2. Language: PHP 7.3.27 3. Database: MariaDB 10.4.17 4. Web Server: Apache 2.4 (기본적인 APM 구성을 따르고 있습니다.) 현재 아파치 웹 서버의 가상호스트(VirtualHost) 설정을 통해 부여된 도메인으로 접근이 가능하도록 설정해 놓은 상황입니다. 하지만 사이트 접근 시 500 Error 페이지로 전환됨에 따라 PHP error log를 확인해 본 결과 아래와 같은 에러 메시지가 출력되고 있는 상황이었습니다. PHP Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ')' in {DOCUMENT ROOT}/vendor/painkill2r/inflearn-lecture-lib/src/Application.php on line 27 소스코드를 확인해 보니 Arrow Function에서 문제가 발생하는 것 같아서 문법 지원 버전을 확인해보니 PHP 7.4부터 지원되는 문법으로 확인이 되어 운영환경은 PHP 7.3을 사용하고 있기 때문에 에러 페이지로 전환되는 것으로 원인 파악이 되었는데요. 이런 경우 PHP 버전 업데이트를 하지 않고서는 해결이 불가능한 문제인지 아니면 다른 문법으로 변경을 해서라도 접속이 되게 할 수 있는지 첨언 부탁드립니다.감사합니다.