173만명의 커뮤니티!! 함께 토론해봐요.
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. boot '3.0.3'버전 java17 버전 이용중입니다. java/hello/hellospring/controller/HelloController resources/static/index.html resources/templates/hello.html 소스는 전부 교재에서 복붙하고 서버 실행 후 http://localhost:8080/hello 보면 이렇게 뜨네요 ㅠㅠ
spring-boot MVC mvc java spring
한진희
2023-02-25T12:18:32.343Z
댓글 1
좋아요 0
조회수 1274
해결됨
외워서 끝내는 네트워크 핵심이론 - 기초
22:13 도메인을 구매할 때, 도메인 내 서브 도메인 더 둘지, Host를 여러대 둘지를 NAVER DNS에서 다룬다고 하셨는데요. 서브 도메인을 둔다는 것이 Host가 여러 대라는 것을 의미하는 것일까요?? 여기에 대한 예시를 부탁드려도 될까요?? comic.naver.com , mail.naver.com의 경우 comic, mail이 naver의 서브 도메인이자 Host가 다른 것인지, 동일 Host에서 도메인 명만 다르게 하는 것인지 궁금합니다.
치치
2023-02-25T11:53:20.731Z
댓글 3
좋아요 0
조회수 882
미해결
스프링 핵심 원리 - 고급편
이 상태에서 계속해서 proxy로 ExamRepository랑 ExamService 가 proxy로 등록이 안돼서 로그 남기는 거랑 오류 복구 과정이 안됩니다 ㅠㅠ
임동현
2023-02-25T11:48:41.018Z
댓글 1
좋아요 0
조회수 786
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링부트 툴 4 인텔리제이 무료버전이 아니라 spring boot 툴 사용해도됩니까?
MVC java mvc spring-boot spring
오상수
2023-02-25T11:22:18.101Z
댓글 1
좋아요 0
조회수 1596
미해결
따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Rect.FC의 사용하지않고 아래와 같이해도 무방할까요???
nodejs node.js postgresql typescript docker react 클론코딩 next.js 클론코딩 Next.js
oridori2705
2023-02-25T11:19:20.201Z
댓글 1
좋아요 0
조회수 457
미해결
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
안녕하세요. 강의 6분23초 쯤에 HTML을 FORM을 통해서 데이터를 입력하고 나서 전송을 해주었는데요. 이때 클라이언트의 URL이 /basic/hello-form.html에서 /request-param-v1으로 바뀌었는데, 왜 바뀌게 된건가요? HTML FORM에서 전송 버튼을 누르면 RequestMapping이 되어서 메소드가 호출되는거 같은데, 왜 해당 컨트롤러의 메소드가 호출되는것인가요? http강의자료와 이전에 학습했던 자료를 찾아봐도 해당 관련 내용이 어떤것인지 확인이 안되어 질문드립니다ㅠㅠ -구글링을 하면서 1,2번에 대한 답을 추가로 생각해봤는데, [전송]버튼을 누르면 form action으로 지정한 URL을 POST방식으로 서버에 요청하는데, 클라이언트의 URL이 /request-param-v1로 바뀐다. 즉 /request-param-v1을 POST방식으로 서버에 요청하는것이고, 이렇게되면 /request-param-v1이 호출되는것이므로 해당 컨트롤러 메서드가 실행된다. 이렇게 이해하는게 맞을까요?
오리쉐리
2023-02-25T11:19:13.305Z
댓글 1
좋아요 0
조회수 501
미해결
따라하며 배우는 HTML, CSS
선생님 저는 왜 서치 부분이 이렇게 되는 걸까요?
yh
2023-02-25T11:13:46.995Z
댓글 1
좋아요 0
조회수 388
미해결
피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
안녕하세요, 에릭님! 강의를 듣다가 질문이 생겨 문의드립니다: 간혹 프레임 안에서 작업을 하다가, 어느순간 프레임을 움직일 때 안에 놓았던 개체들이 프레임과 분리되어 같이 움직이지 않는 경우가 생깁니다. 이렇게 프레임 안에서 잘 꾸미고 있다보면 가끔 어느 순간, 2. 프레임을 움직일 떄, 아래와 같이 프레임과 개체들이 분리되어 있습니다. 어떤 경우에 이렇게 되어버리는지와 다시 합칠 수 있는 방법을 알 수 있을까하여 문의드립니다. 강의가 도움이 정말 많이 되고 있습니다. 항상 정말 감사합니다.
웹-디자인 모바일-디자인 웹 디자인 figma 모바일-디자인
Miley
2023-02-25T10:51:02.832Z
댓글 1
좋아요 0
조회수 588
미해결
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요. asw ec2에서 코드 가져올때, 처음에 git clone 으로 git에 있는 소스 전체를 가져왔는데요, 이후에 수정된 파일을 배포할때도, git clone으로 하면되나요? 아니면 다른 명령어가 있는건가요.?
aws spring java JPA mysql jpa spring-boot
8월19시30분김서욱
2023-02-25T10:38:57.633Z
댓글 1
좋아요 1
조회수 480
미해결
반응형 웹사이트 포트폴리오(App Official Landing Website)
선생님 강의에서 테마를 변경 후 작업중입니다. 슬릭슬라이드를 적용 하였는데 마지막 사진의 위치가 내려갔습니다. 사진을 변경하여 작업을 해봐도 같은 현상이 발생합니다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>다울건축사무소</title> <!--jquery--> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script> <!--Slick slider--> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.css" /> <!--Custom CSS & js --> <link rel="stylesheet" href="/style.css"> <link rel="stylesheet" href="/resposive.css"> <script src="js/custom.js"></script> </head> <body> <div class="container"> <!--section : header --> <header> <div class="header-inner"> <div class="logo"> <a href="#none"> <img src="/images/logo.png"> </a> </div> <div class="gnb"> <a href="#none">ABOUT</a> <a href="#none">RPOJECTS</a> <a href="#none">NEWS</a> <a href="#none">CONTACT</a> </div> </div> </header> <!--section : home --> <section class="home"> <div class="home-inner"> <ul class="imgbox"> <li class="item-bg" style="background-image: url(/images/강원대농업생명과학대학개축설계제안공모\(설계공모\ 당선\).jpg)"> <div class="text-area"> <h3 class="eng">강원대 농업생명과학대학 개축 설계제안 공모</h3> <p>(설계공모 당선)</p> </div> </li> <li class="item-bg" style="background-image: url(/images/서울대학교문화관재건축공사현상설계.jpg)"> <div class="text-area"> <h3 class="eng">서울대학교 문화관 재건축공사 현상설계</h3> <p>(설계공모 당선)</p> </div> </li> <li class="item-bg" style="background-image: url(/images/서울출입국·외국인청\(설계공모안\).jpg)"> <div class="text-area"> <h3 class="eng">서울출입국·외국인청</h3> <p>(설계공모안)</p> </div> </li> <li class="item-bg" style="background-image: url(/images/수성행복드림센터\(설계공모\ 당선\).jpg)"> <div class="text-area"> <h3 class="eng">수성행복드림센터</h3> <p>(설계공모 당선)</p> </div> </li> <li class="item-bg" style="background-image: url(/images/시화\ MTV\ 초중통합학교\(우수상\).jpg)"> <div class="text-area"> <h3 class="eng">시화 MTV 초중통합학교</h3> <p>(우수상)</p> </div> </li> <li class="item-bg" style="background-image: url(/images/시화mtv지하주차장\ \(설계공모\ 당선\).jpg)"> <div class="text-area"> <h3 class="eng">시화 MTV 지하주차장</h3> <p>(설계공모 당선)</p> </div> </li> <li class="item-bg" style="background-image: url(/images/한수원새울본부복지관신축.jpg)"> <div class="text-area"> <h3 class="eng">한수원 새울본부 복지관 신축</h3> </div> </li> </ul> </div> </section> <section class="about"></section> <section class="award"></section> <footer></footer> </div> </body> </html> /*CSS*/ /* Web Font - Kanit */ @import url('https://fonts.googleapis.com/css2?family=Kanit:wght@200;300;400;500;600;700&display=swap'); /* Web Font - S-CoreDream */ @font-face { font-family: 'S-CoreDream-3Light'; src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-3Light.woff') format('woff'); font-weight: normal; font-style: normal; } /* Reset CSS */ * { box-sizing: border-box; } a { text-decoration: none; color: #333; } button, input { outline: none; } h1, h2, h3, h4, h5, h6 { margin-top: 0; font-weight: normal; line-height: 1.5em; } ul, li { padding: 0; list-style: none; } /* Default CSS */ body { font-family: 'Kanit'; line-height: 1.7em; margin: 0; background-color: #fff; color: #333; } /*section - header*/ .header-inner { width: 1300px; margin: auto; padding-top: 20px; padding-bottom: 10px; overflow: hidden; } .logo { float: left; } .gnb { margin-top: 10px; float: right; } .gnb a { font-size: 20px; margin-left: 80px; } /*section - home*/ ul.imgbox { overflow: hidden; margin: 0; } .item-bg { display: inline-block; top: 0; background-size: cover; background-position: center; height: 100vh; } /*Custom JS*/ $(document).ready(function(){ $('.imgbox').slick({ infinite: true, dots: true, speed : 3000, autoplay: true, autoplaySpeed: 5000, swipe: true, arrows: false, fade : true, zIndex:50, pauseOnFocus: false, pauseOnHover: false, }); });
html/css jquery 반응형-웹 HTML/CSS 반응형-웹
황재중
2023-02-25T10:38:48.585Z
댓글 2
좋아요 2
조회수 696
미해결
바닥부터 시작하는 STM32 드론 개발의 모든 것
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. AHRS Msg에 쓰로틀값을 넣으면 1000~2000사이 값이 전송되므로 기압고도계와 너무 큰 차이를 보입니다. 이 값을 고도로 환산 해주는게 좋을지 않을까 생각합니다. 물론 고도가 해면고도 등 따지면 어렵기 때문에 LPS22HH값을 평균내서 쓰로틀을 환산해주면 좋을것 같습니다. (고도는 200m 정도 제어 한다고 가정하구요)
윤남경
2023-02-25T10:27:39.285Z
댓글 1
좋아요 0
조회수 420
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
package com.example.velog.domain; import lombok.Builder; import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.springframework.web.multipart.MultipartFile; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Pattern; @Getter @ToString public class UserDTO { private Long userId; @NotBlank(message = "이메일은 필수 입력사항 입니다.") // 이메일 형식이여야 함 @Pattern(regexp = "^(?:\\w+\\.?)*\\w+@(?:\\w+\\.)+\\w+$", message = "이메일 형식이 올바르지 않습니다.") @Email(message = "이메일 형식에 맞지 않습니다.") private String userEmail; @NotBlank(message = "비밀번호는 필수 입력 값입니다.") @Pattern(regexp = "(?=.*[0-9])(?=.*[a-zA-Z])(?=.*\\\\W)(?=\\\\S+$).{8,20}", message = "비밀번호는 영문 대,소문자와 숫자, 특수기호가 적어도 1개 이상씩 포함된 8자 ~ 20자의 비밀번호여야 합니다.") private String userPw; @NotBlank(message = "이름은 필수 입력사항 입니다.") private String userName; @NotBlank(message = "주소는 필수 입력사항 입니다.") private String userAddr; @NotBlank private String userAddrDetail; @NotBlank private String userAddrEtc; private MultipartFile userImg; @Builder public UserDTO( String userEmail, String userPw, String userName, String userAddr, String userAddrDetail, String userAddrEtc, MultipartFile userImg) { this.userEmail = userEmail; this.userPw = userPw; this.userName = userName; this.userAddr = userAddr; this.userAddrDetail = userAddrDetail; this.userAddrEtc = userAddrEtc; this.userImg = userImg; } } UserDTO에 유효성 검사를하려고 어노테이션을 사용했고 setter을 빼고 @Builder을 사용했습니다. 근데 여기서 의문점이 생겼습니다. 유효성 검사를 사용하고 컨트롤러에서 @Valid나 @Validated를 사용할 때 유효성 검사가 있는 DTO에 예를들어 @Vlidated UserDTO userDTO 이런식으로 쓰는걸로 알고 있는데 setter을 빼고 @Builder을 사용해서 view에서 form action으로 보내줘도 setter로는 못받고 builder가 받는 식인 예를들어 String email = "zsaez45@naver.com"; String password = "Dkdms147!"; String name = "테스터"; String addr = "서울시 xxxx xxx"; String addrDetail = "xxxx"; String addrEtc = "2층"; UserDTO p1 = UserDTO.builder() .userEmail(email) .userPw(password) .userName(name) .userAddr(addr) .userAddrDetail(addrDetail) .userAddrEtc(addrEtc) .build(); 이렇게 받는걸로 알고 있습니다. 그러면 view에서 보내준 것을 컨트롤러에서 받으려면 하나하나 풀어보 받아야하나요? 어떤식으로 받을 수 있죠? @Builder을 사용하려니 어렵네요;;
java 웹앱 웹앱 spring JPA spring-boot
유요한
2023-02-25T10:26:16.465Z
댓글 1
좋아요 0
조회수 1289
해결됨
ARM Cortex-M 프로세서 프로그래밍
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강사님. 강의 잘 보고 있습니다. 질문이 있습니다. blanch 코드의 경우 pipeline stall이 발생할 수 있다하셨습니다. 아래는 예제입니다. cmp r0, r1 bge 1f 만약 이 명령어가 실행된다 가정하면 blt 2f 1: bx lr 2: mov r0,r1 ... 3-stage pipeline일 때 각 단계를 보면 아래처럼 될 것으로 생각이 듭니다. E bge 1f D blt 2f F bx lr Execute 에서 갑자기 분기를 했으니 그 전에 있던 Fetch Decode 값이 의미가 없다?라고 생각하고 버리겠죠. 이게 pipeline stall로 이해하고 있는데 it 명령어는 왜 pipeline stall이 없는 명령어인지 이해가 되지 않습니다. 다음에 실행될 명령어를 미리 안다? 생각해도 Decode 단계에서 해석을 해야 가능할 것 같은데, 그렇다면 pipeline stall이 발생할 것 같아서요. 제가 잘못 이해하고 있는건가요?
임베디드 cortex arm-architecture 임베디드
김상현
2023-02-25T10:09:44.945Z
댓글 1
좋아요 1
조회수 539
미해결
대세는 쿠버네티스 (Helm편)
동일하게 생성했지만 제대로 생성이 안되어서 pvc describe 했더니 저런 오류가 발생했습니다.. 꽤 오래 헤맸는데 해결방법이 있을까요
김철우
2023-02-25T09:55:17.602Z
댓글 2
좋아요 1
조회수 555
해결됨
[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
updateUserPwd 구현 중에, 파라미터로 업데이트할 패스워드를 받도록 했습니다. 이 때, API 호출 시, 해당 파라미터의 최소 길이를 8 이상으로 하고 싶은데 따로 방법이 있을까요?
node.js tdd rest-api javascript express docker nodejs nestjs NestJS
ZZAMBA
2023-02-25T09:50:13.918Z
댓글 1
좋아요 0
조회수 433
미해결
스프링과 JPA 기반 웹 애플리케이션 개발
안녕하세요. 모임 만들기 페이지에서 시간을 설정할 때, 연월일 제외하고 시간만 입력하려면 어떻게 하면 되는지요? fragments.html 의 <div th:fragment="event-form (mode, action)"> 에서 <input id="endEnrollmentDateTime" type="datetime-local" 의 type 부분을 type="time" 으로 하고 Event 클래스에서 private LocalDateTime endEnrollmentDateTime; 을 private DateTime endEnrollmentDateTime; 로 변경하고 실행하면 html 상에서는 시간이 입력되나, DB 에는 insert 되어 있지 않습니다. 어떻게 하면 가능한지요? 자세한 설명 부탁드립니다. 그리고, 제공해 주신 소스를 다운로드해서 프로젝트를 실행한 후, 오른쪽 드롭다운 메뉴 중 스터디를 클릭해도 아무 동작이 일어나지 않습니다. 소스를 보면 <a class="dropdown-item" >스터디</a> 이렇게만 나와있고 th:href="@{}" 로 연결된 페이지가 없습니다. 이 부분 기능 구현은 안 해 놓으신 건지요? 프로필 페이지에서도 왼쪽 프로필 사진 밑에 있는 스터디 버튼을 누르면 Study 라고만 나오고 별다른 페이지가 나오지 않습니다. 이 부분도 기능 구현은 안 해 놓으신 건지요?
java spring spring-boot JPA jpa spring-boot thymeleaf
박종성
2023-02-25T09:38:06.303Z
댓글 1
좋아요 0
조회수 480
미해결
모든 개발자를 위한 HTTP 웹 기본 지식
항상 좋은 강의 감사합니다. 예전에 들었던 강의인데 다시 복습 겸 듣고 있습니다. 그런데 다른 분들이 질문한 것들을 보니 공통된 것들이 있고, 저 역시 궁금한 점이 있어서 말씀드립니다. "HTTP 지속연결" -> 지속 연결이라고 하는 것이 정확히 무엇인가요? 영상 5:30초에서 비교한 (0.9초 -> 0.5초) 에서의 각각에 해당하는 결과, 종료는 각각 무슨 연결과 종료를 뜻하는 것인가요? tcp/ip의 3way handshake 인가요? 아니면 http 인가요? 결과론적으로 비 연결성이 한계(매번 3 way handshake 자원상) 가 있으니 연결성을 지향해야 한다는 것인가요? 그런데 연결성이 애초에 자원상 한계가 있으니 현재 http/1.1에서는 지속연결을 사용중인 건가요? http/2, 3에서는 더 많은 최적화를 하고 있다고 하셨지만.. 미리 감사드립니다^^
highjune
2023-02-25T09:31:45.684Z
댓글 1
좋아요 0
조회수 720
미해결
BBC 인터랙티브 페이지 "코로나19가 바꿀 사무실의 미래" 클론
안녕하세요 , 23년도에도 듣고 계신 분이 계실지는 모르겠지만.. 강의 들으면서 혹시 막히시는 부분들 제가 수업 들으면서 작성한 코드와 비교해서 본인이 작성한 어떤 부분이 잘못되었는지 확인하시면 문제해결에 도움이 될듯해서요 ! birdflies 함수 작성에서 작은 따옴표가 아닌 ` <- 이 부분 (숫자 1 옆의 템플릿 리터럴 ) 활성화 > 비활성화가 되었을 때 다시 돌아오지 않는 부분 이였습니다. 위 두가지에서 시간이 좀 잡아먹었는데 저와같은 분들이라면 제 js 랑 비교해보세요 ㅋㅋ ( 이 부분은 애니메이션이 완전히 끝까지 완료 후 스크롤을 내려야 다시 활성화 되었을 때 애니메이션이 제자리에서 작동을 하더라구요. ) html { font-family: 'Noto Sans KR', sans-serif; } body { margin: 0; } div, section, header, footer, p, h1, h2 { box-sizing: border-box; } a { color: royalblue; } img { max-width: 100%; height: auto; } /* 배경이 되는 이미지들 */ .global-width{ max-width: 620px; margin: 0 auto; padding: 0 1rem; } .scroll-graphic{ overflow-x: hidden; position:sticky; top:0; height: 100vh; } .graphic-item{ display: flex; align-items: center; justify-content: center; position:absolute; left: 0; top:0; width: 100vw; height: 100vh; opacity: 0; transition: 0.5s; will-change: opacity; } .visible{ opacity: 1; } .scene-img{ max-height: 100vh; } .scroll-text{ position: relative; padding-bottom: 1px; } .step{ margin-bottom: 60vh; padding: 0.5rem 1rem; border-radius: 10px; border : 0.2px solid rgba(216,216,216,0.2); box-shadow: rgba(0,0,0,0.3)0 0 3px; background: rgba(255,255,255,0.8); } .bird{ position:absolute; left: 0; bottom:70%; width: 100px; transform:translateX(-100%); transition:1.5s 0.5s linear; } [data-index="5"] .bird{ left: 30%; bottom:30%; } .global-footer{ text-align: center; padding:2rem 0; } .strikethrough{ text-decoration: line-through; } // 전역변수 사용 회피 (() => { const actions = { birdFlies(key){ if (key) { document.querySelector('[data-index="2"] .bird').style.transform = `translateX(${window.innerWidth}px)`; }else{ document.querySelector('[data-index="2"] .bird').style.transform = `translateX(-100%)`; } }, birdFlies2(key) { if (key) { document.querySelector('[data-index="5"] .bird').style.transform = `translate(${window.innerWidth}px, ${-window.innerHeight * 0.7}px)`; }else{ document.querySelector('[data-index="5"] .bird').style.transform = `translateX(-100%)`; } } }; const stepElems = document.querySelectorAll('.step'); const graphicElems = document.querySelectorAll('.graphic-item'); let currentItem = graphicElems[0]; let ioIndex; const io = new IntersectionObserver((entries,observer)=>{ ioIndex = entries[0].target.dataset.index *1 ; console.log(ioIndex); }) for (let i = 0; i < stepElems.length; i++) { io.observe(stepElems[i]); stepElems[i].dataset.index = i; graphicElems[i].dataset.index = i; } function activate(action) { currentItem.classList.add('visible'); if (action) { actions[action](true); } } function inactivate(action) { currentItem.classList.remove('visible'); if (action) { actions[action](false); } } window.addEventListener('scroll', () => { let step; let boundingRect; for (let i=ioIndex-1; i<ioIndex+2; i++){ step = stepElems[i]; if(!step) continue; boundingRect = step.getBoundingClientRect(); if(boundingRect.top > window.innerHeight* 0.1 && boundingRect.top < window.innerHeight*0.8){ inactivate(currentItem.dataset.action); currentItem = graphicElems[step.dataset.index]; activate(currentItem.dataset.action); } } }); window.addEventListener('load',()=>{ setTimeout (() => scrollTo(0,0),100); }) activate(); })();
amilyy70096
2023-02-25T09:16:24.106Z
댓글 3
좋아요 3
조회수 737
미해결
한 조각씩 배우는 SwiftUI - 입문편
저는 강사님의 asset 화면과 다른데 이럴땐 어떻게 해야하죠..? 구글에 찾아봐도 이러한 케이스는 나오지 않네요ㅠㅠ
김지현
2023-02-25T09:08:19.021Z
댓글 1
좋아요 0
조회수 582
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
오류가 뜨는데 강의 코드랑은 똑같이 쳤고, 오류 코드 찾아봐도 해결이 안되서 질문합니다! 오류 코드: 2023-02-25 17:11:35.867 INFO 18568 --- [ Test worker] o.s.t.c.transaction.TransactionContext : Began transaction (1) for test context [DefaultTestContext@4d4d48a6 testClass = MemberRepositoryTest, testInstance = jpabook.jpashop.MemberRepositoryTest@637c8632, testMethod = testMember@MemberRepositoryTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@315df4bb testClass = MemberRepositoryTest, locations = '{}', classes = '{class jpabook.jpashop.JpashopApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@726e5805, org.springframework.boot.test.autoconfigure.properties .PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@5b07730f, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@f73dcd6, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@30d4b288, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@4a3329b9, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@407a7f2a], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true, 'org.springframework.test.context.event.ApplicationEventsTestExecutionListener.recordApplicationEvents' -> false]]; transaction manager [org.springframework.orm.jpa.JpaTransactionManager@3adeca1f]; rollback [false] 2023-02-25 17:11:36.439 DEBUG 18568 --- [ Test worker] org.hibernate.SQL : call next value for hibernate_sequence findMember == member : true 2023-02-25 17:11:36.739 DEBUG 18568 --- [ Test worker] org.hibernate.SQL : insert into member (username, id) values (?, ?) 2023-02-25 17:11:36.744 WARN 18568 --- [ Test worker] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 42122, SQLState: 42S22 2023-02-25 17:11:36.744 ERROR 18568 --- [ Test worker] o.h.engine.jdbc.spi.SqlExceptionHelper : Column "USERNAME" not found; SQL statement: insert into member (username, id) values (?, ?) [42122-214] 2023-02-25 17:11:36.823 WARN 18568 --- [ Test worker] o.s.test.context.TestContextManager : Caught exception while invoking 'afterTestMethod' callback on TestExecutionListener [org.springframework.test.context.transaction.TransactionalTestExecutionListener@54a3ab8f] for test method [public void jpabook.jpashop.MemberRepositoryTest.testMember() throws java.lang.Exception] and test instance [jpabook.jpashop.MemberRepositoryTest@637c8632] org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [insert into member (username, id) values (?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException( HibernateJpaDialect.java:259 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible( HibernateJpaDialect.java:233 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.JpaTransactionManager.doCommit( JpaTransactionManager.java:566 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.transaction.support .AbstractPlatformTransactionManager.processCommit( AbstractPlatformTransactionManager.java:743 ) ~[spring-tx-5.3.25.jar:5.3.25] at org.springframework.transaction.support .AbstractPlatformTransactionManager.commit( AbstractPlatformTransactionManager.java:711 ) ~[spring-tx-5.3.25.jar:5.3.25] at org.springframework.test.context.transaction.TransactionContext.endTransaction( TransactionContext.java:131 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod( TransactionalTestExecutionListener.java:255 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.TestContextManager.afterTestMethod( TestContextManager.java:445 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit.jupiter.SpringExtension.afterEach( SpringExtension.java:206 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAfterEachCallbacks$12( TestMethodTestDescriptor.java:257 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAllAfterMethodsOrCallbacks$13( TestMethodTestDescriptor.java:273 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAllAfterMethodsOrCallbacks$14( TestMethodTestDescriptor.java:273 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeAllAfterMethodsOrCallbacks( TestMethodTestDescriptor.java:272 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeAfterEachCallbacks( TestMethodTestDescriptor.java:256 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:141 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:66 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:151 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:35 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.HierarchicalTestEngine.execute( HierarchicalTestEngine.java:54 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:107 ) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) ~[na:na] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:114 ) ~[na:na] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) ~[na:na] at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) ~[na:na] at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute( SessionPerRequestLauncher.java:53 ) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses( JUnitPlatformTestClassProcessor.java:99 ) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000( JUnitPlatformTestClassProcessor.java:79 ) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop( JUnitPlatformTestClassProcessor.java:75 ) ~[na:na] at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop( SuiteTestClassProcessor.java:62 ) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) ~[na:na] at java.base/java.lang.reflect.Method.invoke( Method.java:566 ) ~[na:na] at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:36 ) ~[na:na] at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:24 ) ~[na:na] at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch( ContextClassLoaderDispatch.java:33 ) ~[na:na] at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke( ProxyDispatchAdapter.java:94 ) ~[na:na] at com.sun.proxy.$Proxy2.stop(Unknown Source) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run( TestWorker.java:193 ) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName( TestWorker.java:129 ) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:100 ) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:60 ) ~[na:na] at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute( ActionExecutionWorker.java:56 ) ~[na:na] at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:113 ) ~[na:na] at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:65 ) ~[na:na] at worker.org.gradle.process.internal.worker.GradleWorkerMain.run ( GradleWorkerMain.java:69 ) ~[gradle-worker.jar:na] at worker.org .gradle.process.internal.worker.GradleWorkerMain.main( GradleWorkerMain.java:74 ) ~[gradle-worker.jar:na] Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert( SQLExceptionTypeDelegate.java:63 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert( StandardSQLExceptionConverter.java:37 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert( SqlExceptionHelper.java:113 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:186 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement( StatementPreparerImpl.java:81 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.buildBatchStatement( AbstractBatchImpl.java:142 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.getBatchStatement( AbstractBatchImpl.java:131 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.persister.entity.AbstractEntityPersister.insert( AbstractEntityPersister.java:3356 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.persister.entity.AbstractEntityPersister.insert( AbstractEntityPersister.java:3937 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.action.internal.EntityInsertAction.execute( EntityInsertAction.java:107 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.spi.ActionQueue.executeActions( ActionQueue.java:604 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.spi.ActionQueue.lambda$executeActions$1( ActionQueue.java:478 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at java.base/java.util.LinkedHashMap.forEach( LinkedHashMap.java:684 ) ~[na:na] at org.hibernate.engine.spi.ActionQueue.executeActions( ActionQueue.java:475 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions( AbstractFlushingEventListener.java:344 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.event.internal.DefaultFlushEventListener.onFlush( DefaultFlushEventListener.java:40 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener( EventListenerGroupImpl.java:107 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.internal.SessionImpl.doFlush( SessionImpl.java:1407 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.internal.SessionImpl.managedFlush( SessionImpl.java:489 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion( SessionImpl.java:3303 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.internal.SessionImpl.beforeTransactionCompletion( SessionImpl.java:2438 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion( JdbcCoordinatorImpl.java:449 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback( JdbcResourceLocalTransactionCoordinatorImpl.java:183 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$300( JdbcResourceLocalTransactionCoordinatorImpl.java:40 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit( JdbcResourceLocalTransactionCoordinatorImpl.java:281 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.transaction.internal.TransactionImpl.commit( TransactionImpl.java:101 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.springframework.orm.jpa.JpaTransactionManager.doCommit( JpaTransactionManager.java:562 ) ~[spring-orm-5.3.25.jar:5.3.25] ... 77 common frames omitted Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "USERNAME" not found; SQL statement: insert into member (username, id) values (?, ?) [42122-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:502 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.readException( SessionRemote.java:637 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.done( SessionRemote.java:606 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.command.CommandRemote.prepare( CommandRemote.java:78 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.command.CommandRemote.<init>( CommandRemote.java:50 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.prepareCommand( SessionRemote.java:480 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.jdbc.JdbcConnection.prepareCommand( JdbcConnection.java:1116 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.jdbc.JdbcPreparedStatement.<init>( JdbcPreparedStatement.java:92 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.jdbc.JdbcConnection.prepareStatement( JdbcConnection.java:288 ) ~[h2-2.1.214.jar:2.1.214] at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement( ProxyConnection.java:337 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement( HikariProxyConnection.java ) ~[HikariCP-4.0.3.jar:na] at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare( StatementPreparerImpl.java:90 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:176 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] ... 100 common frames omitted could not prepare statement; SQL [insert into member (username, id) values (?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [insert into member (username, id) values (?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException( HibernateJpaDialect.java:259 ) at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible( HibernateJpaDialect.java:233 ) at app//org.springframework.orm.jpa.JpaTransactionManager.doCommit( JpaTransactionManager.java:566 ) at app//org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit( AbstractPlatformTransactionManager.java:743 ) at app//org.springframework.transaction.support.AbstractPlatformTransactionManager.commit( AbstractPlatformTransactionManager.java:711 ) at app//org.springframework.test.context.transaction.TransactionContext.endTransaction( TransactionContext.java:131 ) at app//org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod( TransactionalTestExecutionListener.java:255 ) at app//org.springframework.test.context.TestContextManager.afterTestMethod( TestContextManager.java:445 ) at app//org.springframework.test.context.junit.jupiter.SpringExtension.afterEach( SpringExtension.java:206 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAfterEachCallbacks$12( TestMethodTestDescriptor.java:257 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAllAfterMethodsOrCallbacks$13( TestMethodTestDescriptor.java:273 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAllAfterMethodsOrCallbacks$14( TestMethodTestDescriptor.java:273 ) at java.base@11.0.16.1/java.util.ArrayList.forEach( ArrayList.java:1541 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeAllAfterMethodsOrCallbacks( TestMethodTestDescriptor.java:272 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeAfterEachCallbacks( TestMethodTestDescriptor.java:256 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:141 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:66 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:151 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base@11.0.16.1/java.util.ArrayList.forEach( ArrayList.java:1541 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base@11.0.16.1/java.util.ArrayList.forEach( ArrayList.java:1541 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:35 ) at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute( HierarchicalTestEngine.java:54 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:107 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:114 ) at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute( SessionPerRequestLauncher.java:53 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses( JUnitPlatformTestClassProcessor.java:99 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000( JUnitPlatformTestClassProcessor.java:79 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop( JUnitPlatformTestClassProcessor.java:75 ) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop( SuiteTestClassProcessor.java:62 ) at java.base@11.0.16.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@11.0.16.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) at java.base@11.0.16.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base@11.0.16.1/java.lang.reflect.Method.invoke( Method.java:566 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:36 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:24 ) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch( ContextClassLoaderDispatch.java:33 ) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke( ProxyDispatchAdapter.java:94 ) at com.sun.proxy.$Proxy2.stop(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run( TestWorker.java:193 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName( TestWorker.java:129 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:100 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:60 ) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute( ActionExecutionWorker.java:56 ) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:113 ) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:65 ) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run( GradleWorkerMain.java:69 ) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main( GradleWorkerMain.java:74 ) Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement at app//org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert( SQLExceptionTypeDelegate.java:63 ) at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert( StandardSQLExceptionConverter.java:37 ) at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert( SqlExceptionHelper.java:113 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:186 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement( StatementPreparerImpl.java:81 ) at app//org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.buildBatchStatement( AbstractBatchImpl.java:142 ) at app//org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.getBatchStatement( AbstractBatchImpl.java:131 ) at app//org.hibernate.persister.entity.AbstractEntityPersister.insert( AbstractEntityPersister.java:3356 ) at app//org.hibernate.persister.entity.AbstractEntityPersister.insert( AbstractEntityPersister.java:3937 ) at app//org.hibernate.action.internal.EntityInsertAction.execute( EntityInsertAction.java:107 ) at app//org.hibernate.engine.spi.ActionQueue.executeActions( ActionQueue.java:604 ) at app//org.hibernate.engine.spi.ActionQueue.lambda$executeActions$1( ActionQueue.java:478 ) at java.base@11.0.16.1/java.util.LinkedHashMap.forEach( LinkedHashMap.java:684 ) at app//org.hibernate.engine.spi.ActionQueue.executeActions( ActionQueue.java:475 ) at app//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions( AbstractFlushingEventListener.java:344 ) at app//org.hibernate.event.internal.DefaultFlushEventListener.onFlush( DefaultFlushEventListener.java:40 ) at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener( EventListenerGroupImpl.java:107 ) at app//org.hibernate.internal.SessionImpl.doFlush( SessionImpl.java:1407 ) at app//org.hibernate.internal.SessionImpl.managedFlush( SessionImpl.java:489 ) at app//org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion( SessionImpl.java:3303 ) at app//org.hibernate.internal.SessionImpl.beforeTransactionCompletion( SessionImpl.java:2438 ) at app//org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion( JdbcCoordinatorImpl.java:449 ) at app//org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback( JdbcResourceLocalTransactionCoordinatorImpl.java:183 ) at app//org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$300( JdbcResourceLocalTransactionCoordinatorImpl.java:40 ) at app//org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit( JdbcResourceLocalTransactionCoordinatorImpl.java:281 ) at app//org.hibernate.engine.transaction.internal.TransactionImpl.commit( TransactionImpl.java:101 ) at app//org.springframework.orm.jpa.JpaTransactionManager.doCommit( JpaTransactionManager.java:562 ) ... 77 more Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "USERNAME" not found; SQL statement: insert into member (username, id) values (?, ?) [42122-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:502 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:477 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.message.DbException.get( DbException.java:199 ) at org.h2.table.Table.getColumn( Table.java:749 ) at org.h2.command.Parser.parseColumn( Parser.java:1256 ) at org.h2.command.Parser.parseColumnList( Parser.java:1241 ) at org.h2.command.Parser.parseInsert( Parser.java:1641 ) at org.h2.command.Parser.parsePrepared( Parser.java:814 ) at org.h2.command.Parser.parse( Parser.java:689 ) at org.h2.command.Parser.parse( Parser.java:661 ) at org.h2.command.Parser.prepareCommand( Parser.java:569 ) at org.h2.engine.SessionLocal.prepareLocal( SessionLocal.java:631 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:288 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.base/java.lang.Thread.run( Thread.java:834 ) at app//org.h2.message.DbException.getJdbcSQLException( DbException.java:502 ) at app//org.h2.engine.SessionRemote.readException( SessionRemote.java:637 ) at app//org.h2.engine.SessionRemote.done( SessionRemote.java:606 ) at app//org.h2.command.CommandRemote.prepare( CommandRemote.java:78 ) at app//org.h2.command.CommandRemote.<init>( CommandRemote.java:50 ) at app//org.h2.engine.SessionRemote.prepareCommand( SessionRemote.java:480 ) at app//org.h2.jdbc.JdbcConnection.prepareCommand( JdbcConnection.java:1116 ) at app//org.h2.jdbc.JdbcPreparedStatement.<init>( JdbcPreparedStatement.java:92 ) at app//org.h2.jdbc.JdbcConnection.prepareStatement( JdbcConnection.java:288 ) at app//com.zaxxer.hikari.pool.ProxyConnection.prepareStatement( ProxyConnection.java:337 ) at app//com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement( HikariProxyConnection.java ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare( StatementPreparerImpl.java:90 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:176 ) ... 100 more package jpabook.jpashop; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.transaction.annotation.Transactional; @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() throws Exception{ //given Member member= new Member(); member.setUsername("memberA"); Long savedId = memberRepository.save(member); //when Member findMember = memberRepository.find(savedId); //then Assertions.assertEquals(findMember.getId(), member.getId()); Assertions.assertEquals(findMember.getUsername(), member.getUsername()); Assertions.assertEquals(findMember, member); System.out.println("findMember == member : " + (findMember == member)); } } package jpabook.jpashop; //Ropository: entity 찾아줌 import org.springframework.stereotype.Repository; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Repository public class MemberRepository { @PersistenceContext EntityManager em; public Long save(Member member){ em.persist(member); return member.getId(); } public Member find(Long id) { return em.find(Member.class, id); } } package jpabook.jpashop; import lombok.Getter; import lombok.Setter; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Getter @Setter @Entity public class Member { @Id @GeneratedValue private Long id; private String username; } spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_sql: true logging.level: org.hibernate.SQL: debug 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
spring-boot 웹앱 웹앱 JPA java jpa spring
heidi
2023-02-25T08:15:29.608Z
댓글 1
좋아요 0
조회수 847