묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨김영한의 실전 자바 - 중급 1편
String은 불변 객체라고 하셨는데
[String 클래스 - 문제와 풀이2 - 문제7] 과 관련된 질문입니다.이전 강의에서 String은 불변 객체라고 하셨는데요,그렇다면 사진과 같이 코드를 작성을 했을 때 출력값이 trim()을 호출하기 전의 값이 되어야 할 것 같은데실행을 해보면 trim()을 호출한 이후의 값이 출력이 됩니다.제가 어떤 부분을 잘못 이해하고 있는 걸까요??
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
생성자 문제 질문 this() 질문
4:32초 문제 메인 클래스 두번째 줄 A s2 = new B('Y"); 를 실행하면 B(char x) 생성자를 호출하잖아요.여기서 원래 부모의 기본 생성자를 불러야 하는데 this();가 첫줄에 있어서 B클래스의 기본생성자를 호출한거죠?? this();때문에 B클래스의 기본생성자를 호출햇는데B클래스의 기본생성자에 super();가 없었어도 A클래스의 기본생성자 호출 -> B클래스의 기본생성자 호출-> B(char x)의 출력문 시행하는게 맞을까요??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 매핑시 양쪽에 값을 넣어야 하는 이유?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의 내용을 보면, 연관관계의 주인에 값을 입력해야 한다고 하셨습니다. 그런데 그 뒤로는 항상 양쪽다 값을 입력해야 한다고 하시는데, 어느 말이 맞는지 혼동이 옵니다.Team team=new Team(); team.setName("TeamA"); em.persist(team); Member member=new Member(); member.setUsername("member1"); member.setTeam(team); em.persist(member); em.flush(); em.clear(); Team findTeam=em.find(Team.class,team.getId()); List<Member> members=findTeam.getMembers(); for(Member m:members){ System.out.println(m.getUsername()); } tx.commit();에서 연관관계의 주인에 team을 설정하였습니다. FK로 연결되어 있기 때문에 team.getMembers().add(member)을 하지 않아도 for문에서 정상적으로 데이터가 조회됩니다. 그런데 flush와 clear를 제거하면 데이터가 조회되지 않습니다. 영속성 컨텍스트에 저장될 때도 generateValue가 발동되어 id값이 생성되어 저장되는걸로 아는데, 왜 빈 객체로 저장된다고 하시는건지 잘 이해가 가지 않습니다.
-
미해결김영한의 실전 자바 - 기본편
데이터타입 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. 선생님께서는 데이터타입을 void로 하시는데 그 이유는 무엇인가요? 제가 작성한 것처럼 int로 하고 return해도 클린코드가 되나요? 2. void를 쓰면 return을 쓰지 않아도(balance를 반환해주지않아도) AccountMain 클래스에 balance 값이 업데이트 되는 이유는 무엇인가요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
JPQL은 타입안정성을 보장하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]JPQL은 타입 안정성을 보장하나요?컴파일 시점에 오류라는 것이 코드를 작성할 때, 빨간 줄이 생기며 오류메시지가 나오는 걸로 알고 있는데요.JPQL은 문자열로 쿼리를 작성하기 때문에 컴파일 시점에서 오류를 알 수 없다고 생각했는데요. 강의를 따라가다보니 컴파일 시점에서 오류를 알 수 있는 것 같아서 헷갈립니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
22년 3회 코드해석 문제 첫번째
2분 40초에 나오는 문제에서for(int k = 0; k < 5; k++){printf("%d",result[k]);}부분은 왜 아무것도 안하고 건너뛰는지 모르겠습니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
update 메서드의 매개변수 작성 스타일?
// a. public void update( String password, String nickname) { this.password = password; this.nickname = nickname; } // b. public void update(UpdateContent content) { this.password = content.getPassword; this.nickname = content.getNickname; }안녕하세요 update 방식에 대해 궁금한점이 생겼는데, Member 엔터티 클래스 내부에 위와 같이 update 메서드를 둔다고 했을 때, 매개변수의 개수가 많다고 가정하면, 별도의 클래스를 만들어서 b.처럼 전송해주는 방식을 사용해도 괜찮을까요? 엔터티 클래스와 별도의 클래스가 결합?되는 느낌이라 찝찝한데, a.와 b.중 좀 더 정석적인 방식이 있는지 궁금합니다!
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
서버가 이중화 되었을때 MemberService.java join()과 관련된 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]MemberService.java 내에서 join() 함수입니다.@Transactional public Long join(Member member) { validateDuplicateMember(member); //중복회원 검증 memberRepository.save(member); return member.getId(); }이때 member를 저장하면 persist하게 되고, commit까지는 일어나지 않는다고 이해하고 있습니다. db에 저장이 되어 있지 않은 상태라면 이중화 시 각 was에 jpa persist된 값이 있을 것 같은데, validateDuplicateMember을 호출할 때 name 컬럼에 unique 제약조건을 줘서 저장이 안되게 한다고 하더라도. validateDuplicateMember는 통과가 되고, 아래 save에서 오류가 나게될 것 같은데요. 제가 생각하는 로직이 맞는지 궁금합니다. 맞다면 여기에 대한 코드 보완이 따로 필요할 것으로 보여서요. (강의 보완이 아니라, 제가 나중에 코딩할 때 보완을 하려고 합니다:) )
-
미해결김영한의 실전 자바 - 중급 1편
열거형 생성자 질문
왜 public 에 빨간색 에러 표시가 뜨는건가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계 주인 질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.연관관계의 주인을 다대일 관계에서 다 쪽에 두라고 하셨는데, 그럼 다대다 관계에서는 연관관계의 주인을 누구로 설정해야 하나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의 코드를 보면 연관관계로 매핑되어있는 team을 조회하려면 join을 해서 조회하는걸로 알고 있습니다.Team findTeam=findMember.getTeam()에서 멤버 테이블 안에 외래키로 존재하는 팀 ID로 팀을 조회하려면 join이 일어나야 하는데, 콘솔 창을 보면 INSERT 문만 존재합니다. 이유를 알 수 있을까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
피보나치수열-재귀함수
피보나치수열-재귀함수에서else구문일때 각각 값을 더해서 리턴이 아니고n-1 리턴하고n-2리턴하고각각 더해서 리턴인건가요?순서를 알려주세요
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
생성자와 메서드
안녕하세요강의 4:53초에 있는케이스 4 문제 답이요매개변수가 있는 생성자 호출.매개변수가 없는 생성자 호출.이름 : 알 수 없음나이 : 0이름 : 홍길동나이 : 30이렇게가 맞는 거죠??예시에 출력값은 매번 있었으면 좋겠습니다ㅠㅠ맞겠지라고 생각하지만 불안합니닷..ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
WebServer , WebApplicationServer, Server 관련 질문
Server = 하드웨어 = OS가 없는 PC서버의 역할은 하드웨어 재원을 제공한다로 이해하고 있습니다. 웹서버는 80포트를 열어줌,도메인설정, 정적 컨텐츠 서빙, 로드밸런싱, SSL인증서 설치... 등등의 역할WAS는 동적 콘텐츠 생성, HTTP 메서드 ,비지니스 로직 , 세션처리...등등의 역할 웹서버 , WAS 둘 다 Server 위에서 동작하는 소프트웨어로 서버는 하드웨어 재원을 제공하며서버 위에서 돌아가는 소프트웨어인 웹서버,WAS는 위에 명시된 역할을 수행. 예를들어 Nginx , Tomcat 사용하고 있으면 실제로 서버가 2개 띄워져있어야 함 SpringBoot는 WAS로 톰켓을 내장 그럼 우리가 배포를 한다고 했을때 서버에 SpringBoot Application을 올리고 boot가 Tomcat을 내장하여 WAS로 사용하는 구조간략히 말하면 "xx서버에는 SpringBoot 올라가있어" 라고 말할 수 있음 이렇게 정리를 하였는데 혹시 잘못 이해한 부분이 있을까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
포인터 ++
++가 앞에나오면 +1++가 뒤에나오면 *(a+1)이 되는 이유가 뭘까요.. ptr=atr인데5번에 *ptr이 기존에 누적값을 갖고있는데*atr이 다시 처음값부터 시작된다는점이 이해가 안가요.32가 나와야하는게 맞지않나요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
13:22 이해가 잘안됩니다.
조건반복문 += -= 부분이 이해가 잘 안되는 것 같습니다.. 죄송합니다
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
유틸 클래스에 대해..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.로거 만들기에서 로거 클래스 생성할때 abstract 키워드를 추가해서 추상 클래스로 만들었는데, 그 이유가 클래스 내에 static 메서드만 있으니, 굳이 인스턴스로 만들 필요가 없어서 그런건가요??그러면 추상 클래스 말고, 일반 클래스로 만들고 기본 생성자를 private으로 해서 인스턴스화 하지 못하도록 하는 건 어떤가요?
-
미해결김영한의 실전 자바 - 기본편
클래스와 데이터_상품 주문 시스템 개발 질문
package class1.ex;public class ProductOrderMain { public static void main(String[] args) { ProductOrder[] orders = new ProductOrder[3];** //for (ProductOrder o : orders) //o = new ProductOrder(); orders[0] = new ProductOrder(); orders[1] = new ProductOrder(); orders[2] = new ProductOrder();** orders[0].productName = "두부"; orders[0].price = 2000; orders[0].quantity = 2; orders[1].productName = "김치"; orders[1].price = 5000; orders[1].quantity = 1; orders[2].productName = "콜라"; orders[2].price = 1500; orders[2].quantity = 2; int sum = 0; for (ProductOrder o : orders) { System.out.println("상품명: " + o.productName + " 가격: " + o.price + " 수량: " + o.quantity); sum += o.price * o.quantity; } System.out.println("총 결제 금액: " + sum); }}왜 주석으로 할당을 대체하면 오류가 발생할까요?Q_1. 혹시 자바는 new memory allocation에서 반드시 null을 저장한 후 반환하나요?Q_2. 그렇다면 iter는 할당 여부와 관계 없이 null이 아닌 element만 traverse하나요?
-
미해결토비의 스프링 6 - 이해와 원리
섹션5 - DataAccessException과 예외 추상화 질문 있습니다.
문제)DataClient 에서 Hibernate 의 ConstraintViolationException 이 DataAccessException 으로 던져지지 않았습니다.(발생한 예외 - 예상한 기댓값이 아님)Exception in thread "main" org.hibernate.exception.ConstraintViolationException: could not execute statement [Unique index or primary key violation: "PUBLIC.UK43EGXXCIQR9NCGMXBDX2AVI8N_INDEX_8 ON PUBLIC.ORDERS(NO NULLS FIRST) VALUES ( /* 1 */ '100' )"; SQL statement:원인)Order Object 에서 @GeneratedValue 의 strategy 를 IDENTITY 로 작성해서 발생한 문제였습니다.@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;(변경된 예외 - 예상 기댓값으로 동작 성공)Exception in thread "main" org.springframework.dao.DataIntegrityViolationException: could not execute statement [Unique index or primary key violation: "PUBLIC.UK43EGXXCIQR9NCGMXBDX2AVI8N_INDEX_8 ON PUBLIC.ORDERS(NO NULLS FIRST) VALUES ( /* 1 */ '100' )"; SQL statement:질문사항)안녕하세요 토비님. 위에 작성된 문제점을 발견했고 해결했음에도 JPA를 학습해보지 않아서 그런지.. 위 문제가 발생한 이유를 모르겠습니다.대충 생각하기에는 IDENTITY strategy가 DB로 권한을 넘기기 때문에 EntityManager 의 영속성 컨텍스트에서 발생한 문제점이 아니라서 DataAccessException Layer에서 관리하지 못하는 것인가..? 라는 생각은 드는데 혹시 맞을까요?비슷한 상황을 만들어보려고 IDENTITY strategy를 설정하지 않고 OrderRepository 에서 flush 를 해본 결과, 예상대로 ConstraintViolationException 가 뜨긴 하는데 ID가 null 이라서 DB에서 직접 접근 후 저장하는 작업을 한 번 해서 그럴까요?
-
미해결김영한의 실전 자바 - 중급 1편
지역클래스 - 지역 변수 캡처2
package nested.local; import java.lang.reflect.Field; public class LocalOuterV3 { private int outInstanceVar = 3; public Printer process(int paramVar) { int localVar = 1; //지역 변수는 스택 프레임이 종료되는 순간 함께 제거된다. class LocalPrinter implements Printer{ int value = 0; @Override public void print() { System.out.println("value = " + value); //인스턴스는 지역 변수보다 더 오래 살아남는다. System.out.println("localVar = " + localVar); System.out.println("paramVar = " + paramVar); System.out.println("outInstanceVar = " + outInstanceVar); } } LocalPrinter printer = new LocalPrinter(); //printer.print();를 여기서 실행하지 않고 Printer 인스턴스만 반환한다. return printer; } public static void main(String[] args) { LocalOuterV3 localOuter = new LocalOuterV3(); Printer printer = localOuter.process(2); //printer.print()를 나중에 실행한다. process()의 스택 프레임이 사라진 이후에 실행 printer.print(); //추가 System.out.println("필드 확인"); Field[] fields = printer.getClass().getDeclaredFields(); for (Field field : fields) { System.out.println("field = " + field); } } } 안녕하세요 이 부분에서 막혀서 이 강의만 3번째 듣는데도 이해가 안가서 기본편의 섹션 7 자바 메모리 구조와 static쪽을 다시 보고 오려는데 그것 말고 위의 코드를 이해하는데 더 필요한 내용이 있을까요?