묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
트랜잭션 범위 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 아래의 update 후 조회 로직에서 왜 select 쿼리가 나가지 않는가에 대한 질문 글들을 읽어보면, 강의의 업데이트 로직상 memberService의 update() 메서드에서 트랜잭션 범위가 넘어가면 기본적으로 영속성 컨텍스트의 내용은 모두 지워져서 이후 조회 로직에서 select가 나가야 맞지만, 추후에 배울 성능 최적화 기능 덕분에 update한 그 Member가 아직 1차캐시에 남아있게 되어 select 쿼리가 나가지 않는다고 이해하였습니다. 그렇다면 여기서 트랜잭션 범위를 넘어가면 영속성 컨텍스트가 비워진다 라고 설명해주셨는데, JPA 기본강의에서는 트랜잭션이 커밋된다고 해서 영속성 컨텍스트가 비워지지는 않는다 라고 설명해주셨습니다. Q1. 그러면 트랜잭션 범위를 넘어가기 전 커밋되는 경우에는 영.컨이 비워지지 않지만, 트랜잭션이 아예 끝나면 영.컨이 비워지는것이 맞을까요? (ex. 메소드 중간에 transaction.commit()을 호춣하거나, 혹은 JPQL 실행 직전에 커밋되는 경우) Q2. 여기서 트랜잭션의 범위가, 메소드 level에 적용되는 @Transactional 에 의해 , 그 메소드가 리턴되기까지를 말하는 것인지 or 아니면 @Transactional이 적용된 update() 메소드에서 컨트롤러로 실행이 옮겨갔기 떄문에 범위를 넘어섰다고 말하는 것인지, 트랜잭션의 범위 라는 개념과, 그 범위를 넘어섰다는 개념을 잘 모르겠습니다. (만약 전자라면, @Transactional이 붙은 메소드 단위로 트랜잭션 범위가 넘어가니, 메소드 호출될 때 마다 영.컨이 비워질 것 같습니다.)
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
profile edit을 cbv로 만드는 방법에 대해 문의드립니다.
안녕하세요 강사님 좋은 강의 열심히 듣고 있습니다. profile_edit 부분을 CBV로 구현해봤는데 이런 형식으로 만드는게 맞는지 궁금합니다.. 기능은 정상적으로 작동하는데 코드가 너무 복잡해보여서 제대로 만든건지 의구심이 듭니다.. @method_decorator(login_required, name='dispatch') class ProfileUpdateView(UpdateView): model = Profile template_name = 'accounts/profile_form.html' form_class = ProfileForm pk_url_kwarg = "id" success_url = settings.LOGIN_REDIRECT_URL profile_edit
-
미해결자바스크립트 제대로 배워볼래?
parseInt parseFloat 질문
안녕하세요 강의듣던중 궁금한게 생겼는데 parseFloat이 정수형 문자열도 Number로 바꿔주는걸로 봐서 parseInt의 기능도 포함하는거 같은데 그럼 parseInt를 쓸 이유가 굳이 없어보입니다. parseFloat과 paserInt를 굳이 구분해서 사용하는 이유가 있나요??
-
미해결자바스크립트 제대로 배워볼래?
charAt 인덱스
안녕하세요. 37분쯤에 str.charAt(1)을 이용해서 문자 e를 가져왔는데 str[1]과 차이점이 아예없어보이는데 제가 이해한게 맞나요? 그냥 편한방식을 이용하면 되나요?
-
미해결자바스크립트 제대로 배워볼래?
STRING 결합
30분쯤에 string 결합부분에서 + 로 문자열 더해주는거랑 concat이용해서 결합하는거랑 차이가 없어보이는데 그냥 개인이 사용하기에 편한방법을 사용하면 되나요??
-
미해결실전! Querydsl
1:N 관계가 여러 개인 Entity를 Fetch join 하는법.
@Entity class A { @Id private Long id @ManyToOne @JoinColumn(name = "b_id") private B b } @Entity class B{ @Id private Long id @OneToMany(mappedBy = "b") private List<A> aList @ManyToOne @JoinColumn(name = "c_id") private C c } Entiy class C{ @Id private Long id @OneToMany(mappedBy = "c") private List<B> bList } 이런식으로 A -> B -> C 가 종속적으로 1:N 관계가 있을 때 하나의 querydsl 문으로 하나의 쿼리로 Table C에 있는 값을 가져오고 싶습니다. 즉 c.bList[0].aList[0].id <- a.id 나올수 있도록 만들고 싶은데 .selectFrom(c) .join(c.bList, b).fetchJoin() .join(b.aList, a).fetchJoin() .fetch() 를 하면 query 생성시 에러가 나옵니다. 혹시 다른 방법이 있나요?
-
미해결야곰의 iOS 프로그래밍
configure 메소드의 DispatchQueue.main
디스패치큐와 메인스레드에 대해 질문이 있습니다 🥲 Request.swift image 메소드 구현부에서 DispatchQueue.main.async { completion(image) }로 메인스레드에서 클로저를 실행하도록 만들어주었었는데 FriendTableViewCell.swift configure 메소드 내부의Request.image 메소드 호출부를 보면 completion 클로저에서도 또 메인스레드를 부르게 되어있어서 아래처럼 같은 일(메인스레드 부르는 일)을 중복으로 하게 되는 게 아닌지 궁금합니다! 제가 이해한 게 맞다면 이렇게 만들어주어야 하는 이유가 있을까요? DispatchQueue.main.async { DispatchQueue.main.async { guard let cell: FriendTableViewCell = tableView.cellForRow(at: indexPath) as? FriendTableViewCell else { return } cell.profileImageView.image = image } }
-
미해결UX/UI 시작하기 : Adobe XD 입문(Inflearn Original)
adobeXD를 활용해서 프론트개발을 할 때...
안녕하세요 어도비XD를 통해 정말 도움이 되었습니다. 궁금한 것이 있습니다. 홈페이지를 만들고 싶은데 어도비XD에서 작업한 것을 Html + CSS +JS로 추출을 할 수 있을까요?
-
미해결파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기
아직도 에러가뜨나보네요?
Traceback (most recent call last): File "D:\anaconda3\envs\section2-2\lib\site-packages\pytube\__main__.py", line 181, in fmt_streams extract.apply_signature(stream_manifest, self.vid_info, self.js) File "D:\anaconda3\envs\section2-2\lib\site-packages\pytube\extract.py", line 409, in apply_signature cipher = Cipher(js=js) File "D:\anaconda3\envs\section2-2\lib\site-packages\pytube\cipher.py", line 43, in __init__ self.throttling_plan = get_throttling_plan(js) File "D:\anaconda3\envs\section2-2\lib\site-packages\pytube\cipher.py", line 405, in get_throttling_plan raw_code = get_throttling_function_code(js) File "D:\anaconda3\envs\section2-2\lib\site-packages\pytube\cipher.py", line 311, in get_throttling_function_code name = re.escape(get_throttling_function_name(js)) File "D:\anaconda3\envs\section2-2\lib\site-packages\pytube\cipher.py", line 297, in get_throttling_function_name caller="get_throttling_function_name", pattern="multiple" pytube.exceptions.RegexMatchError: get_throttling_function_name: could not find match for multiple During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\hansol ju\Desktop\Work\section2\youtube-downloader.py", line 4, in <module> videos = yt.streams.all() File "D:\anaconda3\envs\section2-2\lib\site-packages\pytube\__main__.py", line 296, in streams return StreamQuery(self.fmt_streams) File "D:\anaconda3\envs\section2-2\lib\site-packages\pytube\__main__.py", line 188, in fmt_streams extract.apply_signature(stream_manifest, self.vid_info, self.js) File "D:\anaconda3\envs\section2-2\lib\site-packages\pytube\extract.py", line 409, in apply_signature cipher = Cipher(js=js) File "D:\anaconda3\envs\section2-2\lib\site-packages\pytube\cipher.py", line 43, in __init__ self.throttling_plan = get_throttling_plan(js) File "D:\anaconda3\envs\section2-2\lib\site-packages\pytube\cipher.py", line 405, in get_throttling_plan raw_code = get_throttling_function_code(js) File "D:\anaconda3\envs\section2-2\lib\site-packages\pytube\cipher.py", line 311, in get_throttling_function_code name = re.escape(get_throttling_function_name(js)) File "D:\anaconda3\envs\section2-2\lib\site-packages\pytube\cipher.py", line 297, in get_throttling_function_name caller="get_throttling_function_name", pattern="multiple" pytube.exceptions.RegexMatchError: get_throttling_function_name: could not find match for multiple [Finished in 5.204s]
-
미해결이더리움 디앱(dApp) 개발과 프로젝트, 블록체인 스마트 컨트랙트
강의자료 피피티
강의자료 피피티도 올려주시면 감사하겠습니다.
-
미해결이더리움 디앱(dApp) 개발과 프로젝트, 블록체인 스마트 컨트랙트
노션 워크스페이스 접근권한
노션에 접근권한이 없다고 나옵니다.
-
미해결파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기
강의버전 업데이트좀 해주세요...
강의 버전을 업데이트하실 생각은 없으신가요? 완전 초보라 하나하나 따라하는데 3년전 예제와 버전들이라 헷갈릴때가 많네요...ㅠ 돈주고 산 강의인데 ㅠ
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
컴포넌트 구조 질문
안녕하세요. 강의를 잘 듣고 있습니다. 6:49 부모 컴포넌트에서 데이터를 자식 컴포넌트로 이동하는데 만일 자식끼리 데이터를 useState로 해야 한다면 redux를 이용하면 될까요?
-
미해결우디의 포토샵 강좌
shift+F5+Enter
shift+F5 단축키 사용해서 지우기까지는 되는데 enter를 눌러도 로쏘툴이 그대로 남아 있어요.
-
미해결우디의 포토샵 강좌
사진이 캔버스 안으로 들어가요
사진을 움직이면 캔버스 밖에 있는 부분은 안보이는데 캔버스에 딱 붙은 것처럼 하려면 어떻게 하나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품 목록에서 에러가 뜹니다!
org.hibernate.QueryException: No data type for node: org.hibernate.hql.internal.ast.tree.IdentNode \-[IDENT] IdentNode: 'i' {originalText=i}라는 오류가 나는데, 어떤 것인지 모르겠습니다.
-
미해결Vue.js - Django 연동 웹 프로그래밍 (실전편)
안녕하세요 선생님 추가 질문이요 ㅠㅠ
강의에는 없는 내용인데 vue+django로 웹페이지를 만들다가 궁금증이 생겨서 질문 드립니다. 페이지에 Django DB로 요청하는 데이터가 많다보니 페이지 새로고침할때 속도가 점점 느려지는데, 새로고침 할때마다 DB를 건드리지 않게 html 파일을 만들어서 보여주게 하려면 어떤 방식으로 해야 될까요??
-
미해결<M.B.I.T> 테스트 페이지 만들기! with Django
제출 클릭 시 result로 못넘어가는 오류
모두 정상인데, 여기서만 문제가 생깁니다. 다 체크하고 제출을 누르면, result로 넘어가지를 못하네요. views.py의 best_developer.count때문이라는데, 찬찬히 봐도 잘 모르겠습니다. 혹시 오타때문인가 싶어 노션에 올라온 코드를 그대로 가져다가 돌려봐도 동일한 문제가 발생합니다. 비슷한 질문이 이전에 올라왔지만 답변이 올라오지 않아 제가 다시 질문드립니다..
-
미해결마케터를 위한 구글 애널리틱스 실무
PDF 강의북 요청드립니다
안녕하세요 PDF 강의북 요청드립니다. danbi7474@gmail.com 감사합니다 :)
-
미해결MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
아마존 S3로 이미지 외부저장소에 업로드하기
강의에선 네이버 클라우드를 외부저장소로 사용해서 저는 아마존 S3 버킷 사용할려 하는데 인터넷에 자료가 너무 많이있어서 뭘 따라야 될지 모르겠어서 이 점에 대해서 궁금점과 질문을 남깁니다. (참고로 저는 해외라서 네이버 클라우드는 사용이 불가해서 질문합니다!)