inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

코드에 대한 피드백 부탁드립니다.

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. package array; import java.util.Scanner; public class ArrayEx10_1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String[] productName = new String[10]; int[] productPrice = new int[10]; int productCount = 0; while (true) { System.out.println("1. 상품 등록 | 2. 상품 삭제 | 3. 상품 목록 | 4. 종료\n메뉴를 선택하세요." ); String options = scanner.nextLine(); if (options.equals("1") && productCount < 10) { System.out.print("상품 이름을 입력하세요: "); productName[productCount] =scanner.nextLine(); System.out.print("상품 가격을 입력하세요: "); productPrice[productCount] =scanner.nextInt(); productCount++; scanner.nextLine(); } else if (options.equals("1") && productCount == 10) { System.out.println("더 이상 상품을 동록할 수 없습니다."); } else if (options.equals("2") && productCount > 0) { for (int i = 0; i < productCount; i++) { System.out.println((i+1) + ". "+ productName[i] + ": " + productPrice[i] + "원"); } System.out.println("삭제할 품목의 번호를 입력해주세요."); int delNum = scanner.nextInt(); if ((delNum-1) < productCount) { productName[delNum-1] = null; productPrice[delNum-1] = 0; productCount--; System.out.println(delNum + "번 품목이 삭제되었습니다."); scanner.nextLine(); } else { System.out.println("올바른 품목의 번호를 입력해주세요."); scanner.nextLine(); } } else if (options.equals("2") && productCount == 0) { System.out.println("삭제할 품목이 없습니다."); } else if (options.equals("3") && productCount > 0) { for (int i = 0; i < productCount; i++) { System.out.println((i+1) + ". "+ productName[i] + ": " + productPrice[i] + "원"); } } else if (options.equals("3") && productCount == 0) { System.out.println("등록된 상풍이 없습니다."); } else if (options.equals("4")) { System.out.println("프로그램을 종료합니다."); break; } else { System.out.println("올바른 메뉴를 선택해주세요."); } } } } 실습을 하다가 삭제기능도 있었으면 해서 만들어 봤습니다.우선, 강의를 봤을 때와 조금 다르게 만든거 같구요. 메뉴를 선택할 때 글자를 넣으면 오류가 떠서 스트링형으로 바꿨습니다. 위 코드에서 가독성 측면이나 중복 등 피드백 가능하실까요...?또 추가로 강사님이었으면 어떻게 하셨을 것 같나요??

  • java
  • 객체지향
김대경 댓글 2 좋아요 0 조회수 310

자바 메모리에 대해서 질문이 있습니다.

미해결

김영한의 실전 자바 - 기본편

안녕하세요 영한님의 자바 기본편 강의를 듣다가 궁금한 점이 생겨서 아래와 같이 질문을 남겼습니다. 자바 메모리에서 메서드는 스택 영역에 스택 프레임으로 쌓여서 호출한다고 말씀해주셨습니다. 다음 설명에서는 결국 메서드 영역의 있는 메서드 코드를 호출한다고 말씀해주셨는데 그렇다면 스택 영역은 메서드 영역 안에 있는 것인가요??

  • java
  • 객체지향
삥돌이 댓글 2 좋아요 0 조회수 335

동일성, 동등성

해결됨

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. "동일성 비교가 필요한 경우에만 equals() 재정의" -> 동등성 아닌가요?

  • java
  • 객체지향
skesswswkk 댓글 2 좋아요 0 조회수 590

request scope과 aop

미해결

스프링 핵심 원리 - 기본편

[질문 내용] 안녕하세요. 강의를 매우 잘 듣었습니다. 강의를 듣던중 scope를 request로 설정하고 로그를 기록을 알려주셨던 부분에서 궁금증이 생겼습니다. 요청마다 uuid를 활용하여 로그를 기록하는 것은 aop를 활용한다면 scope 설정 없이도 가능할 것이라 생각이 드는데 scope를 지정하여 활용하는 방식만의 이점이 있을가요?

  • spring
  • 객체지향
박대균 댓글 1 좋아요 0 조회수 264

ConfigurationSingletonTest 테스트 실행시 오류

미해결

스프링 핵심 원리 - 기본편

에러 문장이고 OrderServiceImpl의 타입의 변수 orderService에서 method getMemberRepository()를 찾을 수 없다는 뜻같은데 OrderServiceImple의 .getMemberRepository()에서 에러가 납니다. OrderServiceImpl을 가니 이상이 없는거 같은데 잘모르겠습니다.

  • spring
  • 객체지향
180621 댓글 2 좋아요 0 조회수 318

실습. dto 변환해보기

미해결

코틀린 문법부터 실무까지 (실전 자바->코틀린 변환)

변환도중 85line에서 NullPointException 오류메시지가 나와서 *.http테스트가 안됩니다. 85line 코드는 assertEquals(7, response.getExperienceYears().intValue()); 이고 아래와 같이 오류메세지가 나옵니다. Method invocation 'intValue' may produce 'NullPointerException' CreatePrince.kt에서 @NotNull @Min(0) val experienceYears: Int? = null, null 허용을 해줬는데 NPE를 뱉어서 문의드립니다

  • java
  • spring
  • kotlin
  • spring-boot
  • 객체지향
jheom 댓글 1 좋아요 1 조회수 378

예외처리

미해결

김영한의 실전 자바 - 중급 1편

1 번 코드 질문: 1 번 코드에서 빨간색과 같이 terminal 에서 돌리면 test.txt 라는 파일은 있지만 txxxxt.txt 라는 파일이 없으므로 throws 를 해서 프로그램을 종료 시키는 건가요??? 그런데 왜 다시 이 아래에 올바른 파일 이름 test.txt new.txt 를 하면 새로운 파일 new.txt 가 만들어지나요? 만약 예외 처리를 throws 하면 프로그램이 종료되므로 처음부터 다시 javac ExampleA.java 를 해주고 나야만 다시 java ExampleA test.txt new.txt 를 할 수 있는거 아닌가요?

  • java
  • 객체지향
ghuhan18 댓글 1 좋아요 0 조회수 294

예외처리

미해결

김영한의 실전 자바 - 중급 1편

만약 제가 이 코드를 만들었다고 가정해보겠습니다. 그러면 제가 어떤 근거로 이게 chekcedException 이므로 try-catch 를 이용하거나 throws 를 해야한다는 것을 알 수 있죠?

  • java
  • 객체지향
ghuhan18 댓글 1 좋아요 0 조회수 278

configurationTest 인스턴스

해결됨

스프링 핵심 원리 - 기본편

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); Assertions.assertThat(memberService.getMemberRepository()).isSameAs(memberRepository); Assertions.assertThat(orderService.getMemberRepository()).isSameAs(memberRepository); } } public MemberRepository getMemberRepository() { return memberRepository; } public MemberRepository getMemberRepository() { return memberRepository; } MemberServiceImpl, OrderServiceImple 둘 다 위의 코드처럼 getMemberRepository까지 다 만들었는데 인스턴스가 다르게 나오는 이유는 뭘까요?

  • spring
  • 객체지향
찬영 댓글 1 좋아요 0 조회수 215

DiscountPolicy discount()의 매개변수 관련 질문

미해결

스프링 핵심 원리 - 기본편

public interface DiscountPolicy { /** * * @return 할인 금액 */ int discount(Member member, int price); } discount()의 매개변수 int price는 FixDiscountPolicy에서는 사용되지 않고 RateDiscountPolicy에서만 사용됩니다. 모든 구현 클래스에서 사용되지는 않는 매개변수를 인터페이스에 선언했다는 점이 잘 이해가 되지 않습니다. 모든 구현 클래스에서 사용되지 않는 매개변수를 인터페이스 level에 선언해도 괜찮은 것인지 여쭤보고 싶습니다.

  • spring
  • 객체지향
도토리 댓글 1 좋아요 0 조회수 246

모든 빈 출력에서 에러가 떠요

해결됨

스프링 핵심 원리 - 기본편

2분 30초에 런 해보는데 에러가 나옵니다. 파일 추가하라는 것도 했고 다 했는데 에러가 떠요 깃허브에 코드도 올렸는데 이것도 참고해주세요...!

  • spring
  • 객체지향
린린링 댓글 1 좋아요 1 조회수 279

[3.StringClass][str.concat] concat질문 (p.8, p.15)

미해결

김영한의 실전 자바 - 중급 1편

[p.8 / str.concat 오류 이유 -> 불변 ] 하기 코드의 오류가 발생한 이유는 str.concat(" java")를 한 내용을 String타입의 변수로 담아주지 않았기 때문입니다. package lang.string.immutable; public class StringImmutable1 { public static void main(String[] args) { String str = "hello"; str.concat(" java"); System.out.println("str = " + str); } } 그에 비해 반면, p.15의 concat부분이 이해가 되지 않습니다 . package lang.string.method; public class StringChangeMain1 { public static void main(String[] args) { String str = "Hello, Java! Welcome to Java"; System.out.println("인덱스 7부터의 부분 문자열: " + str.substring(7)); System.out.println("인덱스 7부터 12까지의 부분 문자열: " + str.substring(7, 12)); System.out.println("문자열 결합: " + str.concat("!!!")); System.out.println("'Java'를 'World'로 대체: " + str.replace("Java", "World")); System.out.println("첫 번째 'Java'를 'World'으로 대체: " + str.replaceFirst("Java", "World")); } } 상기에서 str.concat을 한것은 어떠한 String변수에도 담기지 않았습니다. 그럼에도 불구하고, str과 !!!가 합쳐져서 나온것을 볼 수 있습니다. 불변의 String 객체의 내용이 변수에 담지 않았음에도 불구하고 합쳐져서 나오는 이유는 무엇인가요? 궁금합니다!!

  • java
  • 객체지향
개화동과자사장 댓글 1 좋아요 1 조회수 290

Order의 할인 금액, 주문 금액 관련 질문

미해결

스프링 핵심 원리 - 기본편

public class Order { private int discountPrice; // 할인금액 public int calculatePrice() { // return: 주문금액 return itemPrice - discountPrice; } } (1) 주문 금액을 필드가 아닌 메서드로 두신 이유가 정말 궁금합니다. (2) 1개의 주문에 대해서는 여러 상품이 존재할 수 있고, 하나의 상품을 여러 개 주문할 수도 있습니다. 이 예제에서는 주문 1개에 대해서, 상품 1개를 1개만 구매할 수 있다는 상황이 가정된 것인가요?

  • spring
  • 객체지향
도토리 댓글 1 좋아요 0 조회수 229

equals()

미해결

김영한의 실전 자바 - 중급 1편

String str1 = "Hello" ; String str2 = "Hello" ; 이때에는 boolean result = str1.equals(str2) ; 를 하면 result = true; 인 이유가 무엇이고, Dog dog = new Dog("HI") ; Car car = new Car("HI") ; 이떄에는 boolean result = dog.equals(car) ; 이건 result 가 false 인 이유가 무엇인가요 ? 저 위의 String 예시에서는 object classs 의 equals 메서드를 사용하는게 아닌건가요 ? 그리고 만약 Object class 의 equals 메서드를 애초에 equals() 수업에서 오버라이딩 한것처럼 만들면 되는거 아닌가요 ? ( 오버라이딩의 수고스러움을 덜기 위해)

  • java
  • 객체지향
ghuhan18 댓글 1 좋아요 0 조회수 378

object class

미해결

김영한의 실전 자바 - 중급 1편

만약 object class 가 제공하는 equals() 에 대해서 어느 한 A라는 클래스가 다른 특정한 B 클래스를 extends 하면 A 클래스 내에서는 equals() 를 사용하지 못하는건가요 ?

  • java
  • 객체지향
ghuhan18 댓글 1 좋아요 0 조회수 271

열거형 Grade 질문

해결됨

김영한의 실전 자바 - 중급 1편

안녕하세요 영한님 enum Grade 안에 discount 메서드를 추가하는 부분을 보면서 궁금한 부분이 생겼는데, 실제로도 이러한 등급 enum이 있을 때, 등급에 따른 배송비 무료나 사은품 증정 같은 혜택의 로직들을 enum의 내부에서 다루는 걸까요?

  • java
  • 객체지향
ycllyo 댓글 1 좋아요 0 조회수 261

다형성 참조에 관하여 질문 있습니다.

미해결

김영한의 실전 자바 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. Parent poly = new Child(); 이코드가 부모에 자식을 참조 할 수 있다는건 알겠습니다. 그런데 근본적으로 코드가 해석이 명확히 안됩니다. Parent타입의 변수 poly를 선언하고 poly에 Child클래스의 객체를 생성후 그 객체의 참조값을 대입을 한건가요? 그럼 이 그림에서 Parent poly = new Child(); 이 코드를 작성시 메모리에 Parent도 생성이 되는걸로 나와있는데 Child객체만 생성된거 아닌가요? Parent도 메모리가 할당되는 이유가 궁금합니다. 그리고 자식의 기능을 호출 할 수 없다고 하셨는데 poly에 결과적으로 Child객체의 참조값이 대입된거 아닌가요? 그러면 참조값을 찾아서 메소드를 호출 할 수 있는거 아닌가요?

  • java
  • 객체지향
명석 댓글 2 좋아요 0 조회수 300

다형적참조와 메서드 오버라이딩 관련해서 질문있습니다!!

미해결

김영한의 실전 자바 - 기본편

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요! 강의 너무 잘보고있습니다 ㅎㅅㅎ 다형적 참조에서 궁금한 점이 있어 질문 드립니다! 사진처럼 Child에서 Parent 메서드를 오버라이딩 했습니다. 인스턴스는 Child로 생성했고, parent 변수에 업캐스팅 해주어 Parent type으로 변경했습니다. 근데 결과가 부모(Parent)의 parentMethod()가 실행될줄 알았는데 오버라이딩 된 자식의 메서드가 실행되었습니다..! 저는 위의 그림처럼 될것이라고 생각했습니다. 강의에서도 자식방향으로는 내려갈 수 없다고 하셨고, 같은type인 Parent 인스턴스 부터 메서드를 찾아서 부모의 parentMethod가 실행될줄알았는데 어째서 밑으로 내려간 것인지 궁금합니다!! 추가로) instanceof (5:00쯤) 강의에서도 자식방향으로 내려갈수 없으니 다시 다운사이징 해줘서 child.childMethod()를 호출했다고 이해했습니다. 다른질문글을 찾아보긴했는데 컴파일시, 런타임시에 뭔가 다다고하셨고 오버라이딩은 런타임 때에 알수있어서라는 식의 답변을 보았는데 이해가 안돼서 질문드립니다 흑흑.. 설명해주시기 너무길면 어떤 개념을 찾아보아야 하는지 알려주실수있을까요!!

  • java
  • 객체지향
한슬기 댓글 2 좋아요 0 조회수 343

섹션7 문제와풀이 상품구매

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

안녕하세요! 강의를 듣고있는데 상품구매 문제에서 강사님은 if문을 사용하셨는데 저는 switch문을 사용해서용 .. switch문 써도 된다고 하시긴 하셨는데 정확한 답이 없어서 이게 맞는지 잘 몰라서 질문드립니다! 그리고 switch문보다 if문을 사용하는게 더 괜찮을까요 .. ?

  • java
  • 객체지향
Geniee 댓글 1 좋아요 0 조회수 183

lombok spring 3.2.x 설치 관련 문의

미해결

스프링 핵심 원리 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 모름 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 [질문 내용] Java 21 버전, spring boot 3.2.1 , dependency-management 1.1.4 입니다. lombok관련해서 이슈가 있어 깔리지 않는걸까요 ? 아예 에러도 안뜹니다.

  • spring
  • 객체지향
180621 댓글 2 좋아요 0 조회수 624

인기 태그

인프런 TOP Writers

주간 인기글