자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
간혹 유튜브 영상이나 ORM과 관련된 담론이 있는 글들을 보면 JPA의 속도 문제를 문제점으로 삼는 분들을 보았습니다. 그리고 JPA로는 한계가 오는 점들은 네이티브 쿼리를 사용해서 해결을 할 수 있다는 점, 그리고 태현님께서도 특정 상황에서는 JdbcTemplate을 사용해서 문제를 해결할 수 있다는 점을 강의에서 말씀 해주셨는데요. 하지만 그 '특정 상황'의 예시가 잘 떠오르지가 않는데 어떤 것이 있을까요? 배민의 영상에서도 동욱님은 JPA와 QueryDSL을 사용해서 몇 억건의 데이터도 잘 처리하셨고, 영한님께서도 책을 개정판을 내지 않는 이유로 이미 많이 성숙한 기술이라서 극적인 변화가 없는 기술이라고 하셨으며 어떤 유튜버분도 말씀하시길 'JPA라는 기술이 문제 자체를 일으킨다기 보단 개발자가 JPA에 대한 이해가 부족해서 문제가 발생한다.' 라고 하셔서 더 미궁속으로 빠집니다. 혹시 태현님께서도 이런 상황을 겪으신 적이 있으신지, 있다면 어떻게 해결하셨는지 궁금합니다!
사소한 차이같은데 해석이 "서버에서"보다는 "서버에" 또는 "서버로부터"가 맞지 않나 생각이 듭니다. 여러가지 상황이 있겠지만 해석부분만 봤을때 떠오르는 첫번째 상황은 API 호출이 뭔가 모바일 기기나 브라우져가 아니라 서버에서 API 콜이 일어나는 상황처럼 생각되어지는...? 혹시 제가 착각한거일까요?
We are building a program that utilizes the latest tech stacks. 이 문장에 대한 해석으로 "우리는 최신 기술 스택을 활용해 프로그램을 빌드하고 있습니다."라고 되어있는데, "우리는 최신 기술 스택을 활용하는 프로그램을 빌드하고있습니다."가 올바른 해석 아닌가요? a program that utilizes 니까 프로그램이 최신 기술 스택을 활용하고 있는걸로 봐야하는게 아닌지요...?
이 DriverManagerDataSource가 커넥션 풀은 아닌거죠? 매번 getConnection할때마다 새 커넥션을 생성하긴 하지만 URL USERNAME PASSWORD 를 매번 전달하지는 않아도 되는 그냥 좀 더 편리한 DriverManager 라고 생각하면 되는 걸까요
안녕하세요 강의 잘 보고 있습니다 문득 궁금한점이 생겨 여쭤보고 싶은게 있는데요 ! api/auth/[...nextauth]/route.ts 파일 안에 NextAuth가 제공해주는 GET과 POST를 export해놓으면 api/auth/...something 경로로 타고 들어오는 api 요청은 export한 GET과 POST로 사용이 된다라고 말씀해주셨는데 그 GET과 POST는 어디서 호출을 하는걸까요 ? 마찬가지로 middleware.ts 파일에도 NextAuth에서 제공하는 auth를 middleware로 네이밍을 변경하여 사용한다고 하셨는데 그 middleware도 어디서 호출을 해서 사용하고 있는걸까요 ? 내보냈다는건(export) 어디선가 받아와서(import) 해서 사용하는게 아닌가 싶어서 질문 드려봅니다 초보적인 질문이지만 해결하고 가고 싶어서 질문 드려봅니다
안녕하세요! 파이썬을 1달하고 15일 정도 공부한 사람인데요. 제가 블로그의 이벤트를 열기 위해서 파이썬으로 수학게임을 만들었는데, 실행할 때 잘못되는 버그는 없는지, 코드가 전부 정상적으로 잘 작동되는지, 한번 확인차 피드백을 받으려 합니다! import time import random from threading import Timer print("BFB PYTHON ENGINE ver.1.24.2") time.sleep(2) print("launching_[블루의 수학게임]...") time.sleep(10) n=30 o=0 x=0 def addgame(n1,n2): global o global x global n begin=time.time() an=int(input("{}+{}=".format(n1,n2))) end=time.time() if end-begin>10: print("시간 초과!") time.sleep(2) x=x+1 n=n-1 else: if an==int(n1)+int(n2): print("정답!") time.sleep(2) o=o+1 else: print("오답!(정답은 {})".format(n1+n2)) time,sleep(2) x=x+1 n=n-1 def subgame(n1,n2): global o global x global n begin=time.time() an=int(input("{}-{}=".format(n1,n2))) end=time.time() if end-begin>10: print("시간 초과!") time.sleep(2) x=x+1 n=n-1 else: if an==int(n1)-int(n2): print("정답!") time.sleep(2) o=o+1 else: print("오답!(정답은 {})".format(n1-n2)) time,sleep(2) x=x+1 n=n-1 def mulgame(n1,n2): global o global x global n begin=time.time() an=int(input("{}×{}=".format(n1,n2))) end=time.time() if end-begin>10: print("시간 초과!") time.sleep(2) x=x+1 n=n-1 else: if an==int(n1)*int(n2): print("정답!") time.sleep(2) o=o+1 else: print("오답!(정답은 {})".format(n1*n2)) time.sleep(2) x=x+1 n=n-1 print("") print("블루의 수학게임에 오신 걸 환영합니다!") time.sleep(2) print("이 게임은, 문제에 주어지는 연산을 풀어서, 답을 맞추는 수학 퀴즈 게임입니다!") print("답은 10초 이내에 입력해야 하며, 10초를 넘기고 입력 시, 오답 처리됩니다!") print("답을 입력하실 때는, 띄어쓰기 혹은 엔터를 누르지 마시고, 무조건 숫자로 입력해주세요!") name=input("문제를 맞추실 분의 닉네임을 입력해주세요!") mod=input("연산을 선택하세요! 덧셈/뺄셈/곱셈") dif=input("난이도를 선택하세요! 쉬움/보통/어려움") if dif=='쉬움': a=10 b=10 elif dif=='보통': a=100 b=10 elif dif=='어려움': a=100 b=100 while n>0: if mod=='덧셈': li1=[] li2=[] for i in range(1,a): li1.append(i) k1=random.choice(li1) for j in range(1,b): li2.append(j) k2=random.choice(li2) game=addgame(k1,k2) elif mod=='뺄셈': li1=[] li2=[] for i in range(1,a): li1.append(i) k1=random.choice(li1) for j in range(1,b): li2.append(j) k2=random.choice(li2) if k1>=k2: game=subgame(k1,k2) else: game=subgame(k2,k1) elif mod=='곱셈': li1=[] li2=[] for i in range(1,a): li1.append(i) k1=random.choice(li1) for j in range(1,b): li2.append(j) k2=random.choice(li2) if dif=='어려움': game=mulgame(k1,random.randrange(11,20)) else: game=mulgame(k1,k2) print("축하합니다! 수학 게임의 {} 난이도 {} 문제를 전부 풀었습니다!".format(dif,mod)) time.sleep(3) if o==30: print("문제를 전부 맞추셨군요! 상장을 드리겠습니다!") f=open("상장.txt",'w') data="[%s게임의 %s난이도를 전부 맞춘 것에 대한 %s님의 상장입니다!]\n" % (mod,dif,name) f.write(data) f.close() else: print("맞은 문제의 개수는 {}개, 틀린 문제의 개수는 {}개 입니다!".format(o,x)) time.sleep(3) print("수고하셨습니다! 안녕!") time.sleep(10)
안녕하세요. 스프링부트3 기반으로 api 프로젝트를 셋팅 중 입니다. 그런데 셋팅 중 physical-strategy 이 제대로 동작하지 않아서 이것저것 해보다가 도움을 구해보고자 글을 올리게 되었습니다. 우선 프로젝트 환경은 스프링부트 = 3.2.2 하이버네이트 = 6.3.1.Final Java = corretto17 입니다. application.yml 은 이렇게 설정되어 있습니다. Entity는 카멜케이스로 작성이 된 상태 입니다. DB는 스네이크로 네이밍이 되어 있는 상태입니다. 그런데 JPA 조회 쿼리를 날리면 계속 카멜케이스로 조회가 되면서 오류가 발생해서 이것저것 해보는데 해결이 안되서 도움을 구해보고자 합니다. 혹시 뭔가 놓치고 있는게 있을까요???
Suspense로 Streaming하여 최적화하기(feat. loading.tsx, error.tsx) 강의를 듣던 중 헷갈리는 부분이 있어서 질문 남깁니다. atferLogin > page.tsx 에서 Suspense를 사용해서 TabDeciderSuspense 를 감싸주고 있는데 TabDeciderSuspense 내부 코드를 보면 위와 같이 prefetch를 통해 postsRecommends관련 데이터를 서버에서 그려서 클라이언트로 하이드레이션 해주고 있습니다. 제가 이해한 바로는 이 장점이 사용자가 해당 페이지를 빠르게 볼 수 있다. 그래서 서스팬스를 사용하지 않았을 땐 로딩바가 뜰 새도 없이 페이지가 잘 보여지게 되는데, 지금은 프리패치로 데이터를 먼저 받아오는것과 서스팬스 풀백을 통해 로딩에 관한 부분을 둘 다 사용하고 있는 걸로 보여서 좀 헷갈려서 질문드려요. 서스팬스로 로딩을 보여주고 싶으면 TabDeciderSuspense에서 프리패치를 사용하는 의미가 없는 거 아닌가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 스프링 빈과 의존 관계에서 설명하셨던 다형성과 Solid에 대한 개념이 여기 19:00 이후의 설명에 나온 것 같은데요. helloController는 memberService에 의존하고 있고 이 memberService를 구현하는 구현체로 memoryMemberRepository, JdbcMemberRepository가 있는데 만약에 저걸 저렇게 작성하지 않고 MemoryMemberRepository를 직접 주입받아 사용하게 되면 시간이 지나 다른 것으로 변경을 해야할 때 기존 코드를 고쳐야하니 다형성의 활용하여 인터페이스를 주입하고 그 인터페이스를 구현한 구현체에서 외부 생성자로 주입을 하는 것이 DI고 저게 객체 지향의 기본이다... 라고 이해하는 것이 맞을까요?
안녕하세요, ARP 관련 질문입니다. 호스트A에서 다른 호스트B(A와 B는 서로 다른 LAN에 있음)로 데이터를 보낸다고 할 때, A=>GW1=>네트워크=>GW2=>B 순으로 데이터가 이동할 텐데요,,(GW구분을 위해 1, 2 붙임) 우선 A에서 GW1로 데이터(프레임)이 전송될 때는 프레임 헤더의 dst는 GW1의 MAC주소, src는 A의 MAC주소로 설정된다고 하셨습니다. 그 후에 GW1에서 네트워크로 데이터를 보낼 때, 프레임 헤더의 dst는 기존 GW1 MAC주소에서 GW2의 MAC주소로, src는 A의 MAC주소에서 GW2의 MAC주소로 변경하고 보내는 건가요? 아니면..프레임 속 패킷만 전달하는 건지.. 궁금합니다.
안녕하세요. 강의 정말 잘 수강했습니다! 블로그를 만들다가 고민이 있어서 글을 올립니다. 카테고리를 추가해서 블로그를 작성하려고 하는데 _posts 폴더 안에 카테고리명으로 폴더를 만들어 글을 업로드 하는 것이 일반적으로 많이 사용하는 방법인지 궁금합니다. 또한 카테고리를 만들면 타이포라에서의 경로설정에 카테고리명을 추가시켜주어야 할 것 같은데 ../images/ $ {category} /$ {filename} 이런 방식으로 파일명처럼 카테고리를 받아오는 방법도 존재하는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 기본적인건데 애매해서 질문드립니다. test코드에서 RepositoryV3와 ServiceV3_3를 @Bean으로 등록하지 말고 실제 RepositoryV3클래스와 ServiceV3_3클래스에 @RequiredArgsConstructor와 각각 @Repository, @Service를 추가해서 빈으로 등록을 해도 똑같이 내부에서 작동하는 것으로 봐도 괜찮을까요? test를 실행했을 때 오류가 발생하지 않아서 질문드립니다.