inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

file not found 질문

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

안녕하세요, Path를 가져오는 부분(resources.getFile()) 에서 자꾸 file not found를 던지는데 왜 그런지 도무지 이해가 가지 않습니다. csv 파일의 경로는 resources/zone_kr.csv 입니다. resource import 도 spring.core.io.Resource를 사용했습니다.

  • JPA
  • spring
  • java
  • spring-boot
  • thymeleaf
조석훈 댓글 2 좋아요 1 조회수 1690

querydsl 로 @CreationTimestamp 사용이 가능한가요?

해결됨

실전! Querydsl

안녕하세요. 강의를 보고 querydsl 을 실무에 적용하고자 학습중이었습니다. 실제로 적용하고 querydsl 로 업데이트 쿼리를 만들어 시도하니 정상적으로 작동하긴 했지만 Entity에 정의된 @UpdateTimestamp 라던가 Audit를 이용한 @LastModified가 무시되는걸로 확인됐습니다. 혹시나 해서 테스트코드를 짜보니, 엔터티를 검색하여 가져온 다음 set을 하는 경우엔 위의 기능들이 동작했지만 querydsl 의 update....execute() 를 사용할 경우 안되더군요. querydsl 을 사용하여 저 기능들을 활용할 방법이 있을까요? 만약 없다면 어떻게 해야하나요? 참고로 현재 사용중인 프로젝트 버전은 스프링부트 1.5.8 이며 JPA 2.1 , Hibernate는 5.2.18, querydsl 4.1.3 버전입니다.

  • java
  • JPA
Dalsoft Dev 댓글 2 좋아요 0 조회수 467

recompile말고 새로고침으로는 안 되나요?

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

영한님 안녕하세요! 강의 정말 잘 듣고 있습니다. 궁금한게 Spring Framework에서는 제 기억에 별 다른 세팅 없이 새로고침하면 정적 소스들이 변경됐던 것 같은데, 스프링 부트에서는 새로고침이 아니라 꼭 recompile을 해줘야 변경사항이 반영되는건가요? 새로고침만으로 변경시킬 순 없나요? 일일이 recompile하기 번거로울 것 같아서요 ㅠㅠ

  • 웹앱
  • JPA
  • spring-boot
  • spring
  • java
댓글 2 좋아요 0 조회수 627

제공되는 학습자료는 없나요?

미해결

김대리님 이게 바로 업무 자동화입니다 (엑셀 + 파이썬)

강의와 관련있는 질문 을 남겨주세요. • 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등) • 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색 을 해주세요. (중복 질문을 자제해주세요.) • 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’ 를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달 에도 요령이 필요합니다. • 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요. • 강의실 페이지 (/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다. • 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재 해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드 를 남겨주세요! 구체적인 질문 일수록 명확한 답을 받을 수 있어요. • 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요. • 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요 . • 정확한 질문 내용과 함께 코드 를 적어주시거나, 캡쳐 이미지 를 첨부하면 더욱 좋습니다. 기본적인 예의 를 지켜주세요. • 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용 은 스팸 처리 등 제재를 가할 수 있습니다.

  • 인프런 신규강의 (유료)
  • excel
  • python
  • 인프런 신규강의 (유료)
kimdaehwan 댓글 3 좋아요 0 조회수 449

준영속 상태와 비영속 상태의 차이점이 있을까요?

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

준영속상태의 경우 entityManager에서 관리하는 영속상태에서 detach를 통해서 다시 비영속 상태가 된 객체라고 이해하였습니다. 아직까지 진도로는 이 경우 비영속 대신에 굳이 준영속 이라는 걸로 따로 구분하는 이유가 있을지 궁굼합니다. 그냥 논리적인 구분일 뿐일까요? 실제 txCommit에 반영되지 않는 다는 점은 동일할 것 같아서요

  • java
  • JPA
asdf9090 댓글 3 좋아요 4 조회수 1352

join에 관해서 질문드립니다.

미해결

실전! Querydsl

강사님 강의 잘 듣고있습니다. 감사합니다 ! 질문이있습니다! 제가 아직 미흡하다보니 구분이 잘 안되고 있습니다,, 강의를 빠르게 한번 훑어보고 개인적으로 연습겸 해보고있는데요. 질문은 아래와 같습니다. (1) leftJoin 과 leftJoin + fetchJoin 의 정확한 차이점과 언제 어떻게 두개를 구분하여 사용해야하는지 궁금합니다.. (join의 목적은 인지하고있습니다) 또한 여기에서 fetch join 을 사용하지 않는 이유는 무엇일까요? <select문을 한번만 날리고싶을때를 기준> entity형태로 조회하면 fetchJoin이 필요하고 dto형태로 조회하면 fetchJoin이 필요가없더라구요 (error) return queryFactory .select( new QBasePostDto( post . id .as( "postId" ) , post . title , post . desc , user . id .as( "userId" ) , user . username .as( "username" ) )) .from( post ) .leftJoin( post . user , user ) // .fetchJoin() ㄴ 이러한 경우에는 querydsl자체적으로 user.id.as("userId") 이부분을 보고 fetchJoin을 날려주는건가요??

  • java
  • JPA
Jon 댓글 1 좋아요 1 조회수 255

생성자가 제대로 작동하지 않습니다.

미해결

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

marine 생성자가 작동을 안합니다... 생성자를 전부 맞게 적은 것 같은데 다음과 같은 오류가 발생해요. line 113, in <module> m1 = Marine() TypeError: __init__() missing 4 required positional arguments: 'name', 'hp', 'speed', and 'damage' from random import * # 일반 유닛 class Unit: def __init__ ( self , name , hp , speed): self .name = name self .hp = hp self .speed = speed print ( "{0} 유닛이 생성되었습니다." .format(name)) def move ( self , location): print ( "[지상 유닛 이동]" ) print ( "{0} : {1} 방향으로 이동합니다. [속{2}]" .format( self .name , location , self .speed)) def damaged ( self , damage): print ( "{0} : {1} 데미지를 입었습니다." .format( self .name , damage)) self .hp -= damage print ( "{0} : 현재 체력은 {1}입니다." .format( self .name , self .hp)) if self .hp <= 0 : print ( "{0} : 파괴되었습니다. " .format( self .name)) # 공격 유닛 class AttackUnit(Unit): def __init__ ( self , name , hp , speed , damage): Unit. __init__ ( self , name , hp , speed) self .damage = damage def attack ( self , location): print ( "{0} : {1} 방향으로 적군을 공격합니다. [공격력 {2}] " \ .format( self .name , location , self .damage)) class Marine(AttackUnit): def __int__ ( self ): AttackUnit. __init__ ( self , "마린" , 40 , 1 , 5 ) def stimpack ( self ): if self .hp > 10 : self .hp -= 10 print ( "{0} : 스팀팩을 사용합니다. (hp 10 감소)" .format( self .name)) else : print ( "{0} : 체력이 부족하여 스팀팩을 사용하지 않습니다." .format( self .name)) class Tank(AttackUnit): seize_developed = False def __int__ ( self ): AttackUnit. __init__ ( self , "탱크" , 150 , 1 , 35 ) self .seize_mode = False def set_seize_mode ( self ): if not Tank.seize_developed: return # 현재 시즈모드가 아닐 때 -> 시즈 모드 if not self .seize_mode: print ( "{0} : 시즈모드로 전환합니다." .format( self .name)) self .damage *= 2 self .seize_mode = True else : print ( "{0} : 시즈모드를 해제합니다." .format( self .name)) self .damage /= 2 self .seize_mode = False class Flyable: def __init__ ( self , flying_speed): self .flying_speed = flying_speed def fly ( self , name , location): print ( "{0} : {1} 방향으로 날아갑니다. [속도 {2}]" .format(name , location , self .flying_speed)) class FlyableAttackUnit(AttackUnit , Flyable): def __init__ ( self , name , hp , damage , flying_speed): AttackUnit. __init__ ( self , name , hp , 0 , damage) Flyable. __init__ ( self , flying_speed) def move ( self , location): print ( "[공중 유닛 이동]" ) self .fly( self .name , location) class Wraith(FlyableAttackUnit): def __init__ ( self ): FlyableAttackUnit. __init__ ( self , "레이스" , 80 , 20 , 5 ) self .clocked = False def clocking ( self ): if self .clocked == True : print ( "{0} : 클로킹 모드 해제합니다." .format( self .name)) self .clocked = False else : print ( "{0} : 클로킹 모드 설정합니다." .format( self .name)) self .clocked = True def game_start (): print ( "[알림] 새로운 게임을 시작합니다." ) def game_over (): print ( "Player : gg" ) print ( "[Player] 님이 게임에서 퇴장하였습니다." ) # 게임 진행 game_start() m1 = Marine() m2 = Marine() m3 = Marine() t1 = Tank() t2 = Tank() w1 = Wraith() attack_units = [] attack_units.append(m1) attack_units.append(m2) attack_units.append(m3) attack_units.append(t1) attack_units.append(t2) attack_units.append(w1) for unit in attack_units: unit.move( "1시" ) Tank.seize_developed = True print ( "[알림] 탱크 시즈 모드 개발이 완료되었습니다." ) for unit in attack_units: if isinstance (unit , Marine): unit.stimpack() elif isinstance (unit , Tank): unit.set_seize_mode() elif isinstance (unit , Wraith): unit.clocking() for unit in attack_units: unit.attack( "1시" ) for unit in attack_units: unit.damaged(randint( 5 , 20 )) # 공격은 랜덤으로 받음 # 게임 종료 game_over()

  • python
댓글 1 좋아요 0 조회수 575

테스트 질문입니다!

미해결

스프링 부트 개념과 활용

테스트 강의를 듣던 중에 궁금합니다. 아직 초보라서 그런지, 왜 테스트를 해야 하는지 이해가 잘 안갑니다. 테스트로 돌리는 코드와 일반 코드는 무슨 차이가 있는건가요?? 강의에서도 그냥 일반적인 Runner에서 돌리는 것이랑 뭐가 다른지 잘 모르겠습니다ㅠㅠ

  • spring-boot
  • java
  • spring
댓글 1 좋아요 0 조회수 178

ID에 Type 선언

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요, Id Type 선언을 하실때 Wrapper 클래스를 사용하셨는데 특별한 이유가 있으신가요?

  • JPA
  • spring-boot
  • java
  • spring
dev@hsquare.io 댓글 1 좋아요 0 조회수 175

강의에서 말씀하신 방식으로 기업의 코딩테스트도 통과할수있나요?

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

이번에 다루신 문제에는 입력이 작았기 때문에 for문 내부에서 sort를 해도 문제가 없었다고 생각합니다. 그러나 코딩테스트 경험상, for문안에 sort()를 넣으면 대부분 시간 초과 오류가 났던 경험이 있는데요. 첫째, 입력이 더 큰 경우에 이 방식(매번 정렬)을 써도 되는지 둘째, 만약 시간 복잡도가 너무 커져서 시간초과가 날 가능성이 높다면 더 효율적인 방법은 없을까요?

  • python
  • 코테 준비 같이 해요!
drather 댓글 2 좋아요 12 조회수 433

혹시 사용하고 계신 폰트 알 수 있을까요??

해결됨

스프링 부트 개념과 활용

강의 잘 듣고 있습니다! 현재 인텔리제이에서 네이버D2 폰트 쓰고 있는데, 백기선님께서 쓰시는 폰트가 좀 더 부드러운 느낌이 들어서 그런데, 혹시 폰트가 뭔지 알 수 있을까요?? 감사합니다

  • java
  • spring-boot
  • spring
댓글 2 좋아요 0 조회수 298

질문드립니다.

미해결

실전! 스프링 데이터 JPA

9:17초에서 changeTeam 함수를 보다가 문득 질문이 들어 질문 남깁니다. 함수명 자체는 팀을 '바꾼다'는 의미를 가지고 있는데 list에 add를 해주는 방식(team.getMembers().add(this))으로 구현하셨습니다. 그러면 리스트에 있던 기존 데이터객체의 jpa에서 알아서 update되는지, 아니면 무시하고 새로 add 되는지 궁굼합니다.

  • spring
  • spring-boot
  • java
  • JPA
dev_dev_dev 댓글 1 좋아요 10 조회수 248

page not found가 계속 뜹니다.

해결됨

파이썬 사용자를 위한 웹개발 입문 A to Z Django + Bootstrap

강의내용대로 따라했는데 저렇게 뜹니다. 강의내용을 돌려서 제가 pycharm속 코드들과 비교해봐도 다른게 없는데 제가 어느부분을 놓치고 있는 걸까요?

  • django
  • bootstrap
  • python
김아영 댓글 6 좋아요 1 조회수 543

질문있습니다!!

미해결

실전! Querydsl

안녕하세요 영한님! 로드맵대로 잘 배웠습니다 감사합니다!! 배운걸 이용할겸 작은 프로젝트를 하나 하려고 하는데, 이전에 mvc 로 게시판을 jpa 와 querydsl 로 만들어보려구 jsp 파일을 사용하려고 하니 thymeleaf 형식으로 바꾸기가 어렵더라구요.. ㅜ.ㅜ 그래서 그냥 아예 첨부터 view를 짜봐야겠다고 생각이 들었는데 스프링 부트는 여러가지 뷰가 있고 jsp, velocity, thymeleaf가 대표적인 것 같은데 어떤 것을 개인적으로 추천하시는지 알고 싶습니다.

  • java
  • JPA
kangsy763 댓글 2 좋아요 3 조회수 232

JUnit5 사용하시는 분들은 이렇게...

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

JUnit5에서는 @SpringBootTest에 @RunWith(SpringRunner.class)가 포함되어있고, public을 명시해주지 않으셔도 됩니다. @Test(expected)는 4보다 귀찮아졌네요.. package jpabook.jpashop.service; import jpabook.jpashop.domain.Member; import jpabook.jpashop.repository.MemberRepository; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest @Transactional class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test void 회원가입() throws Exception { //given Member member = new Member(); member.setName("1hoon"); //when Long joinId = memberService.join(member); //then assertEquals(member, memberRepository.findOne(joinId)); } @Test void 중복_회원_예외() throws Exception { //given String name = "1hoon"; Member memberA = new Member(); memberA.setName(name); Member memberB = new Member(); memberB.setName(name); //when memberService.join(memberA); //then IllegalStateException thrown = assertThrows(IllegalStateException.class, () -> memberService.join(memberB)); assertEquals("이미 존재하는 회원입니다.", thrown.getMessage()); } }

  • spring-boot
  • JPA
  • 웹앱
  • spring
  • java
탄코 댓글 9 좋아요 53 조회수 6646

테스트DB를 PostgreSQL 로 전환 후 테스트 수행시 오류

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

안녕하세요. 강의에 나온대로 진행 후 테스트 수행하니 아래와 같이 오류가 납니다. 무슨 문제일까요? java.lang.ExceptionInInitializerError at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at org.junit.platform.commons.util.ReflectionUtils.newInstance(ReflectionUtils.java:511) at org.junit.jupiter.engine.execution.ConstructorInvocation.proceed(ConstructorInvocation.java:56) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.api.extension.InvocationInterceptor.interceptTestClassConstructor(InvocationInterceptor.java:72) at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:77) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestClassConstructor(ClassBasedTestDescriptor.java:333) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateTestClass(ClassBasedTestDescriptor.java:280) at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.instantiateTestClass(ClassTestDescriptor.java:77) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:262) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$2(ClassBasedTestDescriptor.java:256) at java.base/java.util.Optional.orElseGet(Optional.java:369) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$3(ClassBasedTestDescriptor.java:255) at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:29) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:108) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:107) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:71) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$1(NodeTestTask.java:107) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:107) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:75) at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80) at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248) at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211) at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:132) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58) Caused by: org.testcontainers.containers.ContainerLaunchException: Container startup failed at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:322) at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:302) at com.etopia.studyolle.infra.AbstractContainerBaseTest.<clinit>(AbstractContainerBaseTest.java:10) ... 63 more Caused by: org.testcontainers.containers.ContainerFetchException: Can't get Docker image: RemoteDockerImage(imageNameFuture=java.util.concurrent.CompletableFuture@28486680[Completed normally], imagePullPolicy=DefaultPullPolicy(), dockerClient=LazyDockerClient.INSTANCE) at org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1265) at org.testcontainers.containers.GenericContainer.logger(GenericContainer.java:600) at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:311) ... 65 more Caused by: java.lang.IllegalStateException: Could not find a valid Docker environment. Please see logs and check configuration at org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$getFirstValidStrategy$3(DockerClientProviderStrategy.java:163) at java.base/java.util.Optional.orElseThrow(Optional.java:408) at org.testcontainers.dockerclient.DockerClientProviderStrategy.getFirstValidStrategy(DockerClientProviderStrategy.java:155) at org.testcontainers.DockerClientFactory.getOrInitializeStrategy(DockerClientFactory.java:113) at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:134) at org.testcontainers.LazyDockerClient.getDockerClient(LazyDockerClient.java:14) at org.testcontainers.LazyDockerClient.listImagesCmd(LazyDockerClient.java:12) at org.testcontainers.images.LocalImagesCache.maybeInitCache(LocalImagesCache.java:68) at org.testcontainers.images.LocalImagesCache.get(LocalImagesCache.java:32) at org.testcontainers.images.AbstractImagePullPolicy.shouldPull(AbstractImagePullPolicy.java:18) at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:62) at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:25) at org.testcontainers.utility.LazyFuture.getResolvedValue(LazyFuture.java:20) at org.testcontainers.utility.LazyFuture.get(LazyFuture.java:27) at org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1263) ... 67 more

  • java
  • spring
  • JPA
  • thymeleaf
  • spring-boot
플레어 댓글 6 좋아요 0 조회수 886

condition 만들어지는 과정 이어서 질문드립니다!

미해결

실전! Querydsl

안녕하세요 영한님! 지난 질문에서 " pathvariable을 이용해주지 않았는데 자동으로 MemberSearchCondition안에 어떻게 들어가게 되는지 궁금합니다." 다 라고 질문을 드렸었는데, 이 부분이 정확히는 스프링 데이터 JPA 에서 배운 queryString으로 파라미터를 넘겨서 그 값이 도메인 클래스 컨버터 기술로 인해 바로 들어가는 것이 맞나요 ?

  • java
  • JPA
kangsy763 댓글 2 좋아요 1 조회수 340

생선판매 while 구문 질문

해결됨

Python 부트캠프

fish = 5 while True: num = int(input("고등어 몇 개를 구매하실 건가요?")) if fish >= num: fish = fish - num print(f'고등어 {fish}개 남았습니다.') if fish == 0: print('완판되었습니다.') break else: print(f'손님, 죄송하지만 구매할 수 있는 고등어 {fish}개 남았습니다.') fish = 0 break 위 예제에서 이 코드대로 실행이 된다면 5마리일 때 6마리를 구매하겠다고 하면 바로 남은 생선이 0마리가 되어버리는 것 아닌가요? else: print(f'손님, 죄송하지만 구매할 수 있는 고등어 {fish}개 남았습니다.') 이렇게 되어야 완판 될때까지 판매를 하는 것 아닌가요?

  • python
이승철 댓글 1 좋아요 0 조회수 303

junit5로 테스트하시는분은 이렇게 하시면 됩니다

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

제가 실습중인 환경은 SpringBoot 2.3.1.RELEASE여서 error: cannot find symbol 위 오류가 발생했는데, 코드 수정해서 해결했습니다. 참고하시면 도움될것같습니다. package jpabook.jpashop.member; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.transaction.annotation.Transactional; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional // @Rollback(false) 테스트 종료 후 데이터를 롤배하지 않고 그대로 남겨두는 옵션 public void testMember() throws Exception { //given Member member = new Member(); member.setUsername("1hoon"); //when Long savedId = memberRepository.save(member); Member findMember = memberRepository.find(savedId); //then assertEquals(findMember.getId(), member.getId()); assertEquals(findMember.getUsername(), member.getUsername()); assertEquals(findMember, member); } }

  • spring
  • 웹앱
  • JPA
  • spring-boot
  • java
탄코 댓글 4 좋아요 23 조회수 1181

인기 태그

인프런 TOP Writers

주간 인기글