inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

안녕하세요! 강사님! 권한 관리에 질문이 있습니다!

미해결

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

강사님의 정말 좋은 강의를 듣고 JPA와 스프링부트를 잘 사용하고 있습니다!!!! 근데 권한관리 쪽에 한가지 궁금한게 생겨서 죄송스럽지만 이렇게 질문을 하나 작성하게 되었습니다! MemberRole이라는 Enum클래스를 만들고 거기에 USER와 ADMIN이렇게 권한을 회원, 관리자 2개로 하면 권한관리가 쉬운데 예를들면 한 서비스에 여러개의 식당 서비스들이 있고(ex 배달의 민족에서 여러개의 식당들이 있으면) 식당 사장님을 관리자로 두고 자기 식당 서비스를 관리 할 수 있게 만드려면 식당이 계속 추가 될 수 있는데 그때마다 Enum클래스에 USER, ADMIN_1, ADMIN_2... 이런식으로 관리자를 추가해줘야할까요..? 아니면 회원 테이블에 식당 정보를 추가하거나 식당 테이블에 관리자 정보를 추가시켜 ADMIN을 확일할 때 추가적으로 확인을 해줘야 할까요... 이러한 상황일때는 권한 관리를 어떻게 풀어가는지 궁금합니다!!!!!

  • spring
  • java
  • JPA
  • 웹앱
  • spring-boot
밥밥 댓글 3 좋아요 0 조회수 297

JPA와 Java 주의사항에 대한 여러 가지 질문

미해결

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

이번 강의에서는 평범한 도큐먼트만으로는 알 수 없는 정보를 알게 된 것 같아, 감사의 말씀드립니다.! 이 강의에서 몇 가지 JPA와 Java 사용에 대한 질문이 있습니다. 1. 전부 지연로딩으로 바꾸는 것이 좋다고 거듭 강조 주셨는데, 그렇다면 JPA는 왜 default로 EAGER를 사용하는 것인가요? EAGER를 default로 사용한다는 것은, 이렇게 사용하는 경우도 있고 장점도 있다는 것을 의미하는 것 같아 여쭤봅니다.! LAZY를 쓰지 않았을 때의 장점은 어떤 것들이 있나요? 2. Setter를 사용하지 않는 멤버변수에 한해 final을 사용하지 않는 이유는 무엇인가요? 아래 컬렉션 질문과 별개로 setter가 없는 모든 변수에 대해 궁금합니다. 3. 지금까지 필드 초기화는 생성자에서의 초기화와 다른 점이 우선순위만 다르다고 알고 있었습니다. 필드 초기화 -> 생성자 순으로 호출된다고 알고 있고, 단지 스타일 차이라고만 알고 있었습니다. 혹시 필드 초기화가 생성자 초기화보다 안전한 이유가 있을까요? 단순히 여러 생성자가 있을 때에 코드가 빠지는 실수를 막아준다는 이유 밖에 떠오르지 않는데, 다른 이유가 있는지 궁금합니다. 4. 양방향 연관관계 메서드에서 한 쪽만 연관관계 메서드를 적용시키면, 이를 모르고 호출하는 입장에서는 연관관계 메서드가 적용되지 않은 쪽을 호출하여 문제가 될 수도 있을 것 같다는 생각이 듭니다. Delivery <-> Order 관계를 예를 들면, 지금은 Order쪽에만 넣어서 Order에서 setDelivery할 때 자동으로 Delivery쪽도 해주었는데, &ldquo;연관관계 메서드 해놨겠지&rdquo;하며 Delivery에서 setOrder를 호출하면 문제가 될 것 같습니다. 물론 의미상 Order에서 Delivery와 OrderItem을 관리하는 것이 맞지만, 이렇게 직관적인 관계만 있지는 않을 것 같아서 그럴 때엔 어떻게 하는지 궁금합니다. 5. Address 부분 설명하실 때, 가볍게 "기본 생성자는 안 썼으면 좋겠지만 private으로 하면 안 되니 protected로 한다."라고 말씀주셨는데, 이러한 부분은 실제로 document를 읽지 않는 이상 알 수 없을 것 같아요. 강의를 듣는 사람 입장에서는 그렇구나 하고 넘길 수 있지만, 처음에 protected를 써야한다는 것은 그냥 단순히 private을 썼을 때 컴파일 오류를 통해 알게 되신건가요? (JPA에서 protected를 써야하는지 어떻게 알았냐가 메인 질문이라기보단, 이렇게 minor하지만 직관을 깨는 것들을 어떻게 보통 알게 되시는지가 궁금합니다.) 이 부분은 개인적으로 백엔드 팀장님으로의 김영한 선생님께 드리는 질문인데, 백엔드 쪽 공부를 하면서 느끼는 부분 중 하나가, 이렇게 tool을 사용하다보면 제 로직을 논리적으로 단단하게 짜는 시간도 있겠지만 그에 못지 않게 tool을 사용하기 위해 알아보는 시간도 적지 않게 쓰일 것 같은 느낌이 듭니다. 이러한 부분은 백엔드 개발이면 당연하게 받아들이는 부분인지 궁금합니다. 정말 길지만, 업무에 차질이 가지 않는 시간에 답변주시면 정말 감사하겠습니다. :)

  • java
  • spring-boot
  • spring
  • 웹앱
  • JPA
고운 코끼리 댓글 5 좋아요 3 조회수 400

@BeforeEach있으니

미해결

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

강좌 내용에 한에서 @BeforeEach에서 매번 테스트에서 새 객체를 만들잖아요 그러면 @AfterEach는 없어도되나요? 혹시 위 질문이 맞다면 매번 D.I로 테스트를 하면 @AfterEach가 빛을 보는 순간은 언제일까요??

  • spring
  • java
  • spring-boot
  • MVC
디미터 댓글 1 좋아요 0 조회수 193

저도 ReferenceError가 나는데 원인을 못 찾았습니다...

미해결

실전 리액트 프로그래밍

ReferenceError: Cannot access 'friendsWithAgeShowLimit' before initialization (anonymous function) C:/Users/la21/OneDrive/바탕 화면/chapter6_using_react-redux/src/friend/container/FriendMain.js:17 14 | ] = useSelector((state) => { 15 | const { ageLimit , showLimit , friends } = state . friend ; 16 | const friendsWithAgeLimit = friends . filter((item) => item . age <= ageLimit) ; > 17 | return [ | ^ 18 | ageLimit , 19 | showLimit , 20 | friendsWithAgeLimit , 이렇게 에러가 났는데요. 혼자서 찾아봤는데도 원인을 못 찾았습니다. import 할 때 js 확장자 다 없이 했고 밑에 분처럼 node_modules와 package_lock.json 삭제 후 다시 install 했는데도 계속 같은 에러가 나고 있습니다. 짐작가시는 원인이 있으실까요? 혹시 몰라서 FriendMain.js 코드 첨부합니다. import { getNextFriend } from "../../common/mockData"; import { addFriend, setAgeLimit, setShowLimit } from "../state"; import FriendList from "../component/FriendList"; import NumberSelect from "../component/NumberSelect"; import { shallowEqual, useSelector, useDispatch } from "react-redux"; import { MAX_AGE_LIMIT, MAX_SHOW_LIMIT } from "../common"; export default function FriendMain() { const [ ageLimit, showLimit, friendsWithAgeLimit, friendsWithAgeShowLimit, ] = useSelector((state) => { const { ageLimit, showLimit, friends } = state.friend; const friendsWithAgeLimit = friends.filter((item) => item.age <= ageLimit); return [ ageLimit, showLimit, friendsWithAgeLimit, friendsWithAgeShowLimit.slice(0, showLimit), ]; }, shallowEqual); const dispatch = useDispatch(); function onAdd() { const friend = getNextFriend(); dispatch(addFriend(friend)); } return ( <div> <button onClick={onAdd}>친구 추가</button> <NumberSelect onChange={(v) => dispatch(setAgeLimit(v))} value={ageLimit} options={AGE_LIMIT_OPTIONS} postfix="세 이하만 보기" /> <FriendList friends={friendsWithAgeLimit} /> <NumberSelect onChange={(v) => dispatch(setShowLimit(v))} value={showLimit} options={SHOW_LIMIT_OPTIONS} postfix="명 이하만 보기(연령 제한 적용)" /> <FriendList friends={friendsWithAgeShowLimit} /> </div> ); } const AGE_LIMIT_OPTIONS = [15, 20, 25, MAX_AGE_LIMIT]; const SHOW_LIMIT_OPTIONS = [2, 4, 6, MAX_SHOW_LIMIT];

  • react
  • redux
suyeon.DV 댓글 2 좋아요 0 조회수 477

args 함수 관련 질문

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

args 함수 문제를 보고 코드를 짜봤는데 None이 왜 출력되는지 궁금합니다. def wo (*args): for i, v in enumerate(args): print('순서 : ', i, '이름 :', v) print(wo('이우람')) print(wo('이우람', '김민지')) print(wo('이우람', '김민지', '최하나')) 코드를 이렇게 짜봤는데, 실행시키면 실행값 밑에 None이 이런식으로 뜨는데 왜 뜨는지 궁금합니다.

  • python
alsgp0407 댓글 1 좋아요 0 조회수 193

리덕스 구현 이후 로그인 문제

미해결

[리뉴얼] React로 NodeBird SNS 만들기

리덕스 구현 이후 로그인이 되지 않는 문제가 있어 문의 드립니다. 데브툴즈를 보니 user정보가 id, password 둘다 공백으로 들어가서 그런지,, 어떻게 해야 할까요? 깃허브 링크 첨부해 드립니다! https://github.com/wkdgus1164/zerocho-next/tree/master/prepare/front

  • Next.js
  • express
  • react
  • nodejs
  • redux
한장현 댓글 3 좋아요 0 조회수 378

안녕하세요! aws rds 관련 질문입니다.

해결됨

[리뉴얼] React로 NodeBird SNS 만들기

예전에 rds 만들어둔게 있어서 ec2에 설치하지 않고 rds랑 연동하고 있는데요, 웹스톰이나 datagrip에서 접속할 때 분명 ec2 서버 우분투 터미널에서는 잘 되는데 (보안 그룹에서 추가했습니다!) 저희집 ip도 추가했는데도 잘 안되네요ㅠ 원래 저희집 ip로 했을 때 잘 되다가 인바운드 규칙에 ec2 서버 ip를 추가하니 (보안 그룹 id 추가) 서버랑 연동은 잘 되는데 로컬에서 디비를 볼라니 잘 안되더라구요ㅠㅠ

  • express
  • nodejs
  • react
  • redux
  • Next.js
자유인 댓글 7 좋아요 0 조회수 346

튜플 선언 질문입니다.

[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

삭제된 글입니다

  • 웹-크롤링
  • python
csoh 댓글 1 좋아요 0 조회수 76

안녕하세요, Spring-data-JPA와 Jdbc 의존 관계 질문드립니다 !

미해결

실전! 스프링 데이터 JPA

안녕하세요 강사님 !! 좋은 강의 덕분에 스프링을 한 번도 사용해보지 않았지만, 빠르게 잘 적응 중 입니다, !!! 테스트 중에 spring-data-jpa와 spring-data-jdbc 의존성 추가했을 때, 오류가 발생하는 것을 발견하여 질문 드립니다. 현재 상황은 Gradle에 아래와 같인 의존 관계를 설정 하였습니다. 사진에서 보이는 바와 같이 기존에 spring-data-jpa를 먼저 추가하였고, 그 이후 spring-data-jdbc를 추가하였습니다. 하지만 spring-data-jdbc는 빌드에 실패하였고, spring-jdbc는 빌드에 성공하였는걸 확인하였습니다. 실패했을 때의 에러 로그는 아래와 같습니다. 오류 메시지를 확인해보았을 때 XXXRepository를 오버라이드 할 수 없다고 출력이되는데 저의 추측으로는 spring-data-jpa, spring-data-jdbc에서 component scan을 할 때, 순서상 어떤 것이 먼저 등록하는지는 모르겠지만 두 의존성이 동일한 클래스를 Bean으로 등록하려고 할 때 발생하는 에러인 것 같습니다. (현재 등록된 CrudRepository를 상속 받은 interface에는 모두 @Repository 어노테이션을 걸어두었습니다.) 혹시 저의 생각이 맞다면 이 부분은 어떻게 해결할 수 있는지 알 수 있을까요 ??? 만약 아니라면 어떤 부분이 이슈인지 궁금합니다. !!! 마지막으로 spring-jdbc같은 경우는 왜 오류가 발생하지 않았는지 궁금합니다 !!!

  • spring
  • spring-boot
  • java
  • JPA
김광훈 댓글 2 좋아요 0 조회수 612

Size관련 문장에서...

미해결

iOS 개발을 위한 swift5 완벽 가이드

width 와 height의 값을 둘다 switch문에서 처리하기위해서는 어떻게 코딩해야하나요?? 해보고싶은데 메소드 부분은 아예 감이 안잡히네요

  • swift
  • ios
곰콜라 댓글 1 좋아요 0 조회수 209

강좌 활용팁관련 질문인데요

미해결

자바스크립트 비기너: 튼튼한 기본 만들기

키노트 pdf파일에서 코드부분은 볼 수 없는데 그 부분은 강의에서만 볼 수 있는 건가요?

  • oop
  • javascript
tlawogh45 댓글 1 좋아요 0 조회수 236

지연로딩 프록시 질문입니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

여기서 member.getTeam()이 프록시고 getName()을 호출하면서 초기화가 돼고 이때 db를 조회한다고 배웠습니다. 그리고 쿼리가 나간 로그도 배운대로 진행됐습니다. 그런데 위에 코드로 실행해도 쿼리가 나간 로그도 처음 코드랑 동일하게 진행돼는데 아래 코드는 초기화 하는 부분이 없는데 어떻게 이런 결과가 나오는건가요???

  • java
  • JPA
qkrwnstns52 댓글 4 좋아요 1 조회수 428

<body data-hijacking="off" data-animation="none">

미해결

반응형 웹사이트 포트폴리오(Architecture Agency)

섹션 하나씩 이동하는게 작업할때 번거로워서 off하고 none으로 설정해서 사용할려고 했어요. 근데 이럴경우에는 섹션 사이사이 마다 공간이 크게 비더라구요?! 빈 공간을 줄일 수는 없나요?

  • 반응형-웹
  • jquery
  • HTML/CSS
  • 웹 디자인
Real Story 댓글 1 좋아요 1 조회수 271

질문있습니다~

미해결

리액트로 나만의 블로그 만들기(MERN Stack)

post에 이미지 크기 적용할 때에, fileSize로 적용하는 부분에서요. 기본 단위가 MB인가요? 만약 KB(크기, 화질 포함)로 적용하고 싶으면 단위 설정이 가능한가요? 혹시 0.05 * 300 * 300 이런 식으로 소수점으로 적용해야 하나요?

  • bootstrap
  • react
  • express
  • redux
  • mongodb
  • nodejs
storyyy 댓글 1 좋아요 0 조회수 182

기본 동작 방지 기능은 왜 있는 건가요?

해결됨

Svelte.js [Core API] 완벽 가이드

나머지 기능은 왜 있는지 대충 알겠는데 기본동작방지는 왜 있는지 잘 모르겠습니다. 동작하라고 만든 사이트일텐데..

  • svelte
  • Sortable
  • Rollup
상건이 댓글 1 좋아요 1 조회수 200

37번 LRU

미해결

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

37번 LRU #include <iostream> #include <string> #include <vector> #include <cstdlib> using namespace std; int main(int argc, char** argv) { int s,n, wNum, hit = -1, tmp, usedSize = 0; cin >> s >> n; vector<int> v(s); cout << "s : " <<s << " " << "n : " << n << "\n"; for(int t = 0; t < n; t++) { cin >> wNum; for(int i = 0; i < v.size(); i++) { if(v[i] == wNum) { hit = i; break; } } //hit일때 if(hit != -1) { tmp = v[hit]; for(int i = hit - 1; i>=0; i--) { v[i+1] = v[i]; } } else { for(int i = s-1; i>=0; i--) { v[i+1] = v[i]; } } v[0] = wNum; hit = -1; } for(int i = 0; i < s; i++) cout << v[i] << " "; } 제가 이 문제를 이렇게 풀었는데 이상하게 s값 (캐시 메모리의 크기) 가 10이 넘어가면 안되네요..ㅠㅠ 10보다 작으면 정상적으로 되는데.. 그래서 체점 해보면 1번2번은 맞는데 뒤에꺼는 틀리다고 하네요. 혹시 어떤게 문제인지 아시나요??..아무리 찾아도 못찾겠어요..ㅠㅠ

  • C++
  • 코테 준비 같이 해요!
LEETO 댓글 1 좋아요 0 조회수 307

skt api로 받은 데이터를 DB에 저장하고 싶습니다.

미해결

Node.js로 웹 크롤링하기

안녕하세요. skt에서 제공하는 api로 데이터를 받아서 원하는 데이터를 콘솔로그까지 뿌려보는 작업까지는 성공했습니다. const getData = async() => { try { const response = await axios(config); console.log(response.data['cin']['con']); } catch (error) { console.log('최근 데이터가 없습니다.'); } } 이 코드에서 response.data 저장된 값을 sequelize로 만들어진 mysql DB 테이블에 원하는 값만 저장하고 싶은데 예시로 짜본 코드는 다음과 같습니다. const saveData = async()=>{ try { const response = await axios(config); await db.db_test.create({ creator : response.data['cin']['cr'], location : response.data['cin']['ppt']['devl'], creat_time : response.data['cin']['ct'], lastest_time : response.data['cin']['lt'], expire_time: response.data['cin']['et'], contain_data : response.data['cin']['con'] }).then(resolved,rejected); } catch (error) { console.log(error); } } saveData(); 코드를 실행하면 테이블 만들어지는 화면만 나오고 데이터가 Db에 저장이 안됩니다. DB 싱크는 해놓은 상태입니다. 참고로 response.data['cin']에 들어가 있는 데이터는 다음과 같이 저장이 됩니다.

  • puppeteer
  • 웹-크롤링
  • nodejs
  • javascript
냠냠굿 댓글 7 좋아요 0 조회수 1059

gradlew 빌드 오류입니다.

미해결

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

안녕하세요 영한님! 환경설정 - JPA와 DB 설정, 동작확인 파트에서 20분쯤에 jar로 빌드하는 부분에서 오류가 나서 문의드립니다! 환경은 윈도우이고 아래와 같이 build.gradle Settings-Build, Execution, Deployment-Build Tools-Gradle에서 Gradle-JVM Settings-Build, Execution, Deployment-Build Tools-Compiler-Java Compiler에서 Project bytecode version Project Settings-Project에서 Project SDK와 Project language level Project Settings-Modules에서 Language level 이 부분 모두를 11로 설정해주었는데도 다음과 같이 에러가 발생합니다. 동일한 오류가 났던 분들이 해결한 방법대로 설정을 바꾸어보고, 혹시 h2가 켜져있는 것의 문제인가 싶어서 끄고도 해보고 켜보고 해보았지만 해결이 되지 않아서 혹시 다른 방법이 있을까 하여 질문 드리게 되었습니다. 감사합니다! C:\workspace\jpa-shop>gradlew build --stacktrace > Task :compileJava FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileJava'. > Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'. * Try: Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':compileJava'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:200) at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:198) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:179) at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:372) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:359) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:352) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:338) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) Caused by: java.lang.IllegalArgumentException: Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'. at org.gradle.api.internal.tasks.AbstractJavaToolChain$UnavailableToolProvider.newCompiler(AbstractJavaToolChain.java:108) at org.gradle.api.tasks.compile.JavaCompile.legacyCompiler(JavaCompile.java:317) at org.gradle.api.tasks.compile.JavaCompile.createToolchainCompiler(JavaCompile.java:309) at org.gradle.api.tasks.compile.JavaCompile.createCompiler(JavaCompile.java:301) at org.gradle.api.tasks.compile.JavaCompile.performIncrementalCompilation(JavaCompile.java:235) at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:209) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104) at org.gradle.api.internal.project.taskfactory.IncrementalInputsTaskAction.doExecute(IncrementalInputsTaskAction.java:32) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51) at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:555) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:540) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:523) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:108) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:271) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:260) at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:33) at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:33) at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26) at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:67) at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:36) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:49) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:34) at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:43) at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73) at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54) at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:44) at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:54) at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:38) at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:42) at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:159) at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:72) at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:43) at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44) at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33) at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38) at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24) at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92) at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85) at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55) at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39) at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76) at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26) at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94) at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49) at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79) at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53) at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74) at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78) at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78) at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39) at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40) at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28) at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:187) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:179) at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:372) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:359) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:352) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:338) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) * Get more help at https://help.gradle.org BUILD FAILED in 2s 1 actionable task: 1 executed

  • spring
  • spring-boot
  • 웹앱
  • JPA
  • java
jummi 댓글 6 좋아요 0 조회수 7695

인기 태그

인프런 TOP Writers

주간 인기글