묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
switch 문 break vs return
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Switch 문을 while 문 중간에 넣었을 때 break 는 중단되지 않았습니다. return 문은 프로그램을 종료시켰습니다. 왜 break 문은 쓸 수 없는지 궁금합니다!package method.ex; import java.util.Scanner; public class MethodEx4 { static Scanner sc = new Scanner(System.in); static int balance = 0; public static void main(String[] args) { while (true) { switch (chooseMenu()) { case 1 -> balance = deposit(); case 2 -> balance = withdraw(); case 3 -> checkBalance(); case 4 -> { printFooter(); return; // break 대신에 return 문 쓰기 } default -> printError(); } } } static int chooseMenu() { System.out.println("------------------------"); System.out.println("1.입금|2.출금|3.잔액 확인|4.종료"); System.out.println("------------------------"); System.out.print("선택: "); return sc.nextInt(); } static int deposit() { System.out.print("입금액을 입력하세요: "); int depositAmount = sc.nextInt(); balance += depositAmount; System.out.println(depositAmount + "을 입금하였습니다. 현재 잔액: " + balance + "원"); return balance; } static int withdraw() { System.out.print("출금액을 입력하세요: "); int withdrawAmount = sc.nextInt(); if (balance >= withdrawAmount) { balance -= withdrawAmount; System.out.println(withdrawAmount + "원을 출금하였습니다. 현재 잔액: " + balance + "원"); } else { System.out.println(withdrawAmount + "원을 출금하려 했으나 잔액이 부족합니다."); } return balance; } static void checkBalance() { System.out.println("현재 잔액: " + balance + "원"); } static void printFooter() { System.out.println("시스템을 종료합니다."); } static void printError() { System.out.println("잘못 번호를 입력하였습니다."); } }
-
미해결김영한의 실전 자바 - 기본편
대원칙... 값 변경 예제 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]VarChange1 예제에서 int b=a ; 일 경우a의 값이 20으로 변경되었다 해서a의 값만 변경되었기 때문에 b의값도 20으로 변경되지 않고 b=10 인 것으로 이해했습니다. 그런데 VarChage2 예제에서는 dataA의 값이 20으로 변경된 경우dataB의 값도 같이 20으로 변경 되었는데,VarChage1 의 예제와 차이점은 기본형과 참조형의 차이라고보면될까요? 참조형일 경우 같은 참조값을 바라보기 때문에 a의 값이 변경되면 b의값도 같은 값으로 불러온다고 이해하면될까요?
-
미해결스프링 핵심 원리 - 기본편
spring initializr 에서 자바 버전11이 없는데 어찌해야 하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]spring initializr 에는 자바 버전이 21과 17만 있던데요 다른 질문들 댓글 살펴봤더니 스프링부트 3버전으로 하면 17로 해도 된다던 댓글을 봤습니다. 정말 괜찮은건지 아니면 마이그레이션을 해서 부트 2버전대로 해야 하나요?감사합니다.
-
미해결김영한의 실전 자바 - 기본편
기본생성자 강의 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]만약 자바에서 '기본 생성자'를 만들어주지 않는다면 생성자 기능이 필요하지 않은 경우에도 모든 클래스에 개발자가 직접 기본 생성자를 정의해야 한다. 생성자 기능을 사용하지 않는 경우도 많기 때문에 이런 '편의 기능'을 제공한다.위 내용에 관한 질문입니다.생성자가 필요하지 않는 경우에도 생성자를 정의해야 된다는게 무슨말인지 이해가 안가서요 생성자 기능을 사용하지 않는 경우 생성자가 필요없다는 뜻 아닌가요?근데 왜 개발자가 직접 기본 생성자를 정의해줘야 하는거죠?문맥이 이해가 가질 않아서요
-
미해결스프링 핵심 원리 - 기본편
옵션 처리
안녕하세요.테스트 진행 중 setNoBean1메서드를 required = false로 처리한 경우 호출되지 않아야 하는데저는 호출 된 상태에서 null값이 나오고 Bean2메서드가 호출되지 않았습니다 ㅠㅠ어떤 게 잘못 된걸까요 ㅜㅜ?
-
해결됨스프링 핵심 원리 - 기본편
중복오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.중복 오류가 떠서 제가 생각할 때는 AutoAppConfig에서도 빈에 올리고 AppConfig에서도 빈에 올리니까 이중으로 올려서 그런 것 같습니다.그래서 중복으로 올리는 @Bean을 지워봤는데 rateDiscount에서도 오류가 뜹니다 코드에 잘못된 부분이 있을까요..? 코드는 아래에 있습니다.https://drive.google.com/file/d/1bkiOBsAqY9TZ0dZnuh6LmQXizHIcJryx/view?usp=sharing
-
미해결스프링 핵심 원리 - 기본편
request 스코프 질문입니다.
1.클라이언트 A가 HTTP request를 Controller에 요청한다.Controller은 request scope에 요청하여 빈 인스턴스가 생성된다.클라이언트가 동일한 HTTP request를 Service에 보내면 기존에 이미 만들어진 A 전용 빈 인스턴스를 사용한다.클라이언트 B가 HTTP request를 요청하면 마찬가지로 B 전용 빈 인스턴스가 만들어지고 위와 동일한 과정을 거친다.로 이해하면 될까요? 2.여기서 message가 하는 기능은 무엇이고, init()과 close() 메소드 내에서 this를 왜 넣어줬는지 궁금합니다. 3.여기서 provider이 왜 해결방법인지 이해가 안갑니다... provider가 DL기능을 하는 거로 아는데, 어차피 이때도 사용자의 요청을 받은 상태가 아니기 때문에 오류가 발생하는거라고 생각했습니다.
-
해결됨스프링 핵심 원리 - 기본편
Annotationconfigapplicationcontext 클래스의 생성자 설명
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]위와 같이 AnnotationConfigApplicationContext 클래스 내부 API를 보면 많은 생성자들이 오버로딩 되어있는데 각각의 생성자 기능이 정확히 어떤 건지 궁금합니다 !특히 그냥 설정 정보 클래스를 하나 지정했을 때와 여러 개의 클래스를 지정했을 때 어떤 차이가 있는지 궁금합니다!
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ScannerWhileEx4 문제
int totalCost = 0; 을 왜 while문 안에 쓰면 안 되고(제가 주석 달아 놓은 부분) while문 밖에 써야 하나요?while문 안에 썼을 때 총 비용이 0으로 나오는 오류가 발생했는데 왜 그런 오류가 발생한 건지 모르겠습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
변수의 값과 리터럴
변수타입 1 강의에서 7:20 쯤 설명하시는 리터럴에 대해 이해가 잘 되지 않는 점이 있습니다. 변수의 값은 변할 수 있지만 리터럴은 개발자가 직접 입력한 고정된 값이다. 따라서 리터럴 자체는 변하지 않는다. 라고 강의 내용과 강의자료에 설명이 되어있습니다. 위 내용이 무슨 뜻인지이해가 잘 안됩니다.개발자가 변수에 입력한 값이 리터럴 이고,, 리터럴을 수정하면 변수 값이 변하는 것 아닌가요?
-
미해결스프링 핵심 원리 - 기본편
Provider 오류
스프링 부트 버전이 3.2.0 이라서 다음과 같이 라이브러리를 추가했는데도 Provider이 안뜹니다. 어디가 문제 일까요?
-
미해결스프링 핵심 원리 - 기본편
컴포넌트 스캔에서 @Bean이 붙은 메서드에 관한 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 강의 보다가 궁금해서 질문드립니다.AutoAppConfigTest파일의 @Bean이 붙은 메서드에서 반환타입이 MemberRepository라면 첨부 파일과같이 (강의와같이) 에러가 발생하는데 반환타입을 MemoryMemberRepository로 하면 문제없이 잘 실행되는것을 확인헀습니다. Bean의 이름을 memoryMemberRepository로 해놓았으므로 반환타입에 관계없이 에러가 나올줄 알았는데 왜 정상실행되는지 알려주셨으면 감사하겠습니다.
-
해결됨스프링 핵심 원리 - 기본편
싱글톤과 프로토타입 빈 사용 시 질문입니다.
여기서 count가 1이 아닌 2가 되는 이유가,싱글톤이 생성되고 의존 관계가 주입되는데, 이때 프로토타입 빈을 요청한다. 이때 프로토타입 빈이 싱글톤에 전달되고 이 프로토타입 빈은 clientBean 안에 종료 시 까지 유지된다.사용자 A, 사용자 B가 받는 clientBean은 싱글톤이기 때문에 같다.clientBean이 다시 생성되면서 스프링 컨테이너에 프로토타입 빈을 받은게 아니라, 기존 의존관계 주입 시 받은 프로토타입 빈이 그대로 남아있기 때문에 count값이 유지된다. 만약 클라이언트 요청 시마다 clientBean을 재생성한다면 값이 1이 될 것이다.이렇게 이해해도 될까요?
-
미해결김영한의 실전 자바 - 기본편
기본 생성자 생략에 관한 질문입니다.
생성자 내부에서 첫 줄에 기본 생성자를 적어줘야하지만 매개변수가 없을 땐 생략 가능하다고 나와있는데 매개변수 부분이 없다는게 부모 클래스에서의 생성자인 Class A() 기준인가요?=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결김영한의 실전 자바 - 기본편
3. 객체 지향 프로그래밍 질문
package oop1.ex; public class Ex1Rectangle { int height; int width; int area; int perimeter; void calculateArea() { area = width * height; System.out.println("넓이: " + area); } void calculatePerimeter() { perimeter = 2 * (width + height); System.out.println("둘레: " + perimeter); } void isSquare() { boolean isSquare = width == height; System.out.println("정사각형 여부: "+ isSquare); } }package oop1.ex; public class Ex1RectangleObjectMain { public static void main(String[] args) { Ex1Rectangle rectangle = new Ex1Rectangle(); rectangle.height = 8; rectangle.width = 5; rectangle.calculateArea(); rectangle.calculatePerimeter(); rectangle.isSquare(); } }[질문 내용]3. 객체지향 프로그래밍 문제 1번의 제공된 정답에서는System.out.println으로 출력하는 부분을 main메서드 안에 남겨두었고,제가 문제를 푸는 과정에서는객체 클래스에 int area와 int perimeter를 선언한 후, 각 메서드를 int와 boolean값을 반환하지 않는 void메서드로 변경하고, 계산된 값을 출력하는 부분을 각 메서드 안에 넣어놓고,main메서드에서는 int width와 int height의 값을 지정하고 객체 클래스의 메서드들을 호출만 했고 같은 결과가 나오는데,둘 중 어느 것이 효율적이고 여러 방면에서 좋은 코드인가요??
-
미해결김영한의 실전 자바 - 기본편
코드 구현력
안녕하세요 영한님. 강의를 보면서 한층 더 발전한 것 같습니다.실제 문제2를 풀면서 변하는 부분은 결제 종류가 추가되는 부분이고 나머지는 수정되지 않는 것을 보면서이게 클린코드인가..? 이런 생각을 했습니다. 이런 식의 코드 구현력을 공부하려면 디자인 패턴을 공부해야 할까요 ? 한마디로 클린코드를 짜기 위해서 디자인 패턴에 대한 내용을 공부하면 어느정도 코드가 보이는 걸까요 ?
-
미해결스프링 핵심 원리 - 기본편
학습 순서 및 방법에 대해 질문있습니다.
이해가 되지 않아도 일단 먼저 듣고 복습을 하는 방식으로 학습을 하고 있습니다. 1.강의 들으며 손코딩 및 필기(이해 안돼도 진도빼는 위주로)2.(강의 전체 한바퀴 돈 후)강의자료 보며 복습3.혼자 해보다가 막히면 강의자료 참고 이런 식으로 학습중인데영한님께서 올려주신 최신 로드맵 영상에서 '실전! 스프링 부트와 JPA 활용 1' 은 복습할 것을 권장해주셨는데문제는 그냥 순서대로 들으라고 하신 강의도1,2 단계까지 해도 이해가 안돼서 3까지 하고있는 중입니다.. 지금처럼 진도 나가는 것이 더디더라도 한 강의(각 챕터 말고 통째로 하나의 강의)를 제대로 이해하고 다음 강의로 넘어가는 식으로 해야할지아니면 이해가 되지 않아도 로드맵의 진도 나가는 것을 우선으로 하는 것이 좋을지 고민입니다
-
미해결스프링 핵심 원리 - 기본편
학습 방법에 관해서 질문드립니다.
영한님 커리큘럼을 타고 있는데 효율적인 학습 방법이 있을까요? 현재 공부하고 있는 방법은 강의를 듣고 난 후 자료를 보면서 복습하고, 모르는 것이 있으면 질문하고 있습니다.강의를 듣거나 복습하는 과정에서 이해는 되는데, 안보고 코드를 치면서 구현을 한다고 하면 못할거 같다는 생각이 들더라고요. 영한님이 설명해주시는 강의 흐름은 이해가 되는데, 회원, 서비스, 주문 도메인 구현 과정이나 그 안에 어떤 메소드를 만들어야 하는지, 또 어떤 자료형을 사용할지에 대한 실력이 많이 부족한거 같습니다. 이 부분들은 강의를 복습한다고 해서 실력이 늘거같지도 않고, 시간이 많이 소요될거 같아서요. 혼자 프로젝트를 진행하면서 많이 써보면 되지 않을까 싶긴한데 이제 기본강의를 듣는 입장이라.. 아직은 부족해보입니다. 어떤식으로 공부하는게 좋을지 조언을 주셨으면 좋겠습니다. 추가로, 혼자 프로젝트를 하기 위해서는 로드맵 어느 강의까지 봐야 할까요? 현재 가지고 있는 지식은 자바 기초문법+스프링 입문+ 스프링 기초강의1 입니다.
-
미해결스프링 핵심 원리 - 기본편
회원 도메인 설계에서 회원 도메인 협력 협력관계에서 클라이언트에 관해 질문있습니다.
MemberRepositoy가 회원저장소, MemberService가 회원서비스의 역할인 것은 알겠습니다. 그렇다면 클라이언트는 MemberApp OrderApp같은 Application인가요? 아니면 CoreApplication 인가요? 어떤것이 클라이언트를 의미하는지 잘 모르겠습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
인텔리제이 폰트 색상 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강의를 수강중인 사람입니다. 인텔리제이 2023을 써도 저는 영한님처럼 코드 색상이 안나오네요.. 혹시 맥과 윈도우의 차이일까요? 아니면 다른 설정이 필요한건가요?