묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
${data} 부분이 문자열로 인식되는 것 같습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 강의 내용을 따라 Controller쪽을 하기 사진처럼 작성하였습니다. hello를 매핑하여 templates/hello.html을 렌더링하고, 화면 실행 시, attributeValue 부분이 화면에 뜨게 하기 위해선하기와 같은 코드를 짜야한다고 이해했습니다.다만, 데이터를 넘겨받는 $부분이 문자열로 인식되어, 아래처럼 뜹니다. 저와 비슷한 에러를 겪는 분의 질문도 봤지만 무료/유료 버전의 차이라고 하셨는데, data 자체를 받질 못하는거 같아 문의글 남기게 되었습니다. 어디가 잘못된 것인지 잘 모르겠습니다 ㅠ
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
oauth 회원가입 시 필수 추가 정보는 어떤 식으로 받으시나요?
안녕하세요! 우선 강의 정말 잘 보고있습니다. 강의를 들으며 프로젝트에 적용 중인데 궁금한 점이 있어 질문드립니다.oauth 회원가입 시 리소스 서버에서 받은 수 없는 필수 추가 정보는 어떤 식으로 받으시나요?예: 사용자 혈액형, 학교 등.. (회원가입에 필수 정보라 가정)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 리포지토리 테스트 케이스 작석중
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿] Member result = repository.findById(member.getId()).get(); ->>member.getId().get() ->.get()의 의미가뭔가요?
-
미해결스프링 시큐리티 OAuth2
login 성공 이후 error페이지
302 status 이후 error 페이지로 이동하는 문제가 있습니다.어떤걸 확인해야될까요?
-
미해결스프링 시큐리티 OAuth2
OAuth2 form login error
OAuth 2.0 Social Login 연동 구현 (6) 부분에 있는 영상 33:46까지 따라왔지만 form로그인에서 발생한 문제입니다. form login의 inmemory나 jdbc형태로 하는 게 아닌 CustomUserDetailsService를 통해서만 인증을 하는 것으로 보이는데, 이와 같은 에러가 발생하는 이유를 모르겠습니다. (에러코드가 조회되지 않음) 디버그 모드를 확인해보니, DaoAuthenticationProvider클래스에 있는 additionalAuthenticationChecks메소드에서 에러가 발생하고 있습니다.if (!this.passwordEncoder.matches(presentedPassword, userDetails.getPassword())) { this.logger.debug("Failed to authenticate since password does not match stored value"); throw new BadCredentialsException(this.messages .getMessage("AbstractUserDetailsAuthenticationProvider.badCredentials", "Bad credentials")); } 2. presentedPassword 이부분이 값이 빈값으로 넣어지고 있는데 문제가 되는 부분인 것 같아 질문드립니다.2-1. 추가적으로 이부분은 첫 로그인이라서 에러나는 부분하고 상관이 없이 발생하는지 질문드립니다. 에러로그가 확인이 불가능하여, 코드 공유를 위해 프로젝트 공유를 하였습니다. 확인 부탁드립니다.
-
해결됨서버개발자 과제전형 완벽가이드 - 1편
멀티모듈 구성에서 하위 모듈은 java 모듈로 하는 이유가 궁금합니다.
안녕하세요.편안한 추석 보내시길 바랍니다. 멀티 모듈 구성이 익숙치 않아서 많이 헤맸습니다 ㅋㅋ하위 모듈을 생성할 때, 습관처럼 스프링 프로젝트로 만들었더니 빌드 자체가 안되었고, 강의를 다시 보니 java 프로젝트로 만드는 거였더라고요. 그래서 멀티 모듈 구성은 잘했는데요...궁금한 것은 왜 스프링 프로젝트로 만들면 안 되는 거였는지 입니다.개념 영상에서 소개한 공식 문서를 확인하면 알 수 있는 내용인가요? 감사합니다.
-
미해결코드로 배우는 React with 스프링부트 API서버
moveToList를 만들때 질문이 있습니다.
const moveToList = () => { navigate({ pathname: "../list", search: queryDefault }); };이걸 했을때 어떻게 http://localhost:3000/todo/read/13이주소에서 http://localhost:3000/todo/list로 바뀌는 건가요?..을 지워버리니까 http://localhost:3000/list로 바뀌어서 에러가 나더라고요 ../를 디렉토리처럼 한단계 전으로 돌아가는 걸로 이해하려고 해도 13의 한단계 전이나까 그럼 http://localhost:3000/todo/read/list 이게 되어야 하는것 같은데 ../가 어떤 뜻이길래 http://localhost:3000/todo/read/13로 제대로 나오는 건가요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
요청을 처리하기까지 과정 질문
안녕하세요. 요청을 필터가 처리하기까지의 과정이 맞는지 확인하고자, 질문드립니다.먼저 FilterChainProxy가 SecurityFilterChain을 선택하는방법이 여러개의 SecurityFilterChain 중에 가지고 있는 RequestMatcher url 패턴에 맞는 SecurityFilterChain을 확인 후 선택함.또 다시 SecurityFilterChain 이 가진 여러 필터들 중에서 요청 url에 해당하는 패턴을 처리할 수 있는 필터를 선택해서 해당 필터에서 처리하도록 함.위 과정이 대략적으로 맞을까요?
-
해결됨인프라공방 - 그럴듯한 서비스 만들기
부하테스트 비용 줄이는 방법이 있을까요?
로컬에서는 걱정이 없었는데배포는 안할 거지만 배포 시나리오를 나름 작성해놓고로컬성능으로 테스트하는게 의미없다고 판단해서클라우환경에서 해보려고 하는데 비용 발생이 고민입니다.VPC 내에 테스트 하는 서버를 만들고대상 서버들을 호출하는 방식으로 하면 절감할 수 있을까요?같은 VPC 내의 다른 가용영역에서는 네트워크 사용비용 자체는소량이라고 알고 있어서 실제 외부에서 들어오는 거랑은 다르겠지만,이렇게 해볼 생각입니다.혹시 다른 방법이 있을까 여쭤봅니다.
-
미해결코드로 배우는 React with 스프링부트 API서버
register 할때 formatter가 언제 적용이 되는 건가요?
json으로 date 파라미터를 보낼때 자동으로 변환 되서 들어간다는 건가요??
-
미해결스프링 시큐리티 OAuth2
oidc 로그인
선생님 구글 로그인은 oauth2Login() 을 사용하지만 결국에는 oidc Scope를 사용하기 때문에 oidc 인증 프로토콜을 사용해서 인증절차를 사용한다고 보면 될까요?
-
미해결코드로 배우는 React with 스프링부트 API서버
testUpdate를 하실때 질문이 있습니다.
강의에서는 명시적으로 todoRepository.save(todo);를 해주셨는데 어떤 강의에서는 더티체킹으로 업데이트를 하는게 좋다고 하는 말을 들었습니다. 보통 실무에서는 어떤 방식을 더 선호하나요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
setHierarchy deprecated
안녕하세요 강사님 좋은 강의 감사드립니다.처음부터 지금까지 모든 강의 내용을 직접 코딩을 따라 하며 실습하고 있었는데 해당 영상에서 질문할 것이 있습니다.RoleHierarchyImpl을 빈 등록할 때 setHierarchy는 deprecated 되어서 fromHierarchy로 했더니 사진의 에러가 발생합니다. 두 메소드의 코드가 다르기 때문에 이런 에러가 발생한다고 추측되는데 deprecated된 setHierarchy를 사용하는 대신 다른 방안이 있을지 궁금해서 여쭤봅니다. 사실 계층적 권한 관련된 내용을 처음 설명해주시는 관련 영상(섹션 9의 마지막 영상)에서는 setHierarchy 대신 fromHierarchy를 사용했어도 잘 동작했었기에 더 궁금합니다.(그때는 물론 role을 db로 관리하지 않는 간단한 예제였습니다) 확인해주시고 코멘트 달아주시면 많은 도움이 될 것 같습니다. 감사합니다.@Configuration public class AuthConfig { @Bean public PasswordEncoder passwordEncoder() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); } // 커스텀 계층 권한 적용 @Bean public RoleHierarchyImpl roleHierarchy(RoleHierarchyService roleHierarchyService) { String allHierarchy = roleHierarchyService.findAllHierarchy(); RoleHierarchyImpl roleHierarchy = new RoleHierarchyImpl(); roleHierarchy.fromHierarchy(allHierarchy); //roleHierarchy.setHierarchy(allHierarchy); return roleHierarchy; } }
-
미해결견고한 결제 시스템 구축
결제 복구의 세부 과정을 병렬로 처리한 이유가 궁금합니다
안녕하십니까 여정민 강사님! 강의 도중 궁금한 점이 있어 질문 드리고자 합니다. 질문은 12:32 초의 코드를 보면package com.example.paymentservice3.payment.application.service import com.example.paymentservice3.payment.application.port.`in`.PaymentConfirmCommand import com.example.paymentservice3.payment.application.port.`in`.PaymentRecoveryUseCase import com.example.paymentservice3.payment.application.port.out.* import org.springframework.scheduling.annotation.Scheduled import reactor.core.scheduler.Schedulers import java.util.concurrent.TimeUnit class PaymentRecoveryService ( private val loadPendingPaymentPort: LoadPendingPaymentPort, //결제 처리가 완료되지 않은 상태의 결제를 조회 하기 위해 private val paymentValidationPort: PaymentValidationPort, //결제 유효성 검사 private val paymentExecutorPort: PaymentExecutorPort, //결제 승인 요청 private val paymentStatusUpdatePort: PaymentStatusUpdatePort //결제 상태 업데이트 ) : PaymentRecoveryUseCase { @Scheduled(fixedDelay = 180, timeUnit = TimeUnit.SECONDS) override fun recovery() { loadPendingPaymentPort.getPendingPayments() .map { PaymentConfirmCommand( paymentKey = it.paymentKey, orderId = it.orderId, amount = it.totalAmount() ) } .parallel(2) .runOn(Schedulers.parallel()) .flatMap { paymentValidationPort.isValid(it.orderId, it.paymentKey).thenReturn(it) } .flatMap { paymentExecutorPort.execute(it) } .flatMap { paymentStatusUpdatePort.updatePaymentStatus(PaymentStatusUpdateCommand()) } } }위와 같이 작성되어있는데 여기서결제 유효성 검사결제 승인 요청결제 상태 업데이트위 3가지 기능 수행을 병렬로 처리한 이유가 궁금합니다.강의에서 언급된 이유로는 "각 작업 간의 수행 순서가 중요하지 않은 작업들은 병렬로 처리하여 전체 처리 시간을 단축" 이라고 말씀하셨습니다. 제가 생각했을 때는 유효성 검사에 성공하면 결제 승인을 요청하고 결제 승인 요청에 대한 결과를 바탕으로 결제 상태 업데이트가 수행이 되어야 한다고 생각되어 병렬처리를 하는 부분에 있어 타당함을 잘 모르겠습니다. 제 짧은 견해로는 결제 유효성 검사결제 승인 요청결제 상태 업데이트위 순서를 지켜 수행되어야 한다고 판단하였습니다. 이 부분에 대해서 강사님의 생각이 궁금합니다. p.s. 좋은 강의를 제공해주셔서 감사합니다. 여태 수강한 강의 내용들이 모두 새로워 덕분에 공부할 부분을 많이 찾게 되어 감사드립니다. 앞으로도 좋은 강의를 만들어주시면 많은 도움이 될 것 같습니다 화이팅!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepositoryTest 오류
Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1806) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) at app//org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) at app//org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at app//org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) at app//org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) at app//org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:954) at app//org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625) at app//org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at app//org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) at app//org.springframework.boot.SpringApplication.run(SpringApplication.java:335) at app//org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) at app//org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) at app//org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) at app//org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1463) at app//org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:553) at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225) at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) at app//org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) at app//org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) at app//org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) at app//org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260) at app//org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228) at app//org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at app//org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at app//org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247) at app//org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at app//org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at app//org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at app//org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) at app//org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:276) at app//org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) at app//org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) at app//org.hibernate.boot.model.relational.Database.<init>(Database.java:45) at app//org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:221) at app//org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:189) at app//org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) at app//org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1431) at app//org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1502) at app//org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) at app//org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) at app//org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1853) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1802) ... 32 moreCaused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) at app//org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:191) at app//org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:87) at app//org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentWithDefaults(JdbcEnvironmentInitiator.java:152) at app//org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:362) at app//org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:123) at app//org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:77) at app//org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) at app//org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ... 47 more 에러가 길어서 하나만 붙였습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
AssertionFailedError 에 관해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]JdbcTemplateRepository를 작성하고 통합테스트를 진행하였는데 결과가 AssertionFailedError 가 발생하였습니다, 기대값은 19인데 spring으로 되었다고 하는것 같은데 어떤점이 문제일까요 ?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
버전이 달라도 진행하는데 큰 차이가 있을까요?
안녕하세요 이제 막 섹션2 들어갔습니다.저는 3.3.3버전을 사용하려 하는데 강의에선 2.4 대 버전을 사용하여 진행하시는데 큰 차이가 있을까요?
-
미해결코드로 배우는 React with 스프링부트 API서버
업로드된 파일명 이상함
안녕하세요. 질문이 있습니다. "섹션 5 - 상품 API 서버 구성하기 - 파일 업로드 설정과 확인"에서 문의 드립니다.파일 업로드 테스트는 잘 실행 되지만 아래 그림처럼 업로드된 첨부파일 명이 이상합니다.강사님의 경우 UUID 값뒤에 OriginalFilename이 붙어있는데요, 제 경우에는 붙질 않습니다.아래 그림처럼 로그에도 이상히 값이 찍히질 않습니다.포스트 맨으로 테스트한 결과는 아래 그림과 같습니다.여기서 한가지 강사님이 실행하고 나서의 화면과 제가 실행하고나서의 화면은 차이가 좀 나는거 같습니다. 추축하자면 포스트맨으로 첨부파일이 제대로 첨부가 안된것으로도 보입니다. 아래 좀더 크게 캡춰해 보았습니다.분명히 파일을 선택해서 첨부를 했는데 위와 같은 화면으로 나옵니다.그결과 실제 업로된 파일들은 제대로 복사가 된 상태가 아닙니다. 디렉토리에 생성된 파일들은 아래와 같이 0 kb입니다.여기까지 작성된 소스는 강사님께서 진행하신 모든 내용을 다 반영하였습니다.제가 어떤걸 놓친게 있을까요? ------------------------------------------------------------------------------위를 다른 포스트맨 확장 프로그램으로 실행하니 잘 되네요. 감사합니다.
-
미해결코드로 배우는 React with 스프링부트 API서버
url 주소에 값을 받아오지 못합니다
Request URL:http://localhost:3000/todo/read/$%7Bprefix%7D/$%7Btno%7D게시물 번호값인 tno를 int 로 받아오지 못하고 있습니다 어떻게 해야할까요?
-
해결됨스프링 시큐리티 완전 정복 [6.x 개정판]
PPT 자료는 어디서 다운 받을 수 있을까요?
다른분이 작성하신 질문도 봤는데.. 다운로드 받을 수 있는 방법이 없네요ㅠㅠPDF 파일로 업로드 해주셨다고 하는데, 어디서 다운 받을 수 있을까요?