묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
3중 for문으로 변경해서 정답
import java.util.Scanner; public class 멘토링 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int m = scan.nextInt(); int[][] intArrArr = new int[n][m]; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ int temp = scan.nextInt(); intArrArr[temp-1][i] = j; } } System.out.println(solution(n,m,intArrArr)); } private static int solution(int n, int m, int[][] intArrArr) { int answer = 0; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ boolean flag = true; for(int k=0;k<m;k++){ if(intArrArr[i][k] >= intArrArr[j][k]){ flag = false; break; } } if(flag){ answer++; } } } return answer; } } input을 받을 때 학생이 행에 오도록 변경을 해서 등 수를 열로 변경해서 받으면 3중 for문으로도 가능합니다. 참고가 될까 싶어 올려봅니다 화이팅!!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
fail()이 무엇인가요
회원 서비스에 대한 테스트코드 중 일부인데try {memberService.join(member2);fail();} catch (IllegalStateException e) {assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다.");} 여기서 fail()에 대한 제대로된 설명이 없이 넘어가셨는데 fail()이 무엇인가요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
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의값도 같은 값으로 불러온다고 이해하면될까요?
-
미해결김영한의 실전 자바 - 기본편
기본생성자 강의 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]만약 자바에서 '기본 생성자'를 만들어주지 않는다면 생성자 기능이 필요하지 않은 경우에도 모든 클래스에 개발자가 직접 기본 생성자를 정의해야 한다. 생성자 기능을 사용하지 않는 경우도 많기 때문에 이런 '편의 기능'을 제공한다.위 내용에 관한 질문입니다.생성자가 필요하지 않는 경우에도 생성자를 정의해야 된다는게 무슨말인지 이해가 안가서요 생성자 기능을 사용하지 않는 경우 생성자가 필요없다는 뜻 아닌가요?근데 왜 개발자가 직접 기본 생성자를 정의해줘야 하는거죠?문맥이 이해가 가질 않아서요
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 연관관계와 연관관계의 주인 2 - 주의점, 정리 질문
1. 11분 57초에 team. getMember().add(member); 구문이 있는데요. add()가 insert역할인가요?팀의 멤버를 조회해서 멤버를 추가하라는게 혹시 무슨 뜻인가요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
@OnetoOne관계에서 실전 예제에서는 왜 외래 키 부분에 unique = true를 넣지 않았는지 궁금합니다.
우선 일대일 관계로 매핑된 Order와 Delivery 엔티티 코드는 다음과 같습니다.<Order 클래스> @OneToOne @JoinColumn(name = "DELIVERY_ID") private Delivery delivery;<Delivery 클래스> @OneToOne(mappedBy = "delivery") private Order order;일대일 관계를 명시하려면 외래키에 unique 제약조건을 추가해야 된다고 알고 있는데요. 이상한 점은 유니크 제약조건을 추가하지 않아도 아래와 같이 하이버네이트가 알아서 제약조건을 추가해줬다는 것입니다.왜 이런 현상이 발생한거죠?
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
/v2/index.html로 책 등록시 서버에 연결이 불가능하거나, 네트워크 오류입니다. 라고 뜹니다ㅠㅠ
안녕하세요 최태현 강사님!강의 잘보고있습니다 : )다름이 아니라 제가 기존에 oracle을 사용하고 있어서 server port는 8089로 설정해서 사용하고 있습니다. localhost:8089/v1/index.html을 실행시켜서 사용자 등록, 책 등록을 하면 잘 실행이 되는데v2/index.html로 접속하여 책 등록을 하면 아무런 반응이 없다가 '서버에 연결이 불가능하거나, 네트워크 오류입니다.' 라는 alert 메시지를 봅니다. 이게 어떤 문제인지 알 수 있을까요??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
:단방향 연관관계 질문있습니다.
강의 :단방향 연관관계20분 55초에서 쿼리가 안나온다는게 create table Team ( TEAM_ID bigint not null, TEAM_NAME varchar(255), primary key (TEAM_ID) )이게 안나오느다는건가요?근데 persist로 db에 저장되서 안나온다고 하셨는데 12분에도 persist가 있는데도 쿼리가 나오는데요. 혹시 find 앞에 persist는 예외인건가요?try { Team team =new Team(); team.setName("TeamA"); em.persist(team);//영속 상태가 되면 pk값이 세팅 되고 영속 상태가 됨. Member member = new Member(); member.setUsername("member1");// member.setTeamId(team.getId());//연관관계 매핑 배우기 전 팀의 외래키를 만들어서 멤버에 조인함. em.persist(member); tx.commit(); }catch (Exception e){ tx.rollback(); }finally { em.close();//엔티티 매니저가 내부적으로 데이터베이스를 물고 동작을 함. } emf.close(); }단방향 연관관계 22분에서 em.flush(); em.clear();을 추가하면 영속성 컨테스트를 db로 보내버리고 동기화 상태에서 1차캐시가 빈상태로 조회가능하다는것은 알겠는데요.그래서 다른점이 혹시 아래 select문인가요?Hibernate: select member0_.MEMBER_ID as MEMBER_I1_0_0_, member0_.TEAM_ID as TEAM_ID3_0_0_, member0_.USERNAME as USERNAME2_0_0_, team1_.TEAM_ID as TEAM_ID1_1_1_, team1_.TEAM_NAME as TEAM_NAM2_1_1_ from Member member0_ left outer join Team team1_ on member0_.TEAM_ID=team1_.TEAM_ID where member0_.MEMBER_ID=?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
JPA을 사용하려면protected UserDto(){}을만들어줘야한다고 하셨는데 저는 protected UserDto(){}을 만들어주면 오류가 나네요 이유가 뭘까요? ;
(사진)
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
실전 예제 1 - 요구사항 분석과 기본 매핑 질문있습니다.
1.7분에서 setter 보다 유지보수 때문에 생성자를 쓰는데 이유 좀 자세하게 알수 있나요?2.9분 53초에서 뒤에 사용될 명령어 나오게 하는 단축키 뭔가요?3.10분 45초에 @Table(name="Orders")//Orders로 한 이유가 에약어로 order은 orderby로 인식된다.(db마다 다름) 가 맞나요?4.14분 10초처럼 아래 문구를 어떻게public void setStockQuantity(int stockQuantity) {this.stockQuantity = stockQuantity;}public void setStockQuantity(int stockQuantity) {this.stockQuantity = stockQuantity;} 이렇게 바꾸나요? 5. 왼쪽화면은 제화면이고 오른쪽 화면은 강의 화면입니다. 빨간색 네모박스처럼 상위 폴더 하위 폴더가 안나뉘어집니다. 이렇게 어떻게 해야 하나요? 시도한 방법:jpabook.jpashop.domain1 을 domain1 이렇게 리팩터 시도를 하면 활성화가 안됩니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
실전 예제 1 - 요구사항 분석과 기본 매핑 강의 세팅 질문있습니다.
jpamain 실행시 아래같이 db에는 잘 붙는거 확인했는데요.h2창은 잘뜹니다.근데 강의 18분<아래 그림 참조>정도에 나오는것처럼 db가 안뜹니다.<jpa 실행문구> memberpackage jpabook.jpashop.domain1; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Member { @Id @GeneratedValue @Column(name="MEMBER ID") private Long id; private String name; private String city; private String street; private String zipcode; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public String getZipcode() { return zipcode; } public void setZipcode(String zipcode) { this.zipcode = zipcode; } } 파일링크 jpamainimport javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try { tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); } emf.close(); } }
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
강의 자료가 강의와 불일치 한 것 같습니다.
강의 자료를 받고 있는데 스프링 시큐리티 강의 자료가 받아집니다. 확인 부탁드리겠습니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
JPQL은 FROM절 없이 실행할 수 없다는게 맞는거죠?
QueryDSL을 공부를 하다가 JPQL은 FROM절 없이 사용할 수 없다는 말을 들었습니다.그래서 그렇구나 이해를 하기보다 정말 그런가 하고 찾아보려고 했는데공식문서를 어디를 참조해야할지 모르겠더라구요오라클 JPA 2.0에서 JPQL 설명이 있는데 그 부분을 참조하면https://docs.oracle.com/javaee/6/tutorial/doc/bnbuf.html#bnbujFROM 절은 식별 변수를 선언함으로써 쿼리의 도메인을 정의합니다.라고 적혀있더라구요 SQL과 다르게 JPQL은 도메인을 기준으로 쿼리를 실행하기 때문에 FROM절을 생략할 수 없다고 이해하면 될까요 ?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
DB 테이블간 연결에 대한 질문입니다.
안녕하세요 태현님. 두가지 질문이 있습니다.1. 지금까지(34강) 강의를 따라 하고 MySQL 워크벤치에서 ERD를 확인해 보면테이블 간에 PK - FK로 연결이 안 되어있는데요연결을 안 해주어도 괜찮은 이유가 뭔지 궁금합니다.제가 NestJS나 Express.js 로 백엔드를 만들었을 때는 TypeORM, Prisma, Sequelize 같은 ORM을 이용했었는데그때는 코드단에서 테이블 간에 연결 처리 (PK - FK로 연결)을 해주면데이터베이스에서 확인을 해봤을 때이런 식으로 연결이 된 것을 확인할 수 있었거든요..혹시 제가 뭔가 잘못 알고 있는 걸까요?굳이 DB에서 실제로 연결을 안 해주어도 괜찮은 건가요??아니면 스프링 + JPA 조합의 특성인가요??2. 그리고 MySQL 워크벤치에서create table user_loan_history ( id bigint auto_increment, user_id bigint, book_name varchar(255), is_return tinyint(1), primary key (id) );이렇게 DB create 문을 작성해서 실행 시키지 않아도 서버를 실행시킬 때 자동으로 로컬 DB에 테이블을 생성해 주도록 하는 설정이 있는지 궁금합니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ScannerWhileEx4 문제
int totalCost = 0; 을 왜 while문 안에 쓰면 안 되고(제가 주석 달아 놓은 부분) while문 밖에 써야 하나요?while문 안에 썼을 때 총 비용이 0으로 나오는 오류가 발생했는데 왜 그런 오류가 발생한 건지 모르겠습니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
에러 발생 코드 관련 질문입니다.
//BookService @Service public class BookService { private final BookRepository bookRepository; private final UserLoanHistoryRepository userLoanHistoryRepository; private final UserRepository userRepository; public BookService( BookRepository bookRepository, UserLoanHistoryRepository userLoanHistoryRepository, UserRepository userRepository ) { this.bookRepository = bookRepository; this.userLoanHistoryRepository = userLoanHistoryRepository; this.userRepository = userRepository; } @Transactional public void saveBook(BookCreateRequest request) { bookRepository.save(new Book(request.getName())); } @Transactional public void loanBook(BookLoanRequest request) { // 1. 책 정보를 가져온다. Book book = bookRepository.findByName(request.getBookName()) .orElseThrow(IllegalArgumentException::new); // 2. 대출기록 정보를 확인해서 대출중인지 확인한다. // 3. 만약에 확인해는데 대출 중이라면 예외를 발생시킨다. if (userLoanHistoryRepository.existsByBookNameAndIsReturn(book.getName(), false)) { throw new IllegalArgumentException("이미 대출되어 있는 책입니다"); } // 4. 유저 정보를 가져온다. User user = userRepository.findByName(request.getUserName()) .orElseThrow(IllegalArgumentException::new); // 5. 유저 정보와 책 정보를 기반으로 UserLoanHistory를 저장 userLoanHistoryRepository.save(new UserLoanHistory(user.getId(), book.getName())); } } 북서비스 코드인데요// 1. 책 정보를 가져온다. Book book = bookRepository.findByName(request.getBookName()) .orElseThrow(IllegalArgumentException::new);이 부분에서 // 2. 대출기록 정보를 확인해서 대출중인지 확인한다. // 3. 만약에 확인해는데 대출 중이라면 예외를 발생시킨다. if (userLoanHistoryRepository.existsByBookNameAndIsReturn(book.getName(), false)) { throw new IllegalArgumentException("이미 대출되어 있는 책입니다"); } 이 부분 처럼 "존재하지 않는 책입니다" 라는 메세지를 터미널(콘솔인가요? 이거 찍히는 곳 명칭이 터미널인지 콘솔인지 모르겠네요) 에 찍어주려면 어떻게 해야하나요? 그리고 첫 번째 경우와 두 번째 경우에 에러를 발생시키는 방법이 다른 이유는 무엇인지 궁금합니다.
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
변수의 값과 리터럴
변수타입 1 강의에서 7:20 쯤 설명하시는 리터럴에 대해 이해가 잘 되지 않는 점이 있습니다. 변수의 값은 변할 수 있지만 리터럴은 개발자가 직접 입력한 고정된 값이다. 따라서 리터럴 자체는 변하지 않는다. 라고 강의 내용과 강의자료에 설명이 되어있습니다. 위 내용이 무슨 뜻인지이해가 잘 안됩니다.개발자가 변수에 입력한 값이 리터럴 이고,, 리터럴을 수정하면 변수 값이 변하는 것 아닌가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티와 테이블 맵핑 네이밍 규칙 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의를 보면 엔티티 클래스에서는 pk 필드를 그냥 id 로 선언하고, 테이블에서는 테이블명_id로 설계하십니다.서로 같은 네이밍을 쓰지 않는 이유가 궁금합니다. 다른 비슷한 질문의 경우 아래와 같이 답변 주셨는데, 엔티티의 PK 필드는 ID로 네이밍 하는다는 규칙을 정한것 뿐이지 큰의미는 없다고 봐도 되는걸까요? order 엔티티도 order_id로 하는게 좋지 않나요? 그렇게 하지 않으신 이유가 order에 이미 memberId 필드가 있어서 그런걸까요? 굳이 order_id라고 명명하지 않아도 memberId와 구분되서 그런건가요? ID 컬럼 혹은 id 필드의 명명 규칙은 강의에서 통일성 있게 위에 정리한 기준에 맞게 작성한 것으로 보시면 될 것 같습니다.(orderId로 하여도 문제 없습니다. 자바에서 변수명은 카멜케이스가 관례입니다.)
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@Component를 InitDb에서 전역으로 해준 것 아닌가요?
@Component를 InitDb에서 전역으로 해준 것 아닌가요?다시 InitService에서 다시 @component를 해주는 이유가뭔지 궁금합니다.