묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 개발자를 위한 코틀린 입문(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}]") }
-
해결됨스프링 핵심 원리 - 기본편
람다식 질문입니다.
@Test @DisplayName("빈 이름으로 조회X") void findBeanByNameX(){ //MemberService xxxx = ac.getBean("xxxx", MemberService.class); assertThrows(NoSuchBeanDefinitionException.class, () -> ac.getBean("xxxxx", MemberService.class)); }위에 코드 () -> ac.getBean("xxxxx", MemberService.class)의 ()는 어떤 인터페이스의 추상메서드를 오버라이딩하는건지 궁금합니다.MemberService인터페이스에는 인자없는 추상메서드가 없어서 거기로 가진않았다고 생각이 드는데...public interface MemberService { void join(Member member); Member findMember(Long memberId); } () -> ac.getBean("xxxxx", MemberService.class) 람다식을 해석해주시면 정말 감사하겠습니다.
-
해결됨스프링 핵심 원리 - 기본편
getBean 함수 질문
getBean() 함수와 관련하여 궁금점이 생겨 질문합니다.applicationContext.getBean("memberService", MemberService.class);위의 코드에서 스프링 컨테이너에 bean이 등록될 때,key = 메서드명, value = 메서드에 의해 반환되는 객체(인스턴스) 라고 설명해주셨었는데요.위의 함수에서 MemberService.class 가 하는 역할이 어떤 것인지 궁금합니다. + MemberService는 interface 인데, 인터페이스.class 가 문법적으로 하는 기능이 궁금합니다.
-
해결됨스프링 핵심 원리 - 기본편
구글 드라이브 링크 올립니다 !!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]https://www.inflearn.com/questions/754068/junit-not-found-%EC%97%90%EB%9F%AC?re_comment_id=236576위 링크의 질문에 대한 아래 링크입니다 .!! https://drive.google.com/file/d/1tz3wamqddAz_yTDk7krX2Q1dYps8w1se/view?usp=sharing
-
해결됨스프링 핵심 원리 - 기본편
AppConfig 리팩터링 관련 질문
강의를 듣던중 궁금한 것이 생겨서 질문합니다.AppConfig를 리팩터링하는 과정에서 아래와 같은 과정을 보았는데요.1. new MemoryMemberRepository() 2. private MemberRepository memberRepository() { return new MemoryMemberRepository(); } 1에서 2로 변환하는 과정에서 2번의 리턴값의 타입을 MemoryMemberRepository(구현 클래스)가 아닌 MemberRepository(인터페이스)로 해주어야한다고 하셨는데요. 사실 지금 이 상황에서는 구현 클래스로 지정해주어도 프로그램이 돌아가는데는 문제가 없을 것 같은데, 인터페이스로 지정한 이유는 추후에 MemberRepository의 구현 클래스를 변경할 여지가 있기 때문인가요?
-
해결됨스프링 핵심 원리 - 기본편
@Configuration과 싱글톤 memberRepository1,2 다른값
memberRepository1,2 다른값으로 나와가지고 다른 질문글에 답해주신 것처럼AppConfig에서@Bean public static MemberRepository memberRepository() { return new MemoryMemberRepository(); }static을 빼서 해결은 했는데 static붙고 안붙고 어떤차이 때문에 결과가 다르게 나오는건지 이해가 안돼서 질문드립니다!
-
미해결스프링 핵심 원리 - 기본편
SingletonService 호출 관련 질문
안녕하세요. 강의 너무 잘 듣고 있습니다.싱글톤 패턴을 사용하는 테스트 코드에서SingletonService.getInstance(); 로 SingletonService 객체를 받는데 그 전에 private static final SingletonServiceinstance = new SingletonService(); 가 호출되고 그 다음getInstance()가 호출되어야 이 객체를 받을 수 있는 것아닌가요??private static final SingletonServiceinstance = new SingletonService(); 이 부분은 언제 호출되어서 정상적으로 객체가 반환되는지 알고 싶습니다..!
-
해결됨스프링 핵심 원리 - 기본편
isSameAs 와 isEqualTo ( @Configuration과 싱글톤 강의)
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.<@Configuration과 싱글톤> 강의 9분 50초 부분 듣다가 궁금한데요.isSameAs( ) 의 경우 reference로 메모리상 같은 객체를 가리키고 있는지 비교하는 것이고 isEqualTo() 의 경우 value로 객체가 같은 값을 가지고 있는지 비교하는거라고 봤는데지금 강의 부분에서는 memberRepository1, memberRepository2, memberRepository셋 다 모두 같은 주소값(엄밀히 말해서 주소값은 아니지만요 편의상 주소값이라 할게요) 을 가지고 있고, 같은 객체를 가리키고 있는거죠?그렇다면 어차피 주소값이 같다면 같은 객체인거니까검증할 때 꼭 isSameAs()가 아닌 isEqualTo() 를 사용해도 상관이 없는건가요?
-
해결됨스프링 핵심 원리 - 기본편
코드 질문
package hello.core.member; public interface MemberService { void join(Member member); Member findMember(Long memberId); }package hello.core.member; public interface MemberRepository { void save(Member member); Member findById(Long memberId); }에서 findMember, findById객체를 왜 Member타입으로 설정하는 건가요?