묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 부트 - 핵심 원리와 활용
NoClassDefFoundError가 아닌 UnsupportedClassVersionError가 뜨는 경우 해결방법
NoClassDefFoundError가 아닌 UnsupportedClassVersionError가 발생하는 경우 java 버전이 하위 버전인 경우일 때 나타나는 것을 확인했습니다.자바 17 버전으로 하셔야 강의처럼 NoClassDefFoundError가 나타납니다.아래는 8, 11 버전에 대한 에러를 확인해서 공유드립니다ㅎㅎError: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: hello/embed/EmbedTomcatSpringMain has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)위의 에러는 java8 버전일 때 나타나는 에러입니다.Error: LinkageError occurred while loading main class hello.embed.EmbedTomcatSpringMain java.lang.UnsupportedClassVersionError: hello/embed/EmbedTomcatSpringMain has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0위의 에러는 java11 버전일 때 나타나는 에러입니다. 프로젝트랑 환경변수가 java17로 되어 있어도 cmd나 터미널을 이용해서 자바버전을 확인하세요
-
미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
질문있습니다!
안녕하세요. 질문 있어서 글 올립니다.만약 복잡한 reduce 함수 하나 대신 3개의 map과 간단한 reduce 함수로 분리한다면 전자는 반복을 한번만 하면 되고 후자는 반복을 총 4번 해야한다는 계산이 서는데 왜 성능상 차이가 없는 것인지 궁금합니다.스스로 찾아보려고 햇는데 실력이 부족한지 관련 내용을 찾지 못해 질문드립니다ㅠㅠ
-
미해결정혜경 판타스틱 자료구조 in C
음...
addfirst 랑 addlast 를 왜 나누는지 이해가 안됩니다.addlast 코드만 있어도 추가하는데는 문제가 없어보이는데...
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
형 변환 질문
숫자를 문자열로 바꿀때 String.valueOf(); / Integer.toString(); 이 두가지를 사용하여 알려주셧는데 퀴즈에서 String busNO = "1234"; 를 사용하니 1234가 문자열로 바뀌었더라구요. (sout(busNo + 10)을 입력하니 123410이 나왔습니다.)위에서 알려주신 두가지 방법과 퀴즈에 나온 방법이 무슨 차이가 있을까요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
형변환 후반전 질문
93과 98.8을 각각 문자열로 변환한 다음에 저희가 사용하는 07 폴더에서는 계속해서 93과 93.8이라는 숫자는 컴퓨터가 숫자가 아닌 문자열로 인식된 상대 인가요? (93과 98.8을 더하면 9398.8인 형태로) 그 다음에 다시 문자열을 숫자로 바꾼 과정에서 컴퓨터가 숫자로 인식을 하는건가요?(93과 98.8을 더하면 191.8인 형태로)
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
8:41 질문
@PutMapping("/api/v2/members/{id}") public UpdateMemberResponse updateMemberV2( @PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request) { memberService.update(id, request.getName()); return new UpdateMemberResponse(id, request.getName()); } 파라미터로 들어온 값으로 UpdateMemberResponse를 만들어주지 않고 memberService.findOne을 통해 하는 이유가 있을까요?
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
무결성 제약조건이 위배되는 경우에 대한 예외처리에 대해 질문드립니다
안녕하세요 강사님. Kotlin + JPA에 대해 마땅히 질문남길 곳이 없어서 질문드리게 되었습니다😅 Book 엔티티에서 name을 유니크 키로 지정해서 중복된 값을 설정하려고 하면 아래처럼IllegalArgumentException을 던져주게 하는 코드를 작성하고자 했습니다.@Transactional fun saveBook(request: BookRequest) { val book = Book(request.name, request.type) try { bookRepository.save(book) } catch (e: DataIntegrityViolationException) { throw IllegalArgumentException("이미 등록된 도서입니다.") } }그런데 JPA의 영속성 컨텍스트로 인해 @Transactional이 붙은 메소드에서 DataIntegrityViolationException를 처리해주기 위해선 flush()를 직접 호출해서 쿼리를 실행시켜야 한다는 것을 알게되어 아래와 같이 코드를 수정했고, 테스트 코드에서 정상적으로 IllegalArgumentException이 처리되는 것을 확인할 수 있었습니다.@Transactional fun saveBook(request: BookRequest) { val book = Book(request.name, request.type) try { bookRepository.save(book) bookRepository.flush() } catch (e: DataIntegrityViolationException) { throw IllegalArgumentException("이미 등록된 도서입니다.") } }이렇게 코드를 작성해놓고 보니 하나의 메소드에서만 이렇게 무결성 제약조건 위배에 대한 처리를 한다면 상관이 없겠지만 여러 메소드에서 무결성 제약조건을 위배하는 경우에 대해 각기 다른 메시지를 담은 예외를 던지게 된다면 중복 코드가 너무 많이 발생할 것 같다는 생각이 들더라구요. 이런 경우에 아래처럼 확장함수와 람다를 사용해서 예외 처리를 해도 괜찮을까요?inline fun <reified T, ID, R> JpaRepository<T, ID>.flushOrThrow(exception: Throwable, block: JpaRepository<T, ID>.() -> R): R { try { val result = block() flush() return result } catch (e: DataIntegrityViolationException) { throw exception } }@Transactional fun saveBook(request: BookRequest) { val book = Book(request.name, request.type) bookRepository.flushOrThrow(IllegalArgumentException("이미 등록된 도서입니다.")) { save(book) } }이런 방법을 썼을 때 코드가 너무 복잡해지진 않을지, 협업을 하는 경우에 문제가 되진 않을지, 이런 경우가 발생하면 다른 분들은 어떤 방법을 사용하시는지 고민되어 질문 남깁니다!🙏
-
미해결인터랙티브 개발 실무 끝장내기 [역량 강화편]
스크롤 위치에 따른 페이지 변화 - scroll 이벤트 에 대한 질문
안녕하세요강사님이해가 되지 않아서 질문드립니다.저는 조건을 한글로 생각해서 저렇게 주석으로 정리를 해놨습니다.if문의 조건을 봤을땐 조건이 맞아서 console.log에 scroll 라는 변수도 정상적으로 찍힙니다.제가 궁금한것은 2개의 조건이 스크롤 할때마다 맞는데 어떻게 스크롤 값이 526 이 되거나 넘어가면 pageNum의 값이 증가하는걸까요?많이 헷갈려서 이부분만 여러번 보는듯합니다.아니면 저의 해석이 잘못된 걸까요?// 1. 스크롤의 값이 sectionNum의 Top 시작 값 - 화면 높이 값/3 보다 큰가? = 스크롤의 값이 -250보다 큰가? // 2. 스크롤의 값이 sectionNum의 Top 시작 값 - 화면 높이 값/3 + sectionNum의 전체 높이 값 보다 작은가? = 스크롤의 값이 526 보다 작은가? for(let i = 0; i < maxNum; i++){ // 1. 스크롤의 값이 sectionNum의 Top 시작 값 - 화면 높이 값/3 보다 큰가? = 스크롤의 값이 -250보다 큰가? // 2. 스크롤의 값이 sectionNum의 Top 시작 값 - 화면 높이 값/3 + sectionNum의 전체 높이 값 보다 작은가? = 스크롤의 값이 526 보다 작은가? if(scroll > sectionNum[i].offsetTop - window.innerHeight/3 && scroll < sectionNum[i].offsetTop - window.innerHeight/3 + sectionNum[i].offsetHeight){ pageNum = i; console.log(scroll); if(scroll > sectionNum[i].offsetTop - window.innerHeight/3){ console.log('큼1') } if(scroll < sectionNum[i].offsetTop - window.innerHeight/3 + sectionNum[i].offsetHeight){ console.log('큼2'); } // console.log(sectionNum[i].offsetTop); // 8 785 1562 2339 // console.log(window.innerHeight/3) // 258 // console.log(sectionNum[i].offsetHeight); // 777 // 8 - 258 = -250 // -236 + 734 = 527 // console.log(sectionNum[i].offsetTop - window.innerHeight/3 + sectionNum[i].offsetHeight); // 526 // console.log(scroll) // console.log(pageNum); // console.log(sectionNum[i].offsetTop - window.innerHeight/3) // -250 // 한번 돌았으면 break; } }
-
미해결메타스플로잇(Metasploit) 활용한 취약점 분석(초중급과정)
VR BOX에서 네트워크 탭이 안보입니다
(사진)
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
메인엑티비티에서 이미지뷰 오류
여기서 ImageView에 왜 빨간 줄이 나오는 걸까요...
-
미해결
input 태그 한글 작성시 '마지막 글자 밀림' 오류와 '문자열 마무리' 오류
안녕하세요 !! 다름이 아니라 현재 제가 일반 브라우저가 아닌 C#기반으로 돌아가는 웹을 작업중인데요input 태그에 한글 작성시 '마지막 글자 밀림'오류와 '문자열 마무리'오류가 발생되어 혹시 해결 방법을 아시는 분이 있을까 하여 글 남깁니다..! 제발 도와주세요 감사합니다 !
-
미해결내 가치를 높이는 노션 이력서 만들기
이력서 사진 관련
저런 리안님을 대표하는 이미지가 없어서 그런데, 실물사진을 넣기에는 뭔가 부담이 되고 사진이 필수인지 + 여태껏 사진이 없는 문서로 지원을 많이해왔는데 첫인상에 좀 이게 이슈가 있는지도 궁금해요.
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
실행화면에서 오류가 나요
이렇게 실행화면을 누르면 오류가 나고 또한 원래 플레이 버튼이 바뀌었어요 ㅠㅠ
-
미해결초보자도 만들 수 있는 스크롤 인터렉션. 1편 자바스크립트
화면 높이 관련 질문 있습니다.
섹션1높이 - 화면 높이 = 2539px 이라고 하셨는데요!섹션1높이는 알겠는데...화면높이는 브라우저의 실질적으로 콘텐츠가 보이는 곳을 말씀하시는걸까요...? 그럼 실제 스크롤거리는 어디 부분을 말하는걸까요...?즉, 화면 높이와 2539px의 정확한 설명이 필요합니다 ㅠ
-
해결됨Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
깃 요청 드립니다.
인프런 아이디 : Marcus Aurelius인프런 이메일 : marcusaurelius80@gmail.com깃헙 아이디 : chunhee.han@outlook.com깃헙 Username : MagnaPax
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
뭐를 잘못 클릭해나 봅니다.
제가 뭘 잘못 눌렀는지 저 파란색 드래그 부분이 하얀색 이 되면서 엔터키를 눌러도 } 중괄호들이 내려가지 않고 그대로 멈춰 있었습니다. 탭키를 눌러도 그자리에 그대로 고정된것 처럼 있더라고창을 닫으니 해결되긴 했는데 왜 저렇게 됐는지 혹시 아시나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
BindingResult typemismatch, ExceptionResolver TypeMismatchException
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]BindingResult에서 처리된 typemismatch와 ExceptionResolver강의에서 처리하는 TypeMismatchException의차이가 궁금해요.
-
미해결웹 게임을 만들며 배우는 React
savedCallback.current = callback을 useEffect안에 넣은 이유가 궁금합니다
function useInterval(callback, delay) { const savedCallback = useRef(); //useEffect(() => { savedCallback.current = callback; //}); useEffect(() => { function tick() { savedCallback.current(); } if (delay !== null) { let id = setInterval(tick, delay); return () => clearInterval(id); } }, [delay]); return savedCallback.current; } deps를 주지 않은 useEffect는 렌더링될때마다 실행되는 것으로 알고 있습니다useEffect로 감싸주든 안 감싸주든savedCallback.current = callback 코드는 렌더링될때마다 실행되는데useEffect로 감싸준 이유가 궁금합니다!
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
파이어베이스 로그인구현 장면에서 gradle상태가 많이 다릅니다.
제 gradle project화면 상황입니다. 말씀하신대로 저 화면에 classpath 'com.google.gms:google-services:4.3.15' 문장을 복사 ->붙어넣기를 하려는데요... 강의에서 나왔던 거랑 구조가 아예 달라서 당황스러워서 어떻게 해야할지 모르겠습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
투두리스트 배경화면 적용 404 오류
강의부분에const weatherDataActive = function({location, weather}){ const locationNameTag = document.querySelector('#location-name-tag'); locationNameTag.textContent = location; console.log(weather); document.body.style.backgroundImage = `url('./images/${weather}.jpg')` };이 부분을 제가 똑같이 따라했는데요 노션에 있는 사진 자료 그대로 다운받았고선생님이 말씀하신 경로에 똑같이 담았는데document.body.style.backgroundImage = `url('./images/${weather}.jpg')`이걸 치니까 직전에 선생님이랑 같이 적용했던 css 백그라운드 이미지(햇빛)도 안나오고 404오류가 떠요ㅠㅠ왜일까요?