묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Jdbc 적용후 member 등록을 누르면 에러페이지가 나옵니다.
강의 섹션6 스프링DB 접근 기술에서순수 JDBC 강의 편을 듣고 따라하던중 spring실행해서 멤버를 등록한 후 갱신되는지를 확인하는 장면을 따라했습니다.그런데 데이터베이스에 입력한 멤버가 삽입은 되는데 화면과 console 에서 에러가 나옵니다.jdbcMemberRepository로 변경전에는 모두 이상없이 실행되었습니다. 아래는 에러페이지입니다. 이클립스로 실행했습니다.아래는 console로그에서 에러부분 입니다.java.lang.NumberFormatException: Character A is neither a decimal digit number, decimal point, nor "e" notation exponential mark.threw exception [Request processing failed: java.lang.IllegalStateException: java.sql.SQLException: 부적합한 변환이 요청됨] with root cause java.lang.NumberFormatException: Character A is neither a decimal digit number, decimal point, nor "e" notation exponential mark. at java.base/java.math.BigDecimal.<init>(BigDecimal.java:586) ~[na:na] at java.base/java.math.BigDecimal.<init>(BigDecimal.java:471) ~[na:na] at java.base/java.math.BigDecimal.<init>(BigDecimal.java:900) ~[na:na] at oracle.jdbc.driver.T4CVarcharAccessor.StringToNUMBER(T4CVarcharAccessor.java:782) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0] at oracle.jdbc.driver.T4CVarcharAccessor.getNUMBER(T4CVarcharAccessor.java:257) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0] at oracle.jdbc.driver.T4CVarcharAccessor.getLong(T4CVarcharAccessor.java:555) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0] at oracle.jdbc.driver.GeneratedStatement.getLong(GeneratedStatement.java:208) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0] at oracle.jdbc.driver.GeneratedScrollableResultSet.getLong(GeneratedScrollableResultSet.java:261) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0] at com.zaxxer.hikari.pool.HikariProxyResultSet.getLong(HikariProxyResultSet.java) ~[HikariCP-5.0.1.jar:na] at com.example.hello.repository.JdbcMemberRepository.save(JdbcMemberRepository.java:43) ~[main/:na] at com.example.hello.service.MemberService.join(MemberService.java:29) ~[main/:na] at com.example.hello.controller.MemberController.create(MemberController.java:34) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[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:568) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:259) ~[spring-web-6.1.4.jar:6.1.4] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:192) ~[spring-web-6.1.4.jar:6.1.4] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.4.jar:6.1.4] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:920) ~[spring-webmvc-6.1.4.jar:6.1.4] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:830) ~[spring-webmvc-6.1.4.jar:6.1.4] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.han~$ConnectionHandler.process(AbstractProtocol.java:896) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.19.jar:10.1.19] at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] 제가 데이터베이스를 오라클로 설치했는데 오라클에서 테이블 생성 sql 은 이렇습니다. 데이터는 보면 id에 모두 숫자만 들어가 있습니다.create table member( id number generated by default as identity, name varchar2(255), primary key(id) ); 혹시나해서 설정파일도 올려봅니다아래는 bundle.gradle입니다.plugins { id 'java' id 'org.springframework.boot' version '3.2.3' id 'io.spring.dependency-management' version '1.1.4' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'com.oracle.ojdbc:ojdbc8:19.3.0.0' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('bootBuildImage') { builder = 'paketobuildpacks/builder-jammy-base:latest' } tasks.named('test') { useJUnitPlatform() } 아래는 application.properies 입니다.server.port = 8090 spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp server.servlet.encoding.charset=UTF-8 server.servlet.encoding.enabled=true server.servlet.encoding.force=true spring.datasource.url=jdbc:oracle:thin:@localhost:1521/xe spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver spring.datasource.username=test_1 spring.datasource.password=admin123
-
해결됨장래쌤과 함께하는 쉽고 재미있는 SQL 이야기
mysql 설치 오류로 학습 불가
강사님 안녕하세요 강의 신청을 했는데, 2일동안 아무리 sql 환경 셋팅을 해보려했는데 제 pc에서는 서버 연결이 안되서 죄송하지만 혹시 환불 해주실 수 있을까요? 자료는 모두 삭제 완료 하였습니다ㅜㅜ 다른 DB 강의를 들어야 할 거 같습니다. 현재 환불 버튼이 없어져서 인프런에 요청 해주시면 정말 감사하겠습니다 ㅜㅜㅜㅜ
-
미해결입문자를 위한, HTML&CSS 웹 개발 입문
고급 선택자 2탄에서 질문이 있습니다.
안녕하세요!고급 선택자 2탄 영상의 대략 8분 경에서 [data-tooltip]이 relative가 되서 absolute인 [data-tooltip]:hover::after가 저기에 붙었다고 하셨는데, absolute는 부모 요소 중에 static이 아닌 요소에 붙지 않나요? 그러면 :hover::after처럼 의사요소는 붙은 요소의 자손으로 들어가는 걸까요?[data-toolip]과 [data-toolip]:hover::after이 동일 선상에 위치(형제 요소)처럼 보이는데 어떻게 그럴 수 있는지 궁금합니다!
-
미해결비전공 기획자 및 관리자를 위한 IT 필수 지식
강의 자료 요청 건
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 최근 저도 비전공자 pm으로서 강의 너무 잘 듣고 있는데요. zhddl1229@naver.com 으로 저도 강의 자료 받아볼 수 있을까요? 감사합니다.
-
해결됨빠르게 git - 핵심만 골라 배우는 Git/Github
블로그
강의 내용과 사진을 좀 정리하면서 블로그에 쓰고 싶은데출처를 남기고 사용해도 될까요 ? :)
-
해결됨홍정모의 따라하며 배우는 C언어
8분 8초경 질문
8분 8초에서feof() 함수는 EOF를 만났는가 물어봐요라고 하시고 8분 16초에서근데 지금 깔끔하게 저장된 개수만큼 왔기 때문에 EOF를 만나지 않은 상태에요라고 하시는데 EOF를 만났는가 물어본다는 말에서 어떤게 EOF를 만났는가 물어본다는 것인지저장된 개수 만큼 왔기 때문에에서 뭐가 저장된 개수 만큼 왔다는 것인지 잘 모르겠습니다. 지금까지의 강의 내용을 이해해보면전자와 후자는 같은 걸 말하는 것 같고뉘앙스만 보면 파일을 얼마나 읽어들였는지에 대한 진행도? 같은 느낌이 드는데정확하게 이게 뭔지 잘 모르겠습니다 항상 좋은 답변 정말 감사합니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
exe 배포 파일 코드 작동 안함
안녕하십니까 항상 도움 많이 받고 있습니다.강의를 들으면서 아래와 같이 코드를 작성하였고(정상 작동함)배포 파일을 만들어서 실행하여 보니, 특성 코드가 작동이 안됩니다. import tkinter as tkfrom tkinter import filedialogimport win32com.client as win32from pyhwpx import Hwphwp = Hwp()excel = win32.gencache.EnsureDispatch("Excel.Application")excel.Visible = False# 한/글 파일 불러오기def open_hwp_file(): file_path = filedialog.askopenfilename(initialdir="C:/", title="Select HWP File", filetypes=(("HWP files", "*.hwp"), ("all files", "*.*"))) if file_path: hwp.Open(file_path)# 엑셀 파일 불러오기 def open_excel_file(): file_path = filedialog.askopenfilename(initialdir="C:/", title="Select Excel File", filetypes=(("Excel files", "*.xlsx;*.xlsm"), ("all files", "*.*"))) if file_path: wb = excel.Workbooks.Open(file_path)def process_excel(): wb = excel.ActiveWorkbook # 불러온 엑셀파일을 wb로 지정 ws = wb.Worksheets(3) # wb의 3번째 시트를 ws로 지정 xlsx_values = [list(i) for i in ws.UsedRange()] for idx, val in enumerate(xlsx_values): if idx: xlsx_values[idx][0] = xlsx_values[idx][0].strftime("%Y. %#m. %#d.") for idx, val in enumerate(xlsx_values[1:]): # hwp.get_field_list()로 삽입된 필드명 확인 후, 상황에 맞게 아래 코드의 필드명 수정 hwp.PutFieldText(f"보도일자{{{{{idx}}}}}\x02기사1{{{{{idx}}}}}\x02기사2{{{{{idx}}}}}\x02기사3{{{{{idx}}}}}\x02기사4{{{{{idx}}}}}\x02기사5{{{{{idx}}}}}\x02기사6{{{{{idx}}}}}\x02기사7{{{{{idx}}}}}\x02기사8{{{{{idx}}}}}\x02기사9{{{{{idx}}}}}\x02기사10{{{{{idx}}}}}\x02기사11{{{{{idx}}}}}\x02기사12{{{{{idx}}}}}\x02기사13{{{{{idx}}}}}\x02기사14{{{{{idx}}}}}\x02기사15{{{{{idx}}}}}\x02기사16{{{{{idx}}}}}\x02기사17{{{{{idx}}}}}\x02기사18{{{{{idx}}}}}\x02기사19{{{{{idx}}}}}\x02기사20{{{{{idx}}}}}\x02기사21{{{{{idx}}}}}\x02기사22{{{{{idx}}}}}\x02기사23{{{{{idx}}}}}\x02기사24{{{{{idx}}}}}\x02기사25{{{{{idx}}}}}\x02기사26{{{{{idx}}}}}\x02기사27{{{{{idx}}}}}\x02기사28{{{{{idx}}}}}\x02기사29{{{{{idx}}}}}\x02기사30{{{{{idx}}}}}", "\x02".join(val))def save_as(): hwp.save_as("보도자료 배포용(취합본).hwp") root = tk.Tk()root.title("보도자료 취합(배포용)")button_style = {"font": ("Arial", 15), "padx": 20, "pady": 10}open_hwp_button = tk.Button(root, text="한글) 파일 열기", command=open_hwp_file, **button_style)open_hwp_button.pack()open_excel_button = tk.Button(root, text="엑셀) 파일 열기", command=open_excel_file, **button_style)open_excel_button.pack()process_excel_button = tk.Button(root, text=" 취합 하기 ", command=process_excel, fg="blue", font=("Arial", 15, "bold"), padx=20, pady=10)process_excel_button.pack()process_excel_button = tk.Button(root, text="다른 이름 저장", command=save_as, ** button_style)process_excel_button.pack()root.mainloop() 위 코드에서 " 취합하기" 버튼을 누르면 엑셀에 있는 값들이 한글 문서 필드로 입력이 안됩니다. (아무 변화 없음)* 파일 열기나 다른 이름으로 저장하는 버튼을 누르면 정상 작동합니다. 취합하는 것만 안되는 이유가 뭘까요? 항상 친절히 답변 남겨 주셔서 너무 감사드립니다.
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
Layer 2 네트워크 개요 및 특성 강의에서 스위치 맥 주소 학습 관련 문의
강의 중 패킷트레이서 실습 내용에서, 각 장치에 ip를 할당하고 나서야 스위치 맥 테이블에 정보가 노출되는 것을 볼 수 있었는데요.스위치는 MAC 주소를 기반으로 프레임을 전달하기 때문에 IP 주소 할당 여부와 관계없이 연결된 장치의 MAC 주소를 학습할 수 있어야 하는 것이 아닌가요?! ip를 할당하기 전에는 왜 맥 테이블이 비어있었던 건지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
실무에서 타임리프에 관해서
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]백엔드 개발자가 타임리프를 공부하는 이유가 혼자서 뭘 만들어볼때 빠르게 웹페이지를 확인해보면서 개발하려고 하는 거고 실무에서는 보통 프론트엔트쪽에서 react같은걸로 서비스를 만드는거 맞아요? 백엔드개발자와 프론트엔드개발자의 역할에 대해 약간 헷갈려서 여쭤봅니다.
-
해결됨CPPG 자격증 취득 과정 (2025년)
교재 제공 문의 드립니다.
안녕하세요 기술사님. 인프런에서 강의를 수강하는 경우 별도의 프린트물 교재는 제공(배송)되지 않는 것인지 궁금합니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
MyHandlerExceptionResolver 등록 관련 질문
MyHandlerExceptionResolver 클레스를 등록하기 위해서 WebConfig 클래스에서 해당 메서드를 오버라이딩 해주었는데 그냥 MyHandlerExceptionResolver 에 @Component 애노테이션을 사용해서 스프링 빈으로 등록 시켜줘면 안되는건가요?
-
해결됨Practical Testing: 실용적인 테스트 가이드
반환 타입이 void인 메서드에 대한 질문이 있습니다.
안녕하세요 강의 잘 듣고 있습니다! 위 사진처럼 Service 레이어에서 반환 타입이 void인 메서드의 경우, assertJ로 검증하는 방법이 있나요? 해당 메서드에서 create 작업을 수행하지만 굳이 생성된 객체를 응답할 이유가 없어서요!예전에 임시로 반환 타입을 바꿔서 생성된 객체를 검증하는 식으로 테스트를 작성하면 된다는 얘기를 들었는데, 결국 void로 되돌리게 되면 테스트가 실패하니까 테스트를 주석 처리할 수 밖에 없었거든요...이렇게 하게 되면 테스트 코드를 작성하는 의미도 좀 퇴색되는 것 같아서 고민이 됩니다!일단은 급한대로 then은 비워두었습니다만 이렇게 하는 게 좋은 방법일까요?
-
해결됨[코드팩토리] [초급] 8시간만에 끝내는 코드팩토리의 Typescript 완전정복 풀코스
object intersection에서 유니언으로 타입 질문
type CompanyOrPet = PersonType | (CompanyType|PetType); type CompanyOrPet2 = PersonType | CompanyType | PetType; const companyOrPet: CompanyOrPet2 = { // PersonType name: 'DD', age: 27, // CompanyType company:'GK', companyRegistrationNumber:'asfasfasfasf', //PetType petName:'Ori', petAge:4, }강의에서는 CompanyOrPet 타입으로 PersonType, CompanyType, PetType을 포함할 수 있는 타입으로 만들어서 객체를 만들셔서 어느 하나의 타입만 충족되더라고 에러없이 객체가 생성되도록 하셨는데 CompanyOrPet과 CompanyOrPet2의 차이점이 있나요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
lt.rt가 잘 이해가 가지 않습니다.
tree.root.rt = new Node(3);tree객체에서 root를 참조하고, root 객체의 rt 변수의 값을 3으로 설정하는 것은 이해했습니다.그런데, tree.root.rt.lt는 rt변수에서 lt를 접근하는 건가요..??변수에서 변수를 참조하는 것이 잘 이해가 되지 않습니다.감사합니다.
-
미해결Flutter로 SNS 앱 만들기
인증안한 이메일로 로그인시 다른 에러 메세지가 출력이 됩니다.
가입 후 처음 로그인을 시도할 때 나오는 에러 메세지인데요. 두번째 시도를 하면 예상했던 메세지가 나옵니다. 수정이 가능한지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
파일 업로드 강의 수강 도중 오류가 발생합니다.
안녕하세요 파일 업로드 강의 중 '서블릿과 파일 업로드1'강의 첫번째 실행에서 파일 제출을 하면 Error parsing HTTP request header 오류가 뜹니다. 제가 뭔가 놓친 부분이 있는걸까요?
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
6강. assertThat import 문제
태현님 안녕하세요.assertThat이 정상적으로 import가 되질 않아 문의 드립니다. 태현님 6강 강의도중 보면 org.assertj.core.api를 import하는걸로 보이는데요. dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' implementation 'org.junit.jupiter:junit-jupiter:5.8.1' runtimeOnly 'com.h2database:h2' testImplementation 'org.springframework.boot:spring-boot-starter-test' }혹시 import에 문제가 있나 싶어https://mvnrepository.com/artifact/org.assertj/assertj-core/3.6.1이걸 참고해 dependencies를 추가했는데도 안되더라고요;; 일단 스크린샷도 첨부하긴 했습니다..제가 뭘 잘못한 걸까요..
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Notification 패턴과 BindingResult 유사점
안녕하세요. BindingResult에 관해서 질문드리려고 합니다.<실전 자바 소프트웨어 개발> 라울-게이브리얼 우르마, 리처드 워버턴 책을 보던 중에 Notification 패턴이란 걸 알게 되었습니다. 이게 마틴 파울러가 정립한 개념이라고 하는데 BindingResult가 동작하는 방식과 똑같더라고요. 혹시 BindingResult가 Notification 패턴을 적용한 사례인가요?제가 제 블로그에 이러한 가정에서 글을 썼는데요. 질문 답변에 따라 글을 지울지 말지 정해야 합니다. 헤헤https://griotold.tistory.com/3
-
해결됨손에 익는 Next.js - 공식 문서 훑어보기
VSCode 확장프로그램은 어떤 것을 사용하셨나요?
안녕하세요 강의 잘 들었습니다. 혹시 VSCode에 어떤 확장프로그램들을 사용하셨는지궁금합니다.강의 듣다보면, 자동완성 되는 부분들이 있는데,제 환경에서는 그런 VSCode UI가 안뜨더라구요. 감사합니다.
-
미해결
스크립트 오류 수정 관련
스크립트 오류를 수정하면서 강의 듣고 있는데요.강의 자체를 빠르게 듣다보니, 자막이 안맞는 경우가 많아서, 수정하고 있는데..반영되는 기준? 아래 내용 질문을 좀 드립니다.한글 => 영어로 번역(eg. 램 => RAM , 메모리 => Memory 등으로 변경해도 반영이 되나요?)왜냐면, AI 번역시 한글과 영어가 혼용되어 나오는데 강의에 스크립트 일관성이 떨어지는 것 같아서요. 마침표=> 문장이 끊는 부분이 어색해서 그런데, 컴마를 찍어도 반영 되는지요. 강의하시는 분들의 감탄사 혹은 반복되는 말은 삭제해도 되나요? 혹은 줄바꿈도요.=> 예를들어 "자, 애플리케이션이 뭘 하냐면, 애플리케이션이 하는 일은 ... " , "이게 뭐냐면 , 당장엔 생각이 안나는데...." 등... => 이런 문장은 애플리케이션이 하는 일은, 만 필요한것 같은데 강의하다 반복되는 표현이나 실제 강의에 불필요한 멘트들.정말 강의에 필요한 Script 형식으로 강의를 보고 싶은데, ㅠㅠ AI 자동형이 아직은 완성형이 아닌지라, 봐도 알아는 먹겠는데 좀 불편해서요. 적어도 제가 본 강의만큼은 깔끔하게 바꾸고 싶어서 확인을 부탁드립니다. 추가로, 혹시 Script를 다운받을 순 없을까요? 다운 받고나서 자체적으로 전체 변경을 해주실수 있으면 제가 라인by라인으로 변경을 안해도 될 것 같은데 혹시 불가능할까요?