묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
pdf 파일 수정 부탁드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요, 강의를 듣다가 pdf를 보던 중 "참고" 라고 적힌 부분에 '|' 이 부분이 글 씨를 침범 하는 사태가 있습니다.이 강의 다른 pdf 파일도 확인 해보니까 어떤 것은 괜찮고 어떤 것은 사진처럼 이렇게 되어있습니다.pdf파일을 보는 사람이 있다면 불편할 것 같네요. 추가1"회원 서비스 테스트" 강의 에서 영상에 회원 가입 테스트 에서는 Assertions.assetThat(findMember.getName()).isEqualTo(member.getName());이렇게 작성 되어 있는데, 오늘(25.6.12)pdf를 보니 pdf파일 코드 에는 assertEquals(member.getName(), findMember.getName()); 이렇게 되어 있더라고요.이렇게 하신 이유가 무엇인가요?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
강의보다 낫네
무지성 강의 시청하다보면, 그냥 음음 하다가 끝나는 경우도 종종 있는데, 이건 읽으면서 무조건 쳐보니까 좋네 ㅇㅇ;notebooklm 에 넣어넣고 쓰고싶음
-
미해결스프링 부트와 리액트로 구현하는 소셜 로그인
[인증된 사용자 정보 클래스 정의]학습 예제와 강의 내용이 다른 이유가 있나요?
강의 예제로 다운받은 버전은 SocialLoginWeb1703 인데요. 강의는 1303이네요. 스프링시큐리티 구현코드에 있어서도 차이가 나는데, 이유가 있는건가요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
45강 빌드 오류입니다.
안녕하세요?강사님 덕분에 열공하고 있습니다.2가지 문의드립니다.1) 프론트엔드의 리액트 소스 부탁드립니다. ==> cyj10241@gmail.com2) 45강 빌드를 하려는데 오류가 납니다. 저는 java를 17를 인스톨했습니다.[ec2-user@ip-172-31-43-148 Spring_Web]$ java -versionopenjdk version "17.0.15" 2025-04-15 LTSOpenJDK Runtime Environment Corretto-17.0.15.6.1 (build 17.0.15+6-LTS)OpenJDK 64-Bit Server VM Corretto-17.0.15.6.1 (build 17.0.15+6-LTS, mixed mode, sharing)[ec2-user@ip-172-31-43-148 Spring_Web]$ chmod +x ./gradlew[ec2-user@ip-172-31-43-148 Spring_Web]$ ./gradlew build -x testFAILURE: Build failed with an exception.* What went wrong:Could not determine the dependencies of task ':bootJar'.> Could not resolve all dependencies for configuration ':runtimeClasspath'. > Failed to calculate the value of task ':compileJava' property 'javaCompiler'. > Cannot find a Java installation on your machine (Linux 6.1.134-152.225.amzn2023.x86_64 amd64) matching: {languageVersion=17, vendor=any vendor, implementation=vendor-specific, nativeImageCapable=false}. Toolchain download repositories have not been configured.* Try:> Learn more about toolchain auto-detection and auto-provisioning at https://docs.gradle.org/8.14/userguide/toolchains.html#sec:auto_detection.> Learn more about toolchain repositories at https://docs.gradle.org/8.14/userguide/toolchains.html#sub:download_repositories.> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.위와 같은 오류가 나는데 해결 방법을 알고 싶습니다.감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. Execution failed for task ':test'.> There were failing tests. See the report at: file:///C:/Users/tahee/OneDrive/%EB%B0%94%ED%83%95%20%ED%99%94%EB%A9%B4/hello-spring/build/reports/tests/test/index.html* Try:> Run with --scan to get full insights.BUILD FAILED in 1s4 actionable tasks: 2 executed, 2 up-to-date 5분 27초까지 하고 실행했는데 오류나요 챗지피티가 하라는 거 다 해봤는데도 소용이 없네요 이거 가지고 3시간째 매달려 있는데 해결해주실 분 계실까요 하 모든 코드에 에러 없는데 실행만 하면 저래요
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
active profiles는 인텔리제이 커뮤니티 버전에 없네요
무료버전은 해당 기능설정을 지원하지 않네요.뭐지? 했던분들 참고하시면 좋겠네요
-
미해결스프링 배치
질문이 있습니다.
강의 내용이 전반적으로 이론 위주로 구성된 것 같은데요, 혹시 강의 후반부도 비슷한 흐름으로 진행될까요?개인적으로 실무에서 바로 적용 가능한 사용 예제나 흐름이 궁금해서 그런데, 혹시 그런 예제가 포함되어 있는지 궁금합니다.감사합니다!
-
미해결Spring Boot TDD - 입문부터 실전까지 정확하게
거짓 양성 감지 노하우 질문입니다
안녕하세요 규원님. 강의 잘 듣고 있습니다. 제가 실습 코드를 따라하다가 오탈자가 생겨 이를 해결하는 과정에서 의문점이 생겨 질문 남깁니다. shopper 토큰 발급 엔드포인트 구현 과정에서 @RequestBody 어노테이션을 누락했습니다@PostMapping("/shopper/issueToken") ResponseEntity<?> issueToken(IssueShopperToken query) { return repository.findByEmail(query.email()) .map(shopper -> composeToken()) .map(AccessTokenCarrier::new) .map(ResponseEntity::ok) .orElseGet(() -> ResponseEntity.badRequest().build()); }문제는 이런 상황에서 400이 발생하며 실패해야할 테스트 코드가 통과하게 됩니다.@Test void 잘못된_비밀번호가_사용되면_400_Bad_Request_상태코드를_반환한다( @Autowired TestRestTemplate client ){ // Arrange var email = generateEmail(); var wrongPassword = generatePassword(); var password = generatePassword(); client.postForEntity( "/shopper/signUp", new CreateShopperCommand(email, generateUsername(), password), Void.class ); // Act ResponseEntity<AccessTokenCarrier> response = client.postForEntity( "/shopper/issueToken", new IssueShopperToken(email, wrongPassword), AccessTokenCarrier.class ); // Assert assertThat(response.getStatusCode().value()).isEqualTo(400); }이유를 고민해보고 다음과같은 결론을 짓게 되었습니다.@RequestBody가 없는 경우 컨트롤러 메서드의 매개변수는 기본적으로 form data로 인식하게 된다.따라서 IssueShopperToken이 form data로 인식되게 된다.현재 테스트에서는 상태코드가 400인지만을 확인한다.하지만 form data가 없는 경우에도 400이 발생한다.테스트가 통과한다. 거짓 양성의 사례라고 보여집니다. 이경우에는 Assert절을 강화해 상태코드 말고도 검증되어야할 항목들을 추가해 거짓 양성을 방지할 수 있을거라고 생각됩니다. 이렇듯 테스트코드도 사람이 작성하다 보니 Assert절을 어느정도 수준까지 구체적으로 작성해야 할지를 TDD가 익숙하지 않다면 빠르게 식별하기 어렵다고 생각합니다.실무에서는 이와같은 상황은 매우 치명적일 수 있을거 같고요.그래서 실무에서 필요한 Assert절을 구체화하는 명확한 기준이나 노하우가 있으신지가 궁금합니다!
-
미해결스프링 부트와 리액트로 구현하는 소셜 로그인
socialLoginSpa1703 스프링 실행 오류납니다.
socialLoginSpa1703 소스코드를 다운받고인텔리제이로 프로젝트를 열었습니다.jdbc 설정대로 mysql을 생성하였고 bootRun으로 실행시키면 프로젝트는 실행됩니다.강의와같이 localhost:8080 이 접속이 안되고localhost에 대한 액세스가 거부됨이 페이지를 볼 수 있는 권한이 없습니다.HTTP ERROR 403가 뜹니다. 확인 부탁드려요2025-06-07T13:23:42.478+09:00 INFO 46412 --- [ restartedMain] c.e.demo.SocialLoginSpa1703Application : Starting SocialLoginSpa1703Application using Java 17.0.15 with PID 46412 (C:\Users\HP\Desktop\�Ǽ�ȣ\Project\SocialLoginSpa1703\build\classes\java\main started by HP in C:\Users\HP\Desktop\�Ǽ�ȣ\Project\SocialLoginSpa1703)2025-06-07T13:23:42.483+09:00 INFO 46412 --- [ restartedMain] c.e.demo.SocialLoginSpa1703Application : No active profile set, falling back to 1 default profile: "default"2025-06-07T13:23:42.566+09:00 INFO 46412 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable2025-06-07T13:23:42.566+09:00 INFO 46412 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'2025-06-07T13:23:44.141+09:00 INFO 46412 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.2025-06-07T13:23:44.275+09:00 INFO 46412 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 119 ms. Found 2 JPA repository interfaces.2025-06-07T13:23:45.451+09:00 INFO 46412 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http)2025-06-07T13:23:45.477+09:00 INFO 46412 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]2025-06-07T13:23:45.478+09:00 INFO 46412 --- [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.39]2025-06-07T13:23:45.585+09:00 INFO 46412 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext2025-06-07T13:23:45.587+09:00 INFO 46412 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3018 ms2025-06-07T13:23:45.876+09:00 INFO 46412 --- [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]2025-06-07T13:23:46.037+09:00 INFO 46412 --- [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final2025-06-07T13:23:46.427+09:00 INFO 46412 --- [ restartedMain] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled2025-06-07T13:23:47.214+09:00 INFO 46412 --- [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer2025-06-07T13:23:47.301+09:00 INFO 46412 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2025-06-07T13:23:47.595+09:00 INFO 46412 --- [ restartedMain] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@3419a5dd2025-06-07T13:23:47.600+09:00 INFO 46412 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.2025-06-07T13:23:49.656+09:00 INFO 46412 --- [ 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-06-07T13:23:49.824+09:00 INFO 46412 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'2025-06-07T13:23:50.469+09:00 INFO 46412 --- [ restartedMain] o.s.d.j.r.query.QueryEnhancerFactory : Hibernate is in classpath; If applicable, HQL parser will be used.2025-06-07T13:23:51.243+09:00 WARN 46412 --- [ 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-06-07T13:23:52.357+09:00 INFO 46412 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 357292025-06-07T13:23:52.418+09:00 INFO 46412 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/'2025-06-07T13:23:52.428+09:00 INFO 46412 --- [ restartedMain] c.e.demo.SocialLoginSpa1703Application : Started SocialLoginSpa1703Application in 10.793 seconds (process running for 11.915)2025-06-07T13:24:32.032+09:00 INFO 46412 --- [nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'2025-06-07T13:24:32.032+09:00 INFO 46412 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'2025-06-07T13:24:32.035+09:00 INFO 46412 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms2025-06-07T13:24:32.090+09:00 INFO 46412 --- [nio-8080-exec-2] c.e.d.security.JwtAuthenticationFilter : doFilterInternal
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
MSA 에서 Monolithic Architecture로 마이그레이션
안녕하세요 강사님 ! 강의 잘듣고 있습니다.강의를 거의 다들었는데, Monolithic Architecture로 마이그레이션 해보고 싶다는 생각이 들어 해보려고 합니다.각각의 모듈을 하나의 어플리케이션의 패키지로 만들기만 하면 될까요 ? 어느 부분을 신경쓰면 좋을지 간단하게라도 조언해주시면 정말 감사드리겠습니다 .!!이 강의를 듣기를 진심으로 잘했다는 생각이 듭니다. 좋은 강의 해주셔서 감사드리고 다음 강의도 기대하겠습니다 !!
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
6, 도메인구성 강의에서 ddl-auto: update 부분 질문있습니다.
안녕하세요:) 도메인구성 강의 중 ddl-auto : update로 처음 설정 한 뒤 서버를 돌렸을 때 member 테이블 생성이 안되어서 ddl-auto: create로 바꾸신걸까요?? 제가 헷갈리는 부분이 처음 member테이블을 생성할 때는 ddl-auto: update로 설정했을 때에도 테이블생성이 되는 걸로 알고 있어서요. 혼자서 스프링부트 jpa프로젝트 만들엇을때도 ddl-auto:udpate로 엔티티테이블 잘 생성되었던 것 같은데 update를 꼭 create로 처음에 (지금처럼 member 테이블을 처음생성할 때) 바꿔줘야하는 건가요??
-
미해결스프링부트를 이용한 웹 프로그래밍: 웹사이트 이렇게 만드는 거예요!
dto 타입
dto 타입 날짜에서 엔티티랑 똑같이 LocalDateTime 으로 맞추지 않고 String 으로 다르게 쓰는 이유가있나요 ?
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
깃헙 collaboator 초대 관련
당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요.안녕하세요 호돌맨님.덕분에 강의 잘 듣고있습니다.깃헙 collaboator로 초대받을 수 있을까요?깃헙 아이디는 dudfo6425@gmail.com 입니다!감사합니다.
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
FaultTolerant의 retryLimit() 횟수 질문
킬구형 안녕, Fault Tolerant 쪽에서,retryLimit()을 설명해줄 때만약 retryLimit 값이 3일경우, "첫번째 호출시도 1번, 재시도 호출 2번"으로 총 3번이 호출된다고 했잖아.재시도 횟수는 항상 retryLimit - 1 이라 그랬고. 근데 왜 "ItemProcessor의 예외 발생 시 재시도 - 아이템 단위로 재시도 관리"의 마지막 호출 결과 찍어준 부분에서, retryLimit()은 3인데 왜 ItemProcessor는 4번이 호출되는거야?위에 설명한대로라면 3번만 호출되어야 하는거 아냐?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
OrderItems hibernate.default_batch_fetch_size 관련한 질문입니다!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Order<-> Member는 N:1Order<-> Delivery 는 1:1 관계이며, proxy 객체로 들고오는 것이 목적이 아니기 때문에 fetch join 을 이용하여 바로 데이터를 DB에서 들고 온 거고OrderItems 는 조회문에서 뺀 다음 Order <-> OrderItmes 1:N Lazy 를 이용하여 proxy 상태로 들고 온 상태에서.get() 과 같은 함수를 이용해서 그때 데이터를 채워놓은거라고 이해하면 될까요?OrderItems에 데이터가 DB데이터가 채워질 때 N+1 과 같은 문제가 발생하지 않은 건 hibernate.default_batch_fetch_size 또는 @BatchSize 이용하기에 그런 거구요.그럼 만약에 Order 주문 조회 후 Controller 에서 해당 OrderItems 의 Class 를 확인하면 proxy로 나오게 되고, order.getOrderItems() 와 같이 호출을 하게 되면 OrderItems는 proxy 객체가 아닌 실제 DB조회데이터가 나오게 되는 걸까요??
-
미해결실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
Elastic Cloud 에서 "Logs and metrics" 기능 관련 질문 있습니다.
Elastic Cloud 에서 "Logs and metrics" 기능 활성화를 통해 나중에 문제 발생시 로그 및 매트릭 확인을 위해서 해당 기능을 활성화 하고자 하는데요.이 기능은 좋은데 문제점이 너무 빠르게 용량을 잡아 먹는다는 것 입니다.저 예산으로 가야 되는 상황이라 어쩔 수 없이 낮은 사양으로 할 수 밖에 없는 상황이지만 그렇다고 "Logs and metrics" 기능을 비활성화 하기에 나중에 문제 발생시 대처가 안 될 것 같아서 고민이 됩니다. 한번 여러 방면으로 대책법을 찾아보니필수 로그 및 메트릭만 수집 (필터링)수집 주기 조정 (Metrics 기준)이렇게 대응 방법을 말해주고 있는데요. 지금부터 ChatGPT 가 답변해준 글을 공유 하도록 하겠습니다. ==================================================💥 주요 성능 부하 원인🔁수집량 과다수집 주기 짧음, 많은 필드 → 데이터 폭주📥Ingest Pipeline 부하Elastic Agent가 사용하는 Ingest Pipeline이 CPU/RAM 자원 소비💾인덱싱 부하많은 로그가 빠르게 들어오며 디스크 I/O 및 CPU 부하 증가🔍자동 매핑 확장필드가 자동으로 확장되어 메모리, 클러스터 상태 불안정🧠ILM 미적용 / 장기 보존오래된 데이터가 계속 쌓이며 성능 하락 및 디스크 압박✅ 해결책: 성능 최적화 전략1. 필수 로그 및 메트릭만 수집 (필터링)수집 대상 최소화:log.level: error, source: app-* 등 필요 데이터만 수집예: Elastic Agent policy에서 수집 대상 제외 설정processors: - drop_event: when: not: equals: log.level: "error"2. 수집 주기 조정 (Metrics 기준)리소스기본 주기추천 조정Metrics (System, Docker 등)10s~15s→ 30s~60s로 늘리기Elastic Agent 정책에서 조정 가능 (Kibana → Fleet → Integration Policy → Advanced options)3. ILM 수명주기 정책 설정오래된 로그/메트릭 자동 삭제 또는 cold/warm tier로 이동예: logs-*, metrics-* 인덱스 7일 후 삭제 📍 Elastic Agent Policy 설정 페이지 찾는 방법🔹 경로:Kibana에 로그인왼쪽 메뉴에서 "Management" → "Fleet" 클릭→ Fleet은 Elastic Agent를 중앙에서 관리하는 UI입니다.상단 탭에서 "Agents" 또는 "Agent policies" 클릭원하는 정책 이름 클릭 (예: Agent policy 1)Integrations 리스트가 보이면, 로그/메트릭 관련 항목 클릭 (예: System, NGINX, Kubernetes 등)Advanced Options 또는 Streams 탭에서 수집 조건/필터 조정 가능🎯 필수 로그/메트릭만 수집하는 핵심 위치Integrations 안의 Stream 설정예: system.syslog → enabled ✅ / ❌메트릭 → 수집 주기(Collect every 10s 등)Advanced YAML (고급 설정)예를 들어, error 레벨만 수집하도록 필터 추가:processors: - drop_event: when: not: equals: log.level: "error" 🧭 화면 예시 흐름Kibana └─ Management └─ Fleet ├─ Agent Policies ← 여기서 정책 선택 │ └─ [Agent policy 1] │ └─ System integration 등 클릭 │ └─ Streams or Advanced options 설정 ==================================================이렇게 필수로그 수집 기능 및 수집 주기 조정 기능으로 조금이나마 성능 부하를 줄이고자 할려고 하는데요. 말 그래도 키바나 접속 해서 Fleet 페이지로 가서 먼저 agent policy 등록를 하고등록한 agent policy 접근 해서 system-1 클릭하면 Edit System integration 페이지 접근 할텐데요. 여기서 Collect metrics from System instances 에서 Change defaults 클릭 하고 여기서 원하는 Period 를 설정 하면 되는게 맞는 것인지 궁금 합니다... 혹시 또 추가적으로 설정 해야 하는 부분이 있을까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
최신 webflux 라이브러리에서 yml 작성법
server: port: 8000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://localhost:8761/eureka spring: application: name: apigateway-service cloud: gateway: server: webflux: routes: - id: first-service uri: http://localhost:8081/ predicates: - Path=/first-service/** filters: - AddRequestHeader=first-request, first-request-header2 - AddResponseHeader=first-response, first-response-header2 - id: second-service uri: http://localhost:8082/ predicates: - Path=/second-service/** filters: - AddRequestHeader=second-request, second-request-header2 - AddResponseHeader=second-response, second-response-header2위처럼 weflux:라고 yml에서 작성해주셔야 잘 동작합니다.
-
미해결견고한 결제 시스템 구축
테스트 코드 중 isPaymentDone 변환
안녕하세요.테스트코드 작성 중 아래 파싱하는 부분 관련하여,as Byte -> toInt 변환 도중 에러가 발생합니다..DB스키마 DDL의 경우, boolean -> tinyint(1) 로 생성된것으로 보이는데, 어떻게 해결할 수 있을까요?```class java.lang.Boolean cannot be cast to class java.lang.Byte (java.lang.Boolean and java.lang.Byte are in module java.base of loader 'bootstrap')java.lang.ClassCastException: class java.lang.Boolean cannot be cast to class java.lang.Byte (java.lang.Boolean and java.lang.Byte are in module java.base of loader 'bootstrap')```isPaymentDone = ((results.first()["is_payment_done"] as Byte).toInt()== 1),
-
해결됨카카오,구글 SNS 로그인(springboot3, vue3)
프론트엔드에서 Auth.js를 사용했을 때, 질문 있습니다.
안녕하세요. 좋은 품질의 강의를 제작해주셔서 감사합니다. 프론트엔드 부분을 vue.js에서 Next.js로 변경하여 프로젝트를 진행하고 있습니다. 해당 과정에서 막힘이 있어 질문을 드립니다. Next.js를 기반으로 Auth.js 라이브러리를 사용하여 프론트엔드 소셜 로그인을 구현하고 있습니다.소셜 로그인 흐름을 다음과 같이 생각하고 있습니다.1. 유저가 소셜 로그인 버튼을 누른다. 2. 프론트엔드에서 해당 소셜 로그인 화면을 리다이렉트 시킨다. 3. 유저는 소셜 로그인을 진행한다. 4. 소셜 로그인 성공 시, 프론트엔드 서버는 인증 코드를 소셜 서버로부터 받은 후, 백엔드로 소셜 로그인 API를 인증 코드 첨부하여 요청한다. 5. 백엔드 서버에서 인증 코드를 가지고 액세스 토큰 발급, 엑세스 토큰으로 유저 정보를 받아서 JWT를 만들어 프론트엔드로 반환해준다. 하지만 다음 피드백을 받았습니다. "Auth.js를 사용하면 소셜 서버로부터 인가코드를 직접 받아올 수 없어 백엔드 서버로 인가코드 요청을 할 수 없다."위 의견이 맞다면, 백엔드 서버에서 소셜 로그인 전 과정을 진행하고 JWT 값만 프론트엔드로 반환하는 방법 밖에 없는걸까요? 강의에서 사용되지 않은 기술에 대해서 질문하여 죄송합니다.감사합니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
질문입니다.
안녕하세요, 강의 잘 수강하고 있습니다다만 강의랑 자료랑 달라서 물어보고 싶어서 글을 남깁니다. 1.ch3 압축파일에 강의와는 다르게 압축파일에는 search 클래스가 없습니다. ch4 알집파일 todo.d.ts파일에 아래와 같이 writer를 추가하는 게 맞는 건지 궁금합니다.interface TodoModify { tno: number, title: string, writer: string dueDate: string | null, complete: boolean }