inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

서비스계층과 컨트롤러(3) 질문있습니다.

미해결

코드로 배우는 React 19 with 스프링부트 API서버

서비스계층과 컨트롤러(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
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
zzzzz 댓글 2 좋아요 0 조회수 70

로그인 실패 로직 질문

미해결

코드로 배우는 React 19 with 스프링부트 API서버

현재 APILoginFailHandler에서 로그인 실패 처리를 하고 있는데 CustomUserDetailService에서 굳이 예외를 던질 필요가 있는지 궁금합니다. 제가 이해한 바로는 loadUserByUsername에서 제대로 로그인 처리가 안되면 failHandler가 실행되는 것으로 이해했는데 왜 여기서 예외를 던지는지 궁금합니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
yso829612 댓글 2 좋아요 0 조회수 64

REST 방식 컨트롤러 만들기에서 익스플로러에 데이터 값이 출력 안됩니다

미해결

코드로 배우는 React 19 with 스프링부트 API서버

TodoController 파일 만들고 Api서버로 스프링 기동시키고 todo경로에 tno 값을 입력해도 익스플로러 화면에 제이슨데이터 값이 표시되지 않습니다 DB상에 있는 데이터로 입력을 해도 나오지 않는 걸 보면 제이슨 설정이 잘못된게 아닌가 싶은데 답변 부탁드립니다 아래에 로그 남겨둡니다 오전 11:13:21: 실행 중 ':org.zerock.apiserver.ApiserverApplication.main()'… Starting Gradle Daemon... Gradle Daemon started in 915 ms > Task :clean > Task :compileJava > Task :processResources > Task :classes > Task :org.zerock.apiserver.ApiserverApplication.main() . ____ _ __ _ _ /\\ / ___'_ __ _ ( )_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.4.1) 2025-03-01T11:13:29.675+09:00 INFO 12000 --- [apiserver] [ restartedMain] o.zerock.apiserver.ApiserverApplication : Starting ApiserverApplication using Java 21.0.5 with PID 12000 (C:\Users\zzamp\Desktop\apiserver\apiserver\build\classes\java\main started by zzamp in C:\Users\zzamp\Desktop\apiserver) 2025-03-01T11:13:29.678+09:00 INFO 12000 --- [apiserver] [ restartedMain] o.zerock.apiserver.ApiserverApplication : No active profile set, falling back to 1 default profile: "default" 2025-03-01T11:13:29.704+09:00 INFO 12000 --- [apiserver] [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2025-03-01T11:13:29.704+09:00 INFO 12000 --- [apiserver] [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2025-03-01T11:13:30.098+09:00 INFO 12000 --- [apiserver] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2025-03-01T11:13:30.139+09:00 INFO 12000 --- [apiserver] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 35 ms. Found 1 JPA repository interface. 2025-03-01T11:13:30.495+09:00 INFO 12000 --- [apiserver] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) 2025-03-01T11:13:30.506+09:00 INFO 12000 --- [apiserver] [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2025-03-01T11:13:30.506+09:00 INFO 12000 --- [apiserver] [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.34] 2025-03-01T11:13:30.539+09:00 INFO 12000 --- [apiserver] [ restartedMain] o.a.c.c.C.[Tomcat].[ localhost ].[/] : Initializing Spring embedded WebApplicationContext 2025-03-01T11:13:30.539+09:00 INFO 12000 --- [apiserver] [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 835 ms 2025-03-01T11:13:30.669+09:00 INFO 12000 --- [apiserver] [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2025-03-01T11:13:30.725+09:00 INFO 12000 --- [apiserver] [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.4.Final 2025-03-01T11:13:30.754+09:00 INFO 12000 --- [apiserver] [ restartedMain] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled 2025-03-01T11:13:30.942+09:00 INFO 12000 --- [apiserver] [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer 2025-03-01T11:13:30.966+09:00 INFO 12000 --- [apiserver] [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2025-03-01T11:13:31.039+09:00 INFO 12000 --- [apiserver] [ restartedMain] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.mariadb.jdbc.Connection@77e52237 2025-03-01T11:13:31.040+09:00 INFO 12000 --- [apiserver] [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2025-03-01T11:13:31.082+09:00 INFO 12000 --- [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: 10.11.10 Autocommit mode: undefined/unknown Isolation level: undefined/unknown Minimum pool size: undefined/unknown Maximum pool size: undefined/unknown 2025-03-01T11:13:31.519+09:00 INFO 12000 --- [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-01T11:13:31.555+09:00 INFO 12000 --- [apiserver] [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2025-03-01T11:13:31.810+09:00 WARN 12000 --- [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 warning 2025-03-01T11:13:32.040+09:00 INFO 12000 --- [apiserver] [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2025-03-01T11:13:32.059+09:00 INFO 12000 --- [apiserver] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' 2025-03-01T11:13:32.064+09:00 INFO 12000 --- [apiserver] [ restartedMain] o.zerock.apiserver.ApiserverApplication : Started ApiserverApplication in 2.638 seconds (process running for 2.905) 2025-03-01T11:13:57.170+09:00 INFO 12000 --- [apiserver] [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[ localhost ].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2025-03-01T11:13:57.170+09:00 INFO 12000 --- [apiserver] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2025-03-01T11:13:57.171+09:00 INFO 12000 --- [apiserver] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms Hibernate: select t1_0.tno,t1_0.complete,t1_0.content,t1_0.due_date,t1_0.title from tbl_todo t1_0 where t1_0.tno=? Hibernate: select t1_0.tno,t1_0.complete,t1_0.content,t1_0.due_date,t1_0.title from tbl_todo t1_0 where t1_0.tno=? Hibernate: select t1_0.tno,t1_0.complete,t1_0.content,t1_0.due_date,t1_0.title from tbl_todo t1_0 where t1_0.tno=?

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
wjdwoals042 댓글 4 좋아요 0 조회수 166

섹션5 강의 질문있습니다.

미해결

코드로 배우는 React 19 with 스프링부트 API서버

섹션5 수강하고 있는데 혹시 서비스 테스트코드나 레파지토리 테스트코드 실습파일은 어디있을까요? 글씨가 작아서 따라 치기가 어려워서요. 돋보기로 하면 글자가 깨져서요. 상품 목록/등록 강의를 듣고 있습니다. 테스트 코드에서 아래를 실행하면 이런 에러가 납니다.(참고로 db는 연결되어있어요. springboot 돌리면 tomcat start 8080나옵니다.) Cannot invoke "com.example.backend.mallapi.domain.ProductImage.getFileName()" because "productImage" is null 아래는 코드입니다. 참고로 upload 파일에도 파일이 2개가 있는상황이여서 productImage가 null일 이유가 없다고 생각하는데 왜나는지 모르겠습니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
zzzzz 댓글 2 좋아요 0 조회수 108

섹션 5. 상품 API 서버 구성하기-파일업로드 섬네일처리 쪽에서 질문있습니다.

미해결

코드로 배우는 React 19 with 스프링부트 API서버

섹션 5. 상품 API 서버 구성하기- 파일업로드 섬네일처리 쪽에서 질문있습니다. application.properties 파일안에서 org.zerock.upload.path=upload 이 구문에 대해서 질문있습니다. 위 사진에서 빨간 네모박스처럼. java 아래부터 mallapi폴더 전까지 폴더명들이 있는데요. org, zerock 혹시. upload전까지 폴더명과 java 아래부터 mallapi폴더 전까지 폴더명이 같아야 하나요?

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
zzzzz 댓글 1 좋아요 0 조회수 87

업로드파일 조회/삭제 질문있습니다.

미해결

코드로 배우는 React 19 with 스프링부트 API서버

업로드파일 조회/삭제 7분 58초에 ResponseEntity를 컨트롤러에 넣는것은 15년전 방식이라고 말씀해주셨는데요. 근데 ProductController에 아래 같이 있는데요. @GetMapping("/view/{fileName}") public ResponseEntity<Resource> viewFileGET(@PathVariable String fileName){ return fileUtil.getFile(fileName); } 아래 코드를 Controller에 넣는게 15년전 방식인건가요? //파일 조회하는것 public ResponseEntity<Resource> getFile(String fileName) { Resource resource = new FileSystemResource(uploadPath+ File.separator + fileName); if(!resource.exists()) {//파일이 없을 떄 resource = new FileSystemResource(uploadPath+ File.separator + "default.jpeg"); } //http 헤더가 중요. 내가 보낸 타입을 알아야함. HttpHeaders headers = new HttpHeaders(); try{//마이 타입 headers.add("Content-Type", Files.probeContentType( resource.getFile().toPath() )); } catch(Exception e){ return ResponseEntity.internalServerError().build(); } return ResponseEntity.ok().headers(headers).body(resource); }

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
zzzzz 댓글 2 좋아요 0 조회수 78

LightSail 실행 중 오류 질문드립니다!

미해결

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지

4:47경 sudo dpkg -i mysql-apt-config_0.8.23-1_all.deb 입력시 이렇게 강의와 다른 화면이 나왔었습니다. 또한 영상 5:20에서 명령어를 입력했더니 에러가 나면서 비밀번호를 입력하는 화면이 나오지 않아 더 이상 진행하지 못하고 있습니다.

  • node.js
  • mysql
  • mongodb
  • express
  • typescript
  • socket.io
  • jwt
조성진/컴퓨터공학부(컴퓨터공학전공 댓글 2 좋아요 0 조회수 235

RedisStore 사용법 질문

미해결

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지

connect-redis 8.0.1 최신버젼을 사용중입니다. 강의 내용도 해보고 깃헙 코드도 참조해서 해봐도 오류나서 connect-redis 공식문서 읽어보았더니 const { RedisStore } = require('connect-redis'); const sessionOption = { resave: false, saveUninitialized: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, }, store: new RedisStore({ client: redisClient }), //저장소의 기본값: 메모리 } 이렇게 사용해야 할 것 같습니다. 그렇게 되면 session객체를 const RedisStore = require('connect-redis')(session); 이렇게 넘겨줄 필요는 없는 걸까요?? 그리고 8.0.1 공식문서에서 말하는대로 해도 괜찮을까요?

  • node.js
  • mysql
  • mongodb
  • express
  • typescript
  • socket.io
  • jwt
조성진/컴퓨터공학부(컴퓨터공학전공 댓글 2 좋아요 0 조회수 164

Querydsl 검색처리에서 테스트 결과가 잘 안 나오는 거 같습니다

미해결

코드로 배우는 React 19 with 스프링부트 API서버

로직 작성하고 테스트 실행해봤는데 카운트 쿼리까지는 실행된 거 같은데 todoDTO의 결과가 표시되지 않네요 하단에 있는 실행 결과를 봐주시고 답변을 해주시면 감사드리겠습니다 혹시 더 필요한 게 있으시면 말씀해 주세요 > Task :clean > Task :compileJava > Task :processResources > Task :classes > Task :compileTestJava > Task :processTestResources NO-SOURCE > Task :testClasses 11:41:34.918 [Test worker] INFO org.springframework.test.context.support .AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [org.zerock.apiserver.service.TodoServiceTests]: TodoServiceTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration. 11:41:34.987 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration org.zerock.apiserver.ApiserverApplication for test class org.zerock.apiserver.service.TodoServiceTests . ____ _ __ _ _ /\\ / ___'_ __ _ ( )_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.4.1) 2025-02-22T11:41:35.222+09:00 INFO 10348 --- [apiserver] [ Test worker] o.z.apiserver.service.TodoServiceTests : Starting TodoServiceTests using Java 21.0.5 with PID 10348 (started by zzamp in C:\Users\zzamp\Desktop\apiserver\apiserver) 2025-02-22T11:41:35.223+09:00 INFO 10348 --- [apiserver] [ Test worker] o.z.apiserver.service.TodoServiceTests : No active profile set, falling back to 1 default profile: "default" 2025-02-22T11:41:35.536+09:00 INFO 10348 --- [apiserver] [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2025-02-22T11:41:35.578+09:00 INFO 10348 --- [apiserver] [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 35 ms. Found 1 JPA repository interface. 2025-02-22T11:41:35.798+09:00 INFO 10348 --- [apiserver] [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2025-02-22T11:41:35.837+09:00 INFO 10348 --- [apiserver] [ Test worker] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.4.Final 2025-02-22T11:41:35.858+09:00 INFO 10348 --- [apiserver] [ Test worker] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled 2025-02-22T11:41:36.016+09:00 INFO 10348 --- [apiserver] [ Test worker] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer 2025-02-22T11:41:36.033+09:00 INFO 10348 --- [apiserver] [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2025-02-22T11:41:36.084+09:00 INFO 10348 --- [apiserver] [ Test worker] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.mariadb.jdbc.Connection@7e1d8d41 2025-02-22T11:41:36.085+09:00 INFO 10348 --- [apiserver] [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2025-02-22T11:41:36.116+09:00 INFO 10348 --- [apiserver] [ Test worker] org.hibernate.orm.connections.pooling : HHH10001005: Database info: Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] Database driver: undefined/unknown Database version: 10.11.10 Autocommit mode: undefined/unknown Isolation level: undefined/unknown Minimum pool size: undefined/unknown Maximum pool size: undefined/unknown 2025-02-22T11:41:36.523+09:00 INFO 10348 --- [apiserver] [ Test worker] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) 2025-02-22T11:41:36.558+09:00 INFO 10348 --- [apiserver] [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2025-02-22T11:41:36.897+09:00 WARN 10348 --- [apiserver] [ Test worker] 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 warning 2025-02-22T11:41:37.114+09:00 INFO 10348 --- [apiserver] [ Test worker] o.z.apiserver.service.TodoServiceTests : Started TodoServiceTests in 2.018 seconds (process running for 2.672) Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build what is described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#0.3 WARNING: A Java agent has been loaded dynamically (C:\Users\zzamp\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.15.11\a38b16385e867f59a641330f0362ebe742788ed8\byte-buddy-agent-1.15.11.jar) WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information WARNING: Dynamic loading of agents will be disallowed by default in a future release 2025-02-22T11:41:37.366+09:00 INFO 10348 --- [apiserver] [ Test worker] o.z.a.repository.search .TodoSearchImpl : search1................. Hibernate: select t1_0.tno,t1_0.complete,t1_0.content,t1_0.due_date,t1_0.title from tbl_todo t1_0 order by t1_0.tno desc limit ?,? Hibernate: select count(t1_0.tno) from tbl_todo t1_0 2025-02-22T11:41:37.646+09:00 INFO 10348 --- [apiserver] [ Test worker] o.z.apiserver.service.TodoServiceTests : org.zerock.apiserver.dto.PageResponseDTO@11f81488 Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 2025-02-22T11:41:37.658+09:00 INFO 10348 --- [apiserver] [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2025-02-22T11:41:37.659+09:00 INFO 10348 --- [apiserver] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2025-02-22T11:41:37.662+09:00 INFO 10348 --- [apiserver] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. > Task :test BUILD SUCCESSFUL in 5s 5 actionable tasks: 5 executed 오전 11:41:37: 실행이 완료되었습니다 ':test --tests "org.zerock.apiserver.service.TodoServiceTests.testGetList"'.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
wjdwoals042 댓글 3 좋아요 0 조회수 217

섹션4 조회기능 질문입니다.

해결됨

코드로 배우는 React 19 with 스프링부트 API서버

선생님, 덕분에 하루하루 조금씩 성장하고 있습니다. 감사힙니다 섹션 4 조회 기능을 실행하면 아래와 같이 나오는데 해결 방법을 알고 싶습니다. x를 누르면 정상으로 보입니다. 건강하시기를 바랍니다. 감사합니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
박정아 댓글 2 좋아요 0 조회수 85

윈도우 파일탐색기 주소창에서 cmd를 입력할 경우 해당 경로로 바로 cmd를 열 수 있습니다.

미해결

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지

윈도우 파일탐색기 주소창에서 cmd를 입력할 경우 해당 경로로 바로 cmd를 열 수 있습니다. 중요한건 아닌데 혹시 도움 되실까 싶어서 올려봅니다. (강의 마지막에 cmd를 따로 열어서 직접 경로를 찾아가고 있는데 시간을 단축시킬 수 있습니다)

  • node.js
  • mysql
  • mongodb
  • express
  • typescript
  • socket.io
  • jwt
정중한 몽구스 댓글 2 좋아요 2 조회수 261

REST 방식 컨트롤러 만들기(2)-LocalDateFormatter ㅠㅠ;

해결됨

코드로 배우는 React 19 with 스프링부트 API서버

선생님, 안녕하세요~ 섹션 3. 스프링부트와 API서버 => REST 방식 컨트롤러 만들기(2)에서 4:06분 근처 => LocalDateFormatter에서 오류가 납니다. CustomServletConfig까지 작성하고 실행하면 아래와 같은 오류가 나옵니다. C:\backend2\serverapi\serverapi\src\main\java\org\zerock\serverapi\controller\formatter\LocalDateFormatter.java:12: error: type Formatter does not take parameters public class LocalDateFormatter implements Formatter<LocalDate> { ^ 앞.뒤로 돌려보면서 찾아 보려 했는데 잘 모르겠습니다. LocalDateFormatter만드는 부분부터 오류가 납니다. 죄송하지만 확인하시면 답변 부탁 드립니다. 감사합니다. 코드 첨부합니다. package org.zerock.serverapi.controller.formatter; import org.hibernate.engine.jdbc.internal.Formatter; import java.text.ParseException; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Locale; import static java.awt.SystemColor.text; public class LocalDateFormatter implements Formatter<LocalDate> { @Override public LocalDate parse(String Text, Locale locale) throws ParseException { return LocalDate.parse(text, DateTimeFormatter.ofPattern("yyyy-MM-dd")); } @Override public String print(LocalDate object, Locale locale) { return DateTimeFormatter.ofPattern("yyyy-MM-dd").format(object); } }

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
박정아 댓글 2 좋아요 0 조회수 98

PageResponseDTO 질문이 있습니다.

미해결

코드로 배우는 React 19 with 스프링부트 API서버

package com.example.backend.mallapi.dto; import lombok.Builder; import lombok.Data; import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; @Data public class PageResponseDTO<E> { private List<E> dtoList; private List<Integer> pageNumList; private PageRequestDTO pageRequestDTO; private boolean prev, next; private int totalCount, prevPage, nextPage, totalPage, current; @Builder(builderMethodName = "withAll") public PageResponseDTO(List<E> dtoList, PageRequestDTO pageRequestDTO, long totalCount) { this.dtoList = dtoList; this.pageRequestDTO = pageRequestDTO; this.totalCount = (int)totalCount; int end = (int)(Math.ceil( pageRequestDTO.getPage() / 10.0 )) * 10; int start = end - 9; int last = (int)(Math.ceil((totalCount/(double)pageRequestDTO.getSize()))); end = end > last ? last: end; this.prev = start > 1;//1보다 크면 참 밑에 if문 실행. this.next = totalCount > end * pageRequestDTO.getSize(); this.pageNumList = IntStream.rangeClosed(start,end).boxed().collect(Collectors.toList()); // start부터 end까지 연속된 숫자 스트림(IntStream)을 생성 // rangeClosed(a, b): a부터 b까지 포함 // IntStream은 기본형 int 스트림이기 때문에, // 객체형 리스트(List<Integer>)로 변환하기 위해 .boxed()를 사용. // 스트림을 리스트로 변환하는 역할 if(prev) { this.prevPage = start -1; } if(next) { this.nextPage = end + 1; } this.totalPage = this.pageNumList.size(); this.current = pageRequestDTO.getPage(); } } 위에 코드를 옆에처럼 디버깅할려면( https://www.youtube.com/watch?v=OHrLRg150As ) 즉 step over로 사용도 하면서 한 줄 한 줄 씩 어떻게 실행되는 지 보고 싶은데 아래와 같이 에러가 나옵니다. 혹시 스프링부트를 사용하면 디버거 모드가 활성화가 안되나요? 아래 사진을 보시면 38번째 줄에 브레이크 포인트 표시 해놨고 우측 상단에 디버그 모드도 실행되어있는데 중앙에 네모박스처럼 step over 모드가 비활성화 되어있습니다. 한 줄 한줄씩 디버깅을 할려면 어떻게 해야하는지 궁금합니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
zzzzz 댓글 2 좋아요 0 조회수 90

13:23 system.out 출력문이 다르게 나옵니다.

미해결

스프링부트 시큐리티 & JWT 강의

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의 내용처럼 userDetails : User(id=1, username=ssar, , 이렇게 뜨지 않고 아래와 같이 출력됩니다. userDetails : com.myproject.BasicBoard.entity.User@2c6c7d57 getDetails.getUser() authentication 출력문도 마찬가지입니다.

  • spring
  • spring-security
  • jwt
댓글 1 좋아요 0 조회수 154

product image

미해결

코드로 배우는 React 19 with 스프링부트 API서버

안녕하세요 강의를 기반으로 작업을 하다 궁금한점이 생겨서 product - modify에서 사진을 모두 삭제하고 저장을 해두거나 product - register에서 사진이 없는상태로 저장을 해두면 @Query("select p, pi from Product p left join p.imageList pi where pi.ord = 0 and p.delFlag = false ") Page<Object[]> selectList(Pageable pageable); ProductRepository에서 selectList 쿼리부분의 ord = 0인 설정만 만 호출하게 되버리는데 이때 이미지리스트 테이블에서 이미 ord가 없는 게시물은 조회가 되지 않습니다.. ord가 이미 없는 게시물은 delFlag가 false임에도 조회가 되지않습니다... 강의 목표는 아마도 default.jpeg 가 나와야 정상인거같은데 어떻게 해야 좋을까요 ? 처음엔 서비스에서 imageStr이 없으니 imageStr을 강제로 default.jpeg로 설정해봤지만 어차피 조회되지 않아서 의미가 없었습니다. 쿼리를 수정해봐야 할까요 ..??

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
이동준 이 댓글 2 좋아요 0 조회수 80

npx tailwindcss init 가 안되네요.

해결됨

코드로 배우는 React 19 with 스프링부트 API서버

강의대로 npx tailwindcss init 을 하게되면 'tailwind'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라고 뜨네요. 어떻게 해결 방법이 없을까요? vscode 재시작해봐도 똑같네요. 구글링 해보니, 환경변수에 nodejs 경로를 path에 추가하라고 하는데, 이미 추가되어있구요. 아, node버전이 기존에 18버전이 설치되어 있어서 그건 새로 설치하지는 않았습니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
속터져 댓글 1 좋아요 0 조회수 4976

outlet을 이용한 서브메뉴 강의에서 질문있습니다.

미해결

코드로 배우는 React 19 with 스프링부트 API서버

outlet을 이용한 서브메뉴에서 질문있습니다. main <-이 부분이 부모페이지고 list add <-서브페이지면 list page component<-자손페이지 인가요? 강의에서 IndexPage.js에서 <Outlet/> 부분에 ListPage.js 코드가 들어가 있는 형태인거 같은데요. 근데 제가 아래처럼 작동해봤을 떄 Todo List Page Component 이 부분이 안나오는데요. 코드 어디가 문제인가요? 코드 복붙했는데요. 아래는 IndexPage.js 코드입니다. import { Outlet } from "react-router-dom"; import BasicLayout from "../../layouts/BasicLayout"; const IndexPage = () => { return ( <BasicLayout> <div className="w-full flex m-2 p-2 "> <div className="text-xl m-1 p-2 w-20 font-extrabold text-center underline">LIST</div> <div className="text-xl m-1 p-2 w-20 font-extrabold text-center underline">ADD</div> </div> <div className="flex flex-wrap w-full"> <Outlet/> </div> </BasicLayout> ); } export default IndexPage; 아래는 ListPage.js 코드입니다. import React from 'react' export default function ListPage() { return ( <div className="p-4 w-full bg-orange-200 "> <div className="text-3xl font-extrabold"> Todo List Page Component </div> </div> ) }

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
zzzzz 댓글 1 좋아요 0 조회수 103

로그인 후 Token 발행 시 postman 에러메시지

미해결

[초급] 찍어먹자! 코틀린과 Spring Security + JWT로 회원가입 만들기

안녕하세요. 본 수강 열심히 잘 듣고있습니다~ 감사합니다. 제가 Postman으로 로그인하고나서 Token을 발행할 시에 postman에 테스트해본 결과 결과코드는 SUCCESS라고 나오고 data에도 Bearer에 토큰이 들어간것을 확인하였습니다. 그러나 메시지에는 정상완료가 아닌 에러가 발생했다고 해서 제가 아무리 코드를 확인하였지만 어디부분에서 잘못된건지 확인이 힘들었습니다. 사실은 선생님께서 보내주신 파일을 업로드안하고 강의보면서 제가 직접 코드를 타이핑쳤었는데 손코딩을해서 그런지 오타가 있을 것으로 사료됩니다. 불가피하게 파일을 덮어씌우는게 좋을까요?

  • kotlin
  • spring-boot
  • jpa
  • spring-security
  • jwt
soojinkimss 댓글 1 좋아요 0 조회수 174

vite + react <MainPage/> intelij

미해결

코드로 배우는 React 19 with 스프링부트 API서버

안녕하세요 인텔리제이 사용중인데 create react app으로 하게 되면 더이상 지원하지 않는다 하여 vite + react로 적용해서 프로젝트 만들어서 하고 있습니다 현재 2강 React-Router 이용해서 메인 페이지 띄우는 작업중인데 오류가 발생하여 진행이 안됩니다 그리고 매번 강의 때마다 오류 수정하느라 강의가 원활하지 않습니다 강의는 더이상 업데이트 계획이 없으실까요? 리액트 프로젝트 생성부터 막혀서 진행이 원할하게 되지않습니다 환불하고 싶은데 기간도 지나서 환불도 안되고 답답하네요 매번 이런식으로 물어보면서 수정해야 하나요?? 매뉴얼이라도 만들어주세요 정말 불편합니다

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
신승록 댓글 2 좋아요 0 조회수 167

인기 태그

인프런 TOP Writers

주간 인기글