묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버조회기능 구현 강의에서 에러가 발생했습니다ReadComponent.js 파일을 만들고 ReadPage의 리턴 내용에 ReadComponent의 tno 값을 추가한 후에 npm start를 실행했는데 아래와 같은 에러가 발생했습니다. [eslint] src\components\menus\todo\ReadComponent.jsLine 13:29: 'useState' is not defined no-undefLine 16:9: 'getOne' is not defined no-undefSearch for the keywords to learn more about each error. ReadComponent.js의 useState와 getOne 로직 부분이 잘못 된 거 같아서 강의 영상을 다시 봤는데 틀린 부분이 없어 보여 어떤 게 문젠지 질문을 드리고 싶습니다.참고용으로 ReadComponent.js의 내용을 추가해놓겠습니다. import React, { useEffect } from 'react'; const initState = { tno:0, title:'', writer:'', dueDate: '', complete: false } function ReadComponent({tno}) { const [todo, setTodo] = useState(initState) useEffect(() => { getOne(tno).then(data => { console.log(data) setTodo(data) }) }, [tno]); return ( <div> </div> ); } export default ReadComponent;덧붙여서 툴은 vscode를 쓰고 있습니다. 잘 부탁드리겠습니다. 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버tailwind CSS 적용에서 알수없는 오류added 153 packages, and audited 154 packages in 2s 32 packages are looking for funding run `npm fund` for details found 0 vulnerabilities leeman01@idong-geon-ui-noteubug mall % npm list tailwindcss mall@0.0.0 /Users/leeman01/frontend2/mall └── (empty) leeman01@idong-geon-ui-noteubug mall % npm cache clean --force npm warn using --force Recommended protections disabled. leeman01@idong-geon-ui-noteubug mall % npm install -D tailwindcss postcss autoprefixer added 2 packages, and audited 156 packages in 772ms 32 packages are looking for funding run `npm fund` for details found 0 vulnerabilities leeman01@idong-geon-ui-noteubug mall % npm run dev > mall@0.0.0 dev > vite VITE v6.2.2 ready in 392 ms ➜ Local: http://localhost:5173/ ➜ Network: use --host to expose ➜ press h + enter to show help ^C leeman01@idong-geon-ui-noteubug mall % npm list tailwindcss mall@0.0.0 /Users/leeman01/frontend2/mall └── tailwindcss@4.0.14 leeman01@idong-geon-ui-noteubug mall % npx tailwindcss init -p npm error could not determine executable to run npm error A complete log of this run can be found in: /Users/leeman01/.npm/_logs/2025-03-18T07_59_35_501Z-debug-0.log leeman01@idong-geon-ui-noteubug mall % 이런 알수 없는 오류가 뜨는데 원인이 뭔지 궁금합니다 
- 
      
        
    해결됨Spring Boot를 활용하여 채팅 플랫폼 만들어보기ChatListResponse에 @Valid을 붙인 이유안녕하세요! 강의 잘듣고 있습니다.다름이 아니라ChatControllerV1에@GetMapping("/chat-list") public ChatListResponse chatList( @RequestParam("name") @Valid String to, @RequestParam("from") @Valid String from ) { return chatServiceV1.chatList(from, to); }@Valid를 붙이셨는데 제가 알기론 @Valid 가 붙는 쪽은 컨트롤러단에서 DTO또는 Entity 매개변수 앞에 붙어서 유효성 검사를 하는걸로 알고있습니다!제 지식이 맞다면 왜 String 에 앞단에 넣은 이유가 궁금합니다..!아니면 이것도 추후 DTO 또는 request, response 객체들이 들어갈 수 있기 때문에 들어가나요? 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버프로젝트 기동로그 확인문의입니다.인텔리제이 구동시 아래로그가 출력욉니다.Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] Database driver: undefined/unknown Database version: 10.11.11 Autocommit mode: undefined/unknown Isolation level: undefined/unknown Minimum pool size: undefined/unknown Maximum pool size: undefined/unknown 특이사항 없는 것인지 확인부탁드립니다. 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버단축키 혹은 extension 문의강사님...부트 프로젝트 생성후에 application.properties 설정시에 datasource를 치면 하단에 관련목록들이리스트업되는데 해당기능을 이용하려면별도 extension을 설치해야 하는 걸까요? 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버MYSQL 연동오류 원인application.propertesspring.application.name=apiServer spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/apidb spring.datasource.username=apidbuser spring.datasource.password=apidbuser MySQLCREATE USER 'apidbuser'@'localhost' IDENTIFIED BY 'apidbuser';CREATE USER 'apidbuser'@'%' IDENTIFIED BY 'apidbuser'; GRANT ALL PRIVILEGES ON . TO 'apidbuser'@'localhost' WITH GRANT OPTION;GRANT ALL PRIVILEGES ON . TO 'apidbuser'@'%' WITH GRANT OPTION; 현재 데이터베이스 연결은 잘된거 같은데 연결할때마다 oading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.2025-03-16T15:58:11.685+09:00 INFO 58817 --- [apiServer] [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2025-03-16T15:58:11.687+09:00 WARN 58817 --- [apiServer] [ restartedMain] c.zaxxer.hikari.util.DriverDataSource : Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation.2025-03-16T15:58:11.855+09:00 INFO 58817 --- [apiServer] [ restartedMain] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@6077b0882025-03-16T15:58:11.856+09:00 INFO 58817 --- [apiServer] [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.2025-03-16T15:58:11.878+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]2025-03-16T15:58:11.900+09:00 INFO 58817 --- [apiServer] [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.8.Final2025-03-16T15:58:11.911+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled2025-03-16T15:58:12.010+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer2025-03-16T15:58:12.061+09:00 INFO 58817 --- [apiServer] [ restartedMain] org.hibernate.orm.connections.pooling : HHH10001005: Database info: Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] Database driver: undefined/unknown Database version: 9.1 Autocommit mode: undefined/unknown Isolation level: undefined/unknown Minimum pool size: undefined/unknown Maximum pool size: undefined/unknown2025-03-16T15:58:12.353+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)2025-03-16T15:58:12.354+09:00 INFO 58817 --- [apiServer] [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'2025-03-16T15:58:12.369+09:00 WARN 58817 --- [apiServer] [ restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning2025-03-16T15:58:12.506+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 357292025-03-16T15:58:12.522+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/'2025-03-16T15:58:12.526+09:00 INFO 58817 --- [apiServer] [ restartedMain] o.zerock.apiserver.ApiServerApplication : Started ApiServerApplication in 1.469 seconds (process running for 2.034) 이런 에러가 떠서 테스트를 실행해도 데이터가 정상적으로 저장되지 않습니다 무엇이 원인일까요? 
- 
      
        
    해결됨Spring Boot를 활용하여 채팅 플랫폼 만들어보기checkTokenForRefresh에 대해 궁금한점안녕하세요! 항상 강의 잘 듣고 있습니다!그런데 강의를 듣다가 checkTokenForRefresh을 해주는 메서드를 만드셨는데 제가 이해한것이 맞는지 궁금해서 질문드립니다!이 메서드에서 만료가 되면 TokenExpiredException이 일어나면 토큰이 만료되서 decode 을 하시는데 위에 메서드들 처럼 createToken을 안하는 이유가 만료된 토큰의 정보 바탕으로 바로 똑같이 바로 만들어지는 건가요? 
- 
      
        
    미해결지금 당장 NodeJS 백엔드 개발 [사주 만세력]common/fortune.js 조건문 오류common/fortune.js 파일의 11번 째 줄 if문의 조건과 13번째 줄 else if문의 조건이 동일 합니다.13번째 줄의 조건이 (sex === "MALE" && minusPlus === "음") || (sex === "FEMALE" && minusPlus === "양")이렇게 되야 하는거 맞나요? 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버aws 설정중 Connect to a database 메뉴는 어디에있나요?여기까지 진행했습니다이 메뉴는 어디에 있나요? 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버kakao 로그인 구현중 에러이렇게 에러가 뜨고 데이터베이스에 회원 가입이 안되고 있습니다ㅠ.ㅠ교제 423 페이지까지 작성하고 카카오로 로그인시 insert문이 실행되고 회원이 생성되어야 하는데 안되네요 
- 
      
        
    미해결지금 당장 NodeJS 백엔드 개발 [사주 만세력]MySQL data import ssl 오류현재 맥북 m2를 사용하고 있습니다.m2 환경에선 8.0.20 버전 설치가 불가능 하고 가장 낮은 버전이 8.0.33 버전 입니다. 최신 버전 8.0.33 버전 둘 다 설치해서 data import를 시도하는데 계속 실패해서요,,, 어떻게 해야하는걸까요,,, 
- 
      
        
    해결됨코드로 배우는 React 19 with 스프링부트 API서버스프링부트와 리액트 연동관련해서스프링부트와 리액트를 연동하는 강의를 본격적으로 듣기전에 궁금한게 있어서 글을 남깁니다.스프링부트로만 작업을 할경우 저희에겐 타임리프라는 SSR 기술이있어서 서버의 데이터도 쉽게 웹페이지에 전달할 수 있었습니다. 하지만 리액트의 경우 타입스크립트를 기반으로한 next.js 기술이 있는데 이 기술은 node.js를 상정하고 만들어진 기술인 것 같습니다. 이때 next.js 기술이 스프링부트의 타임리프를 대체할만한 SSR기술인지 아니면 next.js 같은 SSR기술이없어도 서버의 데이터를 쉽게 웹페이지에 전송할 수 있는지 궁금합니다. 기술이 필요하다면 어떤 종류의 기술을 익히는 것이 좋을지 알려주시면 너무 감사드립니다. 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버Outlet 질문이요IndexPage.js 에서 <Outlet/>을 했는데 todo메뉴를 클릭하면 "/list" 페이지로 이동을 안 합니다.console창을 보니 This means it will render an <Outlet /> with a null value by default resulting in an "empty" page 문구가 뜨는데 왜 그러는걸까요? 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버섹션3. 스프링부트와 API서버에서 부트 프로젝트 생성 및 확인 강의heidisql로 mariadb 연결하는 방법도 알려주실수 있나요? 인터넷에 검색해봐도 잘 안나와서 모르겠습니다. 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버ch6번 첨부파일 질문있습니다.문제상황: ch6 마지막 파일 다운 받은 후 npm i react react-dom 하고 npm start 했습니다.product와 todo를 누르면 아래와 같은 상황이 나옵니다. 혹시 첨부 파일이 잘못된거 아닐까요?ERRORCannot read properties of undefined (reading 'map') TypeError: Cannot read properties of undefined (reading 'map') at ListComponent 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버로그인 성공과 실패처리 강의 중에 궁금한점이 있어 질문드립니다.(추가질문)db 포스트맨: 에러상황: 포스트맨으로 db에 있는 email과 패스워드 입력해도 로그인이 안됩니다. 참고로 db에 있는 이메일 : user9@aaa.com 직접 db에서 수정하고 저장했습니다. 그리고 user8@aaa.com로 해도 안됩니다. 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버DTO와 인증 서비스 강의 질문있습니다.1.DTO와 인증 서비스 13분 38초 화면이 [username user9@aaa.com ,password 1111] postman에서 회원가입하는 화면인건가요?2.DTO와 인증 서비스 17분 10초 postman 화면도 있는데 이거는 로그인 화면인건가요?3. 제가 포스트맨에서 username user10@aaa.com ,password 1111으로 넣고 send를 누르면 맨 위 사진과 같이 에러가 나옵니다.참고로 db 테이블에 username user9@aaa.com ,password 1111 내용이 있습니다.포스트맨{"timestamp": "2025-03-02T20:26:21.086+00:00","status": 404,"error": "Not Found","trace": "org.springframework.web.servlet.resource.NoResourceFoundException: No static resource api/member/login.\r\n\tat org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:586)\r\n\tat org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:52)\r\n\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\r\n\tat org.springframework.web.servlet.DispatcherServlet.doService spring boot 실행시 아래와 같이 나옵니다. Principal이 username이 user9@aaa.com로 안나옴.[Principal=anonymousUser, Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=null], Granted Authorities=[ROLE_ANONYMOUS]]코드 첨부합니다.https://drive.google.com/file/d/1VtPVj_uRjPC7fYG3gRCeuFKcs2s4wPZm/view?usp=drive_link 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버단축키 질문입니다.DTO와 인증 서비스 2분 33초에서 35초 사이에 코드가 갑자기 생기는데요. 혹시 어떤 단축키 눌른건지 알 수 있을까요?Alt + Insert눌러도 super까지 포함된 메소드는 나오지 않아서요.public MemberDTO(String email, String pw, String nickname, boolean social, List<String> roleNames) { super( email, pw, roleNames.stream().map(str -> new SimpleGrantedAuthority("ROLE_"+str)).collect(Collectors.toList())); this.email = email; this.pw = pw; this.nickname = nickname; this.social = social; this.roleNames = roleNames; } 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버서비스계층과 컨트롤러(3) 질문있습니다.서비스계층과 컨트롤러(3)-상품수정 5분 42초에서 uuid값은 화면쪽에서 처리되면서 붙는다는게 무슨 의미인지 알 수 있을까요?@Override public void modify(ProductDTO productDTO) { //step1 read Optional<Product> result = productRepository.findById(productDTO.getPno()); Product product = result.orElseThrow(); //change pname, pdesc, price product.changeName(productDTO.getPname()); product.changeDesc(productDTO.getPdesc()); product.changePrice(productDTO.getPrice()); product.changeKeyword(product.getKeyword()); //upload File -- clear first 내용이 있을 수도 있기 때문에. product.clearList(); List<String> uploadFileNames = productDTO.getUploadFileNames(); if(uploadFileNames != null && uploadFileNames.size() > 0 ){ uploadFileNames.stream().forEach(uploadName -> { product.addImageString(uploadName); }); } productRepository.save(product); }CustomFileUtil에서 saveFiles메소드에서 List<String> uploadNames = new ArrayList<>(); 배열을 선언하고 ProductServiceImp에서는 product.clearList();로 있던 배열에서 내용을 지우면서 사용하는데요. CustomFileUtil클래스 에서 데이터 베이스 1행에 저장할 리스트 생성해주고 그 리스트를 수정하는 역할이 product.clearList(); 인가요? 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버로그인 실패 로직 질문현재 APILoginFailHandler에서 로그인 실패 처리를 하고 있는데 CustomUserDetailService에서 굳이 예외를 던질 필요가 있는지 궁금합니다.제가 이해한 바로는 loadUserByUsername에서 제대로 로그인 처리가 안되면 failHandler가 실행되는 것으로 이해했는데 왜 여기서 예외를 던지는지 궁금합니다. 
