inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

HTE 테이블 생성

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] H2에 연동해서 테이블을 생성하면 이렇게 HTE 테이블도 자동으로 생성이 됩니다. 코드는 강의 자료에 있는 그대로 했는데도 이렇게 뜨는데 HTE 테이블이 왜 생기는 걸까요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
jh011007 댓글 2 좋아요 0 조회수 334

자바 입문 강의: ScannerWhileEx3 질문입니다.

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요, 자바 입문 강의를 수강하고 있는 병아리 입문자입니다. 일단 지나치게 기초적인 질문이라면 죄송합니다. 다만 강의와 수업 자료에 설명이 생략되어 있어 질문 드립니다. 자바 입문 강의의 ScannerWhileEx3 문제에서(7. 훈련 파트) int input에 scanner.nextint() 기능으로 사용자 입력을 받는다는 것은 이해했습니다. 그런데 어차피 매개변수 input에 사용자 값을 입력 받을 텐데 굳이 int input = 0;으로 초기화하는 이유는 무엇인가요? 강의를 듣기 전에 제가 input를 선언하기만 하고 바로 사용자 값 입력을 받았을 때는 무탈히 프로그램이 작동된 것 같아 더 의문이 듭니다. 답변 기다리겠습니다. 강의 잘 듣고 있습니다. 감사합니다!

  • java
  • 객체지향
자바재밌당 댓글 1 좋아요 0 조회수 93

build.gradle 수정(No junit.jar 에러)

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 권기선님, 공식 서포터즈 OMG입니다. 자바 버전을 현 시점 스프링 부트와 호환 가능한 버전으로 진행할 경우( start.spring.io 사이트에서 선택 가능한 자바 버전들) build.gradle을 별도로 복사하여 붙여넣기보다는 강의 영상과 같이 프로젝트 생성 사이트 내에서 선택한 의존성 그대로 사용하시길 권장드립니다. 감사합니다. ==================> 다른 분 댓글로 이렇게 써져있는 걸 봤는데 제가 섹션 5를 듣다가 No junit.jar 에러가 계속 떠서 제시해주신 대로 해결을 해보려고 했는데, 해결이 안돼서 결국 다시 처음부터 프로젝트 생성을 하고 있습니다. https://www.inflearn.com/community/questions/1490836/%EA%B0%91%EC%9E%90%EA%B8%B0-no-junit-jar-%EC%97%90%EB%9F%AC%EB%A1%9C-run%EC%9D%B4-%EC%95%88%EB%90%A9%EB%8B%88%EB%8B%A4 ->제가 섹션5에 질문했던 내용이고, 답변했던 내용대로 하기위해서 당시에 build.gradle을 수정했었습니다. 하지만 여전히 에러가 계속 발생해서 지금 다시 생성해서 할 때는 수정을 해야할지 고민이됩니다. 아무래도 시간이 좀 흘렀다보니 강의 내용과 다른 점이 있는데, depedencies에 추가하거나 수정해야할 부분이 있을까요? 이미 비슷한 답변을 봤지만, 저는 변경하지 않았다가 No junit.jar에러가 계속 생겼어서 다시 여쭤봅니다. 또 강의에서는 sourceCompatibility로 자바버전을 나타냈는데, 자동생성된 파일에서는 java{}로 묶여서 자바버전을 나타내고 있는데, 이거 그대로 두고 넘어가도 되나요? 그리고 제 생각에는 테스트 서버를 돌리고 나서 문제가 생긴 것 같은데 관련이 있을 수 있나요?

  • java
  • spring
  • mvc
  • spring-boot
이수민 댓글 2 좋아요 0 조회수 298

갑자기 No Junit.jar 에러로 Run이 안됩니다

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 어제 섹션4 들으면서 강의 내용대로 잘 따라가고 있었는데, 오늘 섹션5 컴포넌트 스캔과 자동 의존관계 설정을 들으면서 따라하다가 실행해보니까 실행이 안돼요. test는 돌아가는데 main을 실행시키려고 하니까 계속 No junit.jar라고 뜨고 실행할 수 없다고 하는데, 새로 입력한 곳을 주석처리하고 실행시켜도 안되더라고요 어제까지는 되다가 갑자기 안되는 이유가 뭔지 모르겠어요. intelliJ는 2024.3.1.1이고, java17을 사용하고 있습니다. 구글링한대로 제가 추가적으로 Junit.jar를 다운받아서 추가해야하나요? 1-1. C:\Program Files\JetBrains\IntelliJ IDEA 2024.3.1.1\lib 이 경로에 junit.jar가 실제로 없긴 합니다. junit.jar junit-4.12.jar hamcrest-core-1.3.jar 구글링 했을 때는 이렇게 3가지 종류를 추가하라고 하는데, 3가지를 전부 따로 다운받아서 추가해야 하나요?

  • java
  • spring
  • mvc
  • spring-boot
이수민 댓글 1 좋아요 0 조회수 445

중첩클래스 static

미해결

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

안녕하세요 . 중첩클래스 관련하여 NetworkMessage를 static으로 중첩클래스로 만들면 외부클래스와 논리적으로 엮인다는것은 이해했습니다. 다만 static영역으로 관리할시 NetworkMessage 안 인스턴스의 값이 공통으로 관리되는 것아닌가여? 즉 content의 값은 매요청마다 동일한 값을 공유하게 되는것 아닌가여??

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

데이터 연동

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 서버가 정상적으로 떳는데 목록 조회시 디비랑 연결돼지 않습니다. 디비에 데이터가 존재하는건 확인했습니다.

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 0 조회수 226

SrpingConfig 오류

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 리턴을 JdbcMemberRepository로 변경시 하단의 사진과 같은 오류가 나는데 기존걸로 돌리면 오류가 없어집니다 왜 그러는 걸까요? return new JdbcMemberRepository ( dataSource ); 왜 빈을 만드는데 다 실패했다고 뜨는지...딱히 잘못해보이는게 없어 보이는데 무엇이 문제인지 모르겠습니다.

  • java
  • spring
  • mvc
  • spring-boot
이왕로 댓글 2 좋아요 0 조회수 196

optimistic Lock 재시도 질문입니다.

해결됨

재고시스템으로 알아보는 동시성이슈 해결방법

public void decrease(Long id,Long quantity){ while(true){ try{ service.decrease(id,quantity); break; }catch (Exception e){ Thread.sleep(50); } } } OptmisticLock 이 실패했을때 재시도로직에서 일정시간 대기후 서비스로 감소로직을 무한히 실행하는데 실무에서도 optimistic lock 을 이런 방법으로 처리하는지 궁금합니다. 이렇게될경우 로직이 성공할떄 까지 계속 쿼리를 날리게되는데 좀더 개선된 방법이 있을까요?

  • java
  • spring
  • 동시성
쵸잉 댓글 2 좋아요 0 조회수 263

h2 버전

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] h2 버전을 1.4.200을 써야하나요 스프링부트 3.xx 버전 이상을 쓰는데 문서에는 2.1.214버전을 쓰라고 되어있고 강의자료에는 1.4.200버전을 쓰라고 안내되어 있습니다.

  • java
  • spring
  • mvc
  • spring-boot
이왕로 댓글 2 좋아요 0 조회수 363

왜 런타임에러가 나는지 모르겠습니다. 결과값은 문제 없습니다.

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

import java.io.*; import java.util.*; class Solution { public static String solution(String str) { char[] s = str.toCharArray(); int lt = 0, rt = str.length() - 1; while(lt < rt) { if(!Character.isAlphabetic(s[lt])) lt++; else if(!Character.isAlphabetic(s[rt])) rt--; else { char tmp = s[lt]; s[lt] = s[rt]; s[rt] = tmp; lt++; rt--; } } return String.valueOf(s); } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); System.out.println(solution(str)); } }

  • java
  • 코딩-테스트
건영 댓글 2 좋아요 0 조회수 144

이론 pdf문의

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

안녕하세요 이번 1회 필기 부터 시험접수하였습니다 혹시 정보처리기사 필기도 올려주신 이론 pdf 만봐도 가능할까요??

  • python
  • java
  • c
  • 정보처리기사
oceaneffect 댓글 1 좋아요 0 조회수 90

동기화

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

동기화 강의 중 Room room = new Room(); Runnable cleaner1 = new Runnable() { @Override public void run() { System.out.println("-- 직원1 청소 시작 --"); for (int i = 1; i <= 5; i++) { room.clean("직원1"); try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } if (i == 2) { throw new RuntimeException("못해먹겠다!!"); } } System.out.println("-- 직원1 청소 끝 --"); } }; Runnable cleaner2 = () -> { System.out.println("-- 직원2 청소 시작 --"); for (int i = 1; i <= 5; i++) { room.clean("직원2"); try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } } System.out.println("-- 직원2 청소 끝 --"); }; Thread cleanerThread1 = new Thread(cleaner1); Thread cleanerThread2 = new Thread(cleaner2); cleanerThread1.start(); cleanerThread2.start(); 수업에 사용한 위 코드가 10번방까지 출력이 되는 것은, for 반복문으로 1~5 까지 5개씩의 반복을 두 개 만들었기 때문에 자연적으로 10번까지 출력할 수 있는건가요?

  • java
  • 객체지향
김재훈 댓글 2 좋아요 0 조회수 150

컨트롤러가 필수인지

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 프로젝트를 하다보니 내부적으로만 동작하는 로직이 담긴 엔티티 및 레포지토리, 서비스가 있는데 이럴 때는 컨트롤러를 안만들기도 하나요? 예를 들어 포인트 계산 로직이 외부적으로 쓰이기보다 내부적으로 다른 파트에서 그때그때 계산이 필요할 때 가져다 쓰기 위해 설계를 했다고 치면 이럴 때는 컨트롤러 없이 구현하기도 하나요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
염경호 댓글 1 좋아요 0 조회수 159

Casting3 클래스에서 형변환 값이 수업과 다르게 나옵니다

미해결

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

[질문 내용] 강사님이 말씀하신 것 처럼 오버플로우가 발생하지 않고 값이 그대로 출력됩니다 ㅠ *코드 입니다 *컴파일 결과입니다

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

트리 구조의 구현에서의 노드 객체 필드

미해결

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

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] "트리 구조의 구현" 부분에서 Node0의 왼쪽 노드는 자신의 왼쪽 자손 노드, 오른쪽 노드는 자신의 오른쪽 자손 노드라고 할 때 Node 객체의 필드를 구성하는 prev, item, next에서 prev는 left, next는 right로 생각하면 될까요? 해당 교재 내용에서 Node 객체 필드가 prev, item, next라고 되어있어 질문드립니다.

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
공이_21jh 댓글 1 좋아요 0 조회수 133

enum 마지막 문제 질문

미해결

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

[질문 내용] 여기에 질문 내용을 남겨주세요. enum의 마지막 문제 정답인데, 어떻게 values()를 아무런 호출변수없이 바로 호출이 가능하나요?

  • java
  • 객체지향
진우 댓글 1 좋아요 1 조회수 94

확장 질문

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 강사님 Closed for modification: 기존의 코드는 수정되지 않아야 한다. 이 부분에서 클라이언트는 수정되면 안되는 것으로 이해를 했는데 만약 Car에서 옵션기능이 추가 됐으면 Driver도 사용 할 수 있게 추가 되어야 될텐데 OCP 원칙을 어기는 걸까요?

  • java
  • 객체지향
딩띵 댓글 3 좋아요 0 조회수 168

실행 시켰을 때 화면이 좀 다르게 나와서 고치고 싶습니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 실행 했을 때 강사님과의 실행 결과 화면이 다르게 나오는데 혹시 세팅하는 방법을 좀 알 수 있을까요?

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

자바 중급 마지막 문제 코드리뷰 및 아이콘 출력 부탁드려요

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 코드리뷰 및 아이콘 출력 부탁드려요 안녕하세요. 자바 중급 마지막 문제를 풀어보았는데, 코드가 난잡한거 같습니다. 혹시 코드 리뷰나 틀린점을 짚어주시면 감사하겠습니다. 또한 아이콘 출력은 어려워서 이름으로 출력하게 했는데 아이콘 출력 나온는 법도 알려주시면 감사하겠습니다. 참고로 Suit 클래스는 영한님의 클래스를 재사용 하였습니다. 마지막으로 List가 비교적 사용이 쉬워서 List를 통한 풀이를 진행했는데, HashMap이나 다른 컬렉션을 이용한 풀이도 있을까요? package class2_8Iterator.MyArray.cardGame; /** * 카드에 대한 속성을 정의하는 클래스 * 1. 문양을 가진다 * 2. 번호를 가진다 * 3. 소팅이 가능하다 */ import static class2_8Iterator.MyArray.cardGame.Suit.*; public class Card implements Comparable<Card>{ private final Suit suit; private Integer cardNumber; public Card(Suit cardIcon, Integer cardNumber ){ this.cardNumber = cardNumber; this.suit = cardIcon; } /**문양을 비교하기 위해 숫자로 변환한다. * */ public Integer iconConverter(String cardIcon) { if(SPADE.getIcon().equals(cardIcon)) { return 1; } else if(HEART.getIcon().equals(cardIcon)){ return 2; } else if(DIAMOND.getIcon().equals(cardIcon)) { return 3; } else if (CLUB.getIcon().equals(cardIcon)) { return 4; } return 0; } public Suit getSuit() { return suit; } /* @Override public String toString() { return "Card{" + "icon=" + icon + ", cardNumber=" + cardNumber + '}'; } */ @Override public String toString(){ return cardNumber+"("+suit+")"; } /** * 문양을 비교하고 같은 문양이면 숫자가 더 큰게 먼저 앞으로 나온다. * */ @Override public int compareTo(Card card) { Integer thisIcon = iconConverter(this.suit.getIcon()); Integer inputIcon = iconConverter(card.suit.getIcon()); if(this.cardNumber==cardNumber){ return thisIcon<inputIcon ? -1 : (thisIcon==inputIcon ? 0 : 1); } else return this.cardNumber<cardNumber ? -1 : (this.cardNumber==cardNumber ? 0 : 1); } public int numberCompareTo(Card card){ return this.cardNumber<card.cardNumber ? -1 : (this.cardNumber==card.cardNumber ? 0: 1); } public Suit getIcon() { return suit; } public Integer getCardNumber() { return cardNumber; } public void setCardNumber(Integer cardNumber) { this.cardNumber = cardNumber; } } package class2_8Iterator.MyArray.cardGame; public enum Suit { SPADE("♠"), // 스페이드(♠) HEART("♥"),// 하트(♥) DIAMOND("♦"),// 다이아몬드(♦) CLUB("♣");// 클로버(♣) private String icon; Suit(String icon){ this.icon=icon; } public String getIcon() { return icon; } } package class2_8Iterator.MyArray.cardGame; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; import static class2_8Iterator.MyArray.cardGame.Suit.*; /** * 카드를 이용하여 덱을 구성한다. * */ public class Deck { private Card card; private List<Card> masterDeck; private List<Card> spadeDeck = new ArrayList<Card>(); private List<Card> heartDeck = new ArrayList<Card>(); private List<Card> diamondDeck = new ArrayList<Card>(); private List<Card> clubDeck = new ArrayList<Card>(); /*** * */ public Deck(){ for(int i =1 ;i <= 13; i++){ card = new Card(SPADE,i); spadeDeck.add(card); } for(int i =1 ;i <= 13; i++){ card= new Card(HEART,i); heartDeck.add(card); } for(int i =1 ;i <= 13; i++){ card = new Card(CLUB,i); clubDeck.add(card); } for(int i =1 ;i <= 13; i++){ card =new Card(DIAMOND,i); diamondDeck.add(card); } /**배열 합치기 * */ List<Card> mergedDeck1 = Stream.of(clubDeck, diamondDeck) .flatMap(Collection::stream) .collect(Collectors.toList()); List<Card> mergedDeck2 = Stream.of(spadeDeck,heartDeck) .flatMap(Collection::stream) .collect(Collectors.toList()); masterDeck = Stream.of(mergedDeck1, mergedDeck2) .flatMap(Collection::stream) .collect(Collectors.toList()); Collections.shuffle(masterDeck); /*** * 덱 생성 확인을 위한 디버깅 */ // for(Card cardEntry :deck){ // // System.out.println(cardEntry.getCardNumber() + "," + cardEntry.getIcon()); // // } // System.out.println("size ie "+ deck.size()); // System.out.println( masterDeck.getClass()); } public List<Card>getMaterDeck(){ return masterDeck; } } package class2_8Iterator.MyArray.cardGame; import java.util.ArrayList; import java.util.List; /** * DECK에서 카드를 뽑아 패에 넣는다. * */ public class Player { List<Card> hands = new ArrayList<>(); Deck deck = new Deck(); // new 연산자 (메모리에 올리기) 안쓰면 nullPointerException 터진다 Integer [] cardNumberList = new Integer[5]; Integer totalNumber = 0; public void drawCard(int turn){ List<Card> playableDeck = deck.getMaterDeck(); Card inputCard = playableDeck.get(turn); hands.add(inputCard); playableDeck.remove(turn); } public Integer getSumOfCardNumber(){ for(int i = 0 ; i <5;i++){ Card handCard = hands.get(i); cardNumberList[i] = handCard.getCardNumber(); totalNumber = totalNumber+cardNumberList[i]; } return totalNumber; } } package class2_8Iterator.MyArray.cardGame; import java.lang.reflect.MalformedParameterizedTypeException; import java.util.*; public class CardGameMain { public static void main(String args[]) { Player player1 = new Player(); Player player2 = new Player(); Deck deck = new Deck(); // List<Card> playerList1 = new ArrayList<>(); // List<Card> playerList2 = new ArrayList<>(); for (int i = 0; i < 10; i++) { if(i%2!=0){ player2.drawCard(i); } else player1.drawCard(i); } //Player 클래스의 hands에 값을 넣었으나 다른 값을 참조하니까 자꾸 OUTOFINDEX 에러 나옴 //다음 코드는 hands내 값을 디버깅 할때 사용 한다 System.out.println("player1의 카드 리스트 "+Arrays.toString(player1.hands.toArray())); System.out.println("player2의 카드 리스트 "+Arrays.toString(player2.hands.toArray())); /*** TODO * 1.손패 카드를 소팅하고 * 2. 카드 번호의 계를 구한다. */ Arrays.sort(player1.hands.toArray()); Arrays.sort(player2.hands.toArray()); System.out.println("==================정렬후 카드 패=================="); System.out.println("player1의 카드 리스트 "+Arrays.toString(player1.hands.toArray())); System.out.println("player2의 카드 리스트 "+Arrays.toString(player2.hands.toArray())); System.out.println("================== 카드 패 숫자 합계 ============="); System.out.println(player1.getSumOfCardNumber()); System.out.println(player2.getSumOfCardNumber()); if(player1.getSumOfCardNumber()> player2.getSumOfCardNumber()){ System.out.println("플레이어 1이 이겼습니다"); }else { System.out.println("플레이어 2가 이겼습니다"); } } }

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
정현 댓글 1 좋아요 0 조회수 98

main 메서드의 클래스 위치변경

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 제가 main 메서드가 존재하는 클래스의 위치를 변경하였는데요. 변경 후 부터 class not find 오류가 발생해서 클래스를 찾을 수 없다고 하는거 같은데 한 번 main 메서드가 존재하는 클래스를 만들고 나면 위치를 변경시키면 안 되는건가요?

  • java
  • spring
  • mvc
  • spring-boot
jeongho lee 댓글 1 좋아요 0 조회수 74

인기 태그

인프런 TOP Writers

주간 인기글