묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
상속
class Parent{}class Child extends Parent{}void main① Parent.a = Child()② Child.b = Child()위 식에서 ① ② 두 문장의 차이가 궁금합니다.둘다 = Child()기 때문에 본인들이 태어날때 부모 기본자도 실행할 것이고, 만약 a나 b에 없는 메소드를 실행시킨다면 부모 클래스를 찾아가는 것도 같은데둘에 무슨 차이가 있는지 모르겠습니다.
-
미해결김영한의 실전 자바 - 기본편
2분 22초쯤에 질문이있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.2분 22초 에 선생님이 하신 말씀이 예를들어 X002.method 가 호출되면 힙영역의 인스턴스에서 메서드영역에있는 메서드를 호출하고 스택영역에 메서드 호출정보들이 저장된다 라고 이해해도 되나요?
-
미해결김영한의 실전 자바 - 중급 2편
hashCode를 오버라이딩 했을때 반환하는게 틀려요.
@Override public int hashCode() { return Objects.hashCode(id); }이걸로 ide가 만들어주네요. 업데이트 된 건가요?해쉬코드가 다르게 나와서 다른 인덱스에 채워지네요.강의처럼 아래와 같이 하면,@Override public int hashCode() { return Objects.hash(id); }강의와 똑같이 같은 인덱스에 채워집니다.Objects의 hash 메서드와 hashCode 메서드의 차이가 무엇일까요? 왜 인텔리제이는 hashCode 메서드를 생성했을까요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ArrayEx2 질문 입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.ublic class ArryaEx2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] number = new int[5]; System.out.println("5개의 정수를 입력하세요:"); for (int i = 0; i < number.length; i++) { int input = scanner.nextInt(); number[i] = input; } System.out.println("출력"); for (int i = 0; i < number.length; i++) { System.out.print(number[i]); if(i < number.length -1) { System.out.print(","); } }이렇게 하면 정상작동 하는데ublic class ArryaEx2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int input = scanner.nextInt(); int[] number = new int[5]; System.out.println("5개의 정수를 입력하세요:"); for (int i = 0; i < number.length; i++) { number[i] = input; } System.out.println("출력"); for (int i = 0; i < number.length; i++) { System.out.print(number[i]); if(i < number.length -1) { System.out.print(","); } }int input = scanner.nextInt() 이걸 for 문 밖에 입력하면 정상 작동을 하지 않습니다.해당 위치는 스코프를 모두 적용할수 있는 위치인데 왜 그런거죠?
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
5:57에 printEven은 true지만 !printEven은 true가 아닌것(!)이라서 false라고 설명해주신건가요? 그래야 &&조건이 둘다 참이여야해서 볼 필요도 없다고 하신거겠죠..?
질문은 동영상 강의에서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그렇게 해주셔야어떤 강좌에서 질문하셨는지 알 수 있습니다.영상에서 몇 분 몇 초 대를 알려주셔야 한 번에 확인이 가능합니다.이미 다른 누군가가 질문을 한 이력이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다.질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관 관계 저장 시 궁금한 점.
영한님 안녕하세요. 강의를 잘 듣고 있습니다!학습 중 궁금한 점이 있어 질문 드립니다.엔티티를 저장할 때에는 연관된 엔티티가 모두 영속 상태여야 한다고 알고 있습니다. 다음 코드에서 현재 user와 연관된 teamB는 영속 상태가 아닙니다. 따라서 실행 시 에러가 발생할 것으로 예상했습니다. 그러나 에러 없이 잘 동작하였고, DB를 확인해 보니 user의 team이 현재 연관된 teamB가 아니라 teamA로 되어 있었습니다.@Entity @Table(name="users") public class User { @Id @GeneratedValue @Column(name="user_id") private Long id; private String username; @ManyToOne @JoinColumn(name="team_id") private Team team; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Team getTeam() { return team; } public void setTeam(Team team) { this.team = team; } }@Entity public class Team { @Id @GeneratedValue @Column(name="team_id") private Long id; private String teamName; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTeamName() { return teamName; } public void setTeamName(String teamName) { this.teamName = teamName; } }public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try{ Team teamA = new Team(); teamA.setTeamName("teamA"); System.out.println(" =====[1]===== "); System.out.println("teamA = " + teamA); System.out.println("teamA.getId() = " + teamA.getId()); System.out.println("teamA.getTeamName() = " + teamA.getTeamName()); System.out.println(" 영속? = " + em.contains(teamA)); System.out.println(" ============= "); System.out.println(); em.persist(teamA); System.out.println(" =====[2]===== "); System.out.println("teamA = " + teamA); System.out.println("teamA.getId() = " + teamA.getId()); System.out.println("teamA.getTeamName() = " + teamA.getTeamName()); System.out.println(" 영속? = " + em.contains(teamA)); System.out.println(" ============= "); System.out.println(); Team findMyTeam = em.find(Team.class, teamA.getId()); System.out.println(" =====[3]===== "); System.out.println("findMyTeam = " + findMyTeam); System.out.println("findMyTeam.getId() = " + findMyTeam.getId()); System.out.println("findMyTeam.getTeamName() = " + findMyTeam.getTeamName()); System.out.println(" 영속? = " + em.contains(findMyTeam)); System.out.println(" ============= "); System.out.println(); Team teamB = new Team(); teamB.setId(findMyTeam.getId()); teamB.setTeamName("teamB"); System.out.println(" =====[4]===== "); System.out.println("teamB = " + teamB); System.out.println("teamB.getId() = " + teamB.getId()); System.out.println("teamB.getTeamName() = " + teamB.getTeamName()); System.out.println(" 영속? = " + em.contains(teamB)); System.out.println(" ============= "); System.out.println(); User user = new User(); user.setUsername("username"); user.setTeam(teamB); System.out.println(" =====[5]===== "); System.out.println("user.getTeam() = " + user.getTeam()); System.out.println("teamB = " + teamB); System.out.println("teamB.getId() = " + teamB.getId()); System.out.println("teamB.getTeamName() = " + teamB.getTeamName()); System.out.println(" 영속? = " + em.contains(teamB)); System.out.println(" ============= "); System.out.println(); em.persist(user); System.out.println(" =====[6]===== "); System.out.println("user.getTeam() = " + user.getTeam()); System.out.println("teamB = " + teamB); System.out.println("teamB.getId() = " + teamB.getId()); System.out.println("teamB.getTeamName() = " + teamB.getTeamName()); System.out.println(" 영속? = " + em.contains(teamB)); System.out.println(" ============= "); System.out.println(); tx.commit(); System.out.println(" =====[7]===== "); System.out.println("user.getTeam() = " + user.getTeam()); System.out.println("teamB = " + teamB); System.out.println("teamB.getId() = " + teamB.getId()); System.out.println("teamB.getTeamName() = " + teamB.getTeamName()); System.out.println(" 영속? = " + em.contains(teamB)); System.out.println(" ============= "); System.out.println(); }catch(Exception e){ e.printStackTrace(); tx.rollback(); }finally{ em.close(); } emf.close(); } =====[1]===== teamA = hellojpa.Team@fa5f81c teamA.getId() = null teamA.getTeamName() = teamA 영속? = false ============= =====[2]===== teamA = hellojpa.Team@fa5f81c teamA.getId() = 1 teamA.getTeamName() = teamA 영속? = true ============= =====[3]===== findMyTeam = hellojpa.Team@fa5f81c findMyTeam.getId() = 1 findMyTeam.getTeamName() = teamA 영속? = true ============= =====[4]===== teamB = hellojpa.Team@dd4aec3 teamB.getId() = 1 teamB.getTeamName() = teamB 영속? = false ============= =====[5]===== user.getTeam() = hellojpa.Team@dd4aec3 teamB = hellojpa.Team@dd4aec3 teamB.getId() = 1 teamB.getTeamName() = teamB 영속? = false ============= =====[6]===== user.getTeam() = hellojpa.Team@dd4aec3 teamB = hellojpa.Team@dd4aec3 teamB.getId() = 1 teamB.getTeamName() = teamB 영속? = false ============= =====[7]===== user.getTeam() = hellojpa.Team@dd4aec3 teamB = hellojpa.Team@dd4aec3 teamB.getId() = 1 teamB.getTeamName() = teamB 영속? = false ============= 궁금한 점은 다음과 같습니다:1. teamB가 영속 상태가 아닌데 어떻게 user가 저장될 수 있었는지 궁금합니다.2. user는 현재 teamB와 연관되어 있는데, 왜 DB에는 teamA가 나오는지 궁금합니다.좋은 강의 감사합니다!!
-
미해결김영한의 실전 자바 - 중급 1편
타입 안전 열거형 패턴 질문 입니다.
package enumeraion.ref1; public class ClassGrade { public static final ClassGrade BASIC = new ClassGrade(10); public static final ClassGrade GOLD = new ClassGrade(20); public static final ClassGrade DIAMOND = new ClassGrade(30); private final int discountPercent; private ClassGrade(int discountPercent) { this.discountPercent = discountPercent; } public int getDiscountPercent() { return this.discountPercent; } }문득 궁금한게 저런식으로 자기 자신을 호출 하면 이제 다시 각각의 필드에 인스턴스가 생성될텐데 그럼 그 인스턴스가 무한으로 인스턴스를 생성하지는 않는건지 갑자기 그부분이 헷갈려 질문 드립니다.정적필드가 아닐경우에는 더욱이 인스턴스가 생성됨가 동시에 각각의 멤버변수의 인스턴스가 또 인스턴스를 생성하는 형태는 아닌지 궁금합니다.
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
22년 3회 문제 질문
반복문 돌리다가 궁금해진게 있어서 질문드립니다.다중 for문에서 저렇게 여러개의 변수가 중간에 껴있는 경우에 내부 for문을 한 사이클 돌고나면 외부 for문에서 ++해서 다음 사이클 돌릴 경우에 변수들이 다시 초기화가 되나요? 그러니까 n=6일 때 한 사이클을 돌리고 나니 s=6 , el=1 값이 이렇게 나왔는데, n=7, 8, 9.... 이렇게 그 다음 사이클로 갈 때마다 다시 s=0, el=0 부터 시작하는건지 아니면 값이 남아있는건지 궁금합니다.+해설을 보고 나서 완전수라는 걸 알았네요 ㅎㅎ
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 메서드, 와일드카드
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]제네릭 메서드에서는 <Dog>가 타입추론으로 생략이 가능하다고 하셨는데WildCardEx.<Dog>printGenericV1(dogBox); 와일드 카드의 경우에는 <타입> 해당 부분에 대해서는 설명을 안해주셨는데 와일드카드의 경우에는 "<타입>" 은 어떻게 되는 건가요?? 항상 생략인건가요..???WildCardEx.printWildCardV1(dogBox);
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
try-catch에서
public static void checkAge(int age) { if (age < 18) { throw new IllegalArgumentException("나이는 18세 이상이어야 합니다."); } System.out.println("나이가 적합합니다."); }이거에서 if가 18이상이면 if문조건을 충족하지 않으므로 빠져나가서 나이가 적합합니다. 를 프린트 하는 건 알겠는데15세일때 if문 조건(age<18)을 충족해서 throw로 예외를 던지고 나서 실행한 뒤 System.out.println("나이가 적합합니다."); 를 다시 실행해야 하는 거 아닌가요?checkAge() 가 System.out.println("나이가 적합합니다."); 를 실행해야 끝난다고 생각되어서요;.else문이 아니라 그냥 if문이라서 ..throw 에 대해서 조금더 자세한 설명해주실수있나요??
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
증감, 감소 연산자 관련
안녕하세요, 증감, 감소 연산자에 대해 궁금한 점이 있습니다.23년 2회 마지막 문제에서 [point--]는 값이 0이라면 호출했을때 0을 넣은다음 -1되는 형식이였는데24년 1회 첫번째 문제에서는 cont++가 바로 +1이되어 값이 호출되는것이 헷갈립니다.변수++ / 변수--는 호출되고 나서 플러스 또는 마이너스 되는것이 아닌가요?ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
8:15부분에 관해 질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]회원가입을 하면 그냥 db에다가 데이터만 저장하면 되는데 왜 이렇게 id를 리턴 해주는지 모르겠습니다.
-
미해결토비의 스프링 6 - 이해와 원리
자바 버전
jdk 버전 관련 개념이 조금 헷갈려서 질문 드립니다.현재 터미널에서 java -version 명령어를 통해 출력되는 자바 버전은 11인데스프링 프로젝트 별로 자바 버전을 다르게 할 수 있다면혹시 제 컴퓨터에 설치되고 환경 변수 설정까지 하여 터미널에서 출력되는 자바 버전은 전혀 상관이 없는 건가요??상관이 없다면 제 컴퓨터에 따로 자바를 설치하고 환경 변수 설정 까지 해야 하는 이유가 무엇인가요??
-
해결됨김영한의 실전 자바 - 중급 2편
hashSet에서 hashCode 메서드를 만들 때 질문이 있습니다.
해당 강의에서 강사님꼐서 IDE를 통해 만드신 hashCode() 오버라이드 메서드는 Object.hash() 함수를 사용했는데요.저도 똑같이 IDE를 통해서 만들었는데, Object.hashCode() 라는 다른 메서드를 사용해서 만들어 주더라고요.둘 다 실험해보니까 잘 작동하긴 했는데, 두 메서드의 차이점이 무엇인가요?왜 강사님이 하실때는 hash() 메서드가 뜨고 제가 할 때는 hashCode() 메서드를 이용해서 만들어 줄까요?
-
미해결김영한의 실전 자바 - 중급 1편
내부 클래스
안녕하세요! 내부 클래스의 경우 외부 클래스의 인스턴스에 접근할 수 있는 참조값을 가지고 있다고 하셨는데, 그러면 반대로 외부 클래스는 내부 클래스의 인스턴스에 접근할 수 있는 참조값을 가지고 있나요 ?예로 내부 클래스의 활용 8:00 강의 쪽에서Car myCar = new Car() ;myCar.start() 로 가능한가요? ( 여기서 start 메서드는 Car 의 메서드에 있는 start 가 아닌 Engine 클래스 내부에 있는 start() 메서드를 말씀 드린겁니다.
-
해결됨실전! Querydsl
query projection 아키텍쳐 관점
작업을하다보디 query projection 경우 아키텍처 관점(데이터 레이어)에서 Repository에 의존성이 생겨서 사용을 지양하자는 의견이 많던데 어떻게 생각하시나요?
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
이론파트 자료 문의드립니다.
선생님 안녕하세요목차에 뒤에 추가된 제목을 추가하지 않으신 것인지요?시험이 일주일 남아서 제대로 보려는데 11 12번 누락된 것으로 보여서요목차 수정 부탁드립니다.그리고 가능하다면 페이지 구성을 반씩 나누는 거 말고 한줄로는 안될까요?아래로 내려갔다가 다시 올려야 해서 한글문서처럼 일렬정렬이 나은 것 같아요^^
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
이론강의
이론 강의는 뭐고 PDF 내용은 뭐죠? pdf 에 없는 내용이 강의로 있는데(예를 들어 요구사항이나 데이터 pdf 만 보면 안되고 강의에 있는 내용도 다 외워야 하는거면 강의에 있는 내용도 pdf 에 넣어주시면 안될까요ㅠ
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
2022 3회
2022 3회 1:50 result[i]++ 의 결과값이 왜 2,4, 이런식으로 나오는지 궁금합니다.전체적인 문제 풀이 과정은 이해했습니다.if(arr[i]<arr[j]) 이 부분 까지 다 이해했습니다.i가 0일 경우 true가 한개인것도 알겠는데 출력하는 마지막 부분이 이해가 안됩니다. ++ 일 경우 값에 1을 더해주는 것도 이해가 갑니다. 문제에서 어디 부분 때문에 2,4 이런식으로 출력해주는지 궁금합니다.
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
반복문과 Range 질문
fruits=["apple","banana","cherry"]for i in range(len(fruits)) 이 부분에서 range의 개념은 어느정도 이해했는데 왜 문자열 길이가 아닌 개수처럼 3으로 세는지 궁금합니다. 영상에서도 헷갈릴거라고 언급하셨는데 저는 보자마자 아예 count 개념이랑 충돌이 와버렸네요...