묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
member.getTeam()과 team.getMember()에 대해 질문드립니다.
안녕하세요. member.getTeam()과 team.getMember()의 동작원리에 대해 이해가 되지않는 부분이 있어서, 구글링을 통해 아래와 같이 정리해보았는데 이렇게 이해하는게 맞을까요? member.getTeam()member.getTeam()을 호출하면, JPA는 내부적으로 MEMBER테이블에서 현재 member의 JoinColumn으로 명시했던 TEAM_ID값(=외래키값)을 가져와서 TEAM테이블의 기본키를 참조하여 해당 Team 데이터를 조회하고, Team 객체를 생성해서 반환한다.1. member.getTeam()이 호출되면 내부적으로 MEMBER테이블에서 현재 member의 JoinColumn으로 명시했던 TEAM_ID값(=외래키값)을 가져온다.2. Team테이블의 기본키가 이 외래키와 일치하는 Team 데이터를 찾는 SQL쿼리를 실행한다.3. 조회된 데이터로 Team객체를 생성해서 반환한다. team.getMember()team.getMember()를 호출하면, JPA는 내부적으로 TEAM테이블에서 현재 team의 기본키값을 가져와서 MEMBER테이블의 외래키를 참조하여 해당 Member 데이터를 조회하고, Member객체를 생성해서 기존 비어있는 리스트에 추가한다.1. team.getMember()가 호출되면 내부적으로 TEAM테이블에서 현재 team의 기본키값을 가져온다.2. Member테이블의 외래키인 TEAM_ID가 이 기본키와 일치하는 Member 데이터를 찾는 SQL쿼리를 실행한다.ex) SELECT * FROM MEMBER WHERE TEAM_ID = 1;3. 조회된 데이터로 Member객체를 생성해서 기존 비어있는 리스트에 추가한다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
85page 오탈자
(85 page)제대로 깊은 복사가 되어 ret을 수정하더라도 vector v->array v는 수정되지 않는 것을 볼 수 있습니다.😉
-
미해결문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!
Continue 질문입니다
for k in range(10): if k < 5: continue print(k) elif k == 7: break이렇게 했을때는 왜 5,6이 아니라 아무것도 출력이 안되나요?
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
[CSS 01-2-2] flex-wrap 한 칸 띄고 다음 줄로 넘어가는 현상...
연습 삼아 작성해 봤는데 flex-wrap: wrap;을 적용한 박스 내부 아이템들이 한 줄 줄바꿈한 것처럼 보입니다... 아래 코드입니다. <!DOCTYPE html> <html lang="ko"> <head> <title>flex-wrap 연습</title> <style> * { box-sizing: border-box; margin: 0px; padding: 0px; } .container1 { width: 300px; height: 300px; display: flex; flex-direction: row; justify-content: space-between; background-color: skyblue; margin-bottom: 10px; gap: 10px; } .item { width: 90px; height: 100px; border: 1px solid black; border-radius: 10px; } .container2 { width: 300px; height: 300px; display: flex; flex-direction: row; justify-content: space-between; flex-wrap: wrap; background-color: tomato; gap: 10px; } </style> </head> <body> <div class="container1"> <div class="item"></div> <div class="item"></div> <div class="item"></div> <div class="item"></div> <div class="item"></div> <div class="item"></div> </div> <div class="container2"> <div class="item"></div> <div class="item"></div> <div class="item"></div> <div class="item"></div> <div class="item"></div> <div class="item"></div> </div> </body> </html>
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
데이터 페칭 로직의 분리 방식이 궁금합니다.
안녕하세요, 강의 잘 듣고 있습니다. 하나의 페이지에서 두 개 이상의 데이터를 불러와야 할 때, 리액트에서 그래왔듯이 자연스럽게 데이터를 페칭하는 api 로직을 services/api 폴더로 분리할 것이라고 생각했는데요, 강의에서는 데이터에 따라 데이터를 페칭하여 렌더링하는 전체 로직을 각각의 컴포넌트로 분리하는 것을 보고 질문 드리게 되었습니다. 데이터를 기준으로 관심사를 분리할지, 기능을 중심으로 분리할지는 선호의 영역인가요? 아니면 어떤 사전 렌더링의 특수성으로 데이터 페칭 로직은 따로 분할하지 않는 것인가요? 그러면서 동시에 각각의 컴포넌트(AllBooks, RecoBooks)를 별도의 components 폴더로 분리하지 않는 이유도 궁금합니다! 곧 넥스트를 사용한 프로젝트에 참여하게 되는데 폴더 구조를 어떻게 가져가야 할지 고민이 많습니다 ㅠㅠ 팀원들이 모두 넥스트는 처음이라 아직 이렇다 할 기준이 없어서요.정답이 있는 문제는 아니겠지만 조언 부탁드립니다!!
-
해결됨핵심만 골라배우는 CSS3
피그마 활용하기 부분에 대해 질문있습니다.
안녕하세요 CSS 강의를 결제해서 듣고 있습니다. 피그마 활용법 - 파일 불러오기 부분에서 파일은 어디서 받을 수 있나요?
-
해결됨2시간으로 끝내는 코루틴
Spring MVC에서 corountine 활용 방안
안녕하세요. 저는 오랜기간 동안 Java, Spring을 기반으로 웹 프로그래밍 해왔고 이번에 일부 프로젝트를 코틀린 + Spring을 기반으로 구현을 검토하게 되어 해당 강의를 듣게 되었습니다.사실 Java, Spring 기반이다 보니 동기방식의 프로그램에 익숙해져 있고 러닝커브나 디버깅의 어려움, DB등의 관련 라이브러리들이 아직 안정화 수준이 아니라 판단하여 WebFlux 도입을 꺼려왔고,일부 RestTemplate 호출등의 병렬 처리가 필요할 경우 CompletableFuture에 별도 ThreadExecutor를 사용해 처리하는 방법을 주로 사용해 왔습니다.이번 신규 프로젝트도 우선은 Spring 프레임워크를 사용하기 때문에 Webflux가 아닌 Spring MVC 기반의 동작이 될 예정인데요,그러다 보니 강의를 다 들었지만 coroutine을 어떻게 활용할 수 있을지 감을 잘 못잡은 상태입니다.가령 RestTemplate이나 RestClient 등의 동기식 block 기반의 통신 시 호출 부를 CoroutineScope(Dispatchers.Default).async { } 으로 감싸서 호출을 하게 되면 두개의 API가 각각 1초가 걸린다면 1.05 정도로 가능하겠지만 이런 패턴은 기존 자바에서 CompletableFuture로 충분히 가능했던더라 coroutine을 잘 활용했다고 보는게 맞는지 궁금한데요,coroutine의 장점을 활용하려면 결국 API 통신 같은 경우 가능하면 webclient나 ktorClient 등을 통해 non-block으로 변경해서 처리를 해야 하는건지 궁금하고, 코틀린으로 웹애플리케이션을 구현한다고 했을때 spring을 사용하면 webflux 도입은 약간 필수? 같은 개념으로 봐야 하는건지 궁금합니다.(강의 마지막 Continuation 예제에서 repository call을 두번 하는 부분도 non-block으로 DB처리가 가능해야 의미있는 coroutine 동작이 가능한거겠죠??) 질문을 요약하자면,Spring MVC 구조에서 block 기반의 로직 처리 시 CoroutineScope(Dispatchers.Default).async { } 으로 감싸서 호출하는 구조가 coroutine의 장점을 활용한 방식이 맞을까요?1번이 장점이 아니라면 non-blocking으로 처리 가능한 webclient나 ktorClient을 사용해야 해야 할까요?보통 Spring에서 coroutine을 활용하려면 webflux를 사용하는게 기본일지? 혹시 다른 활용 방안은 없을지?입니다.감사합니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Retiming 관련 질문입니다.
[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) 안녕하세요 맛비님, 훌륭한 강의 정말 잘 듣고 있습니다. 다만 강의를 듣던 중, 헷갈리는 부분이 생겨 질문 남기게 되었습니다. 답변 해주시면 정말 감사하겠습니다. FPGA 22장 21분 쯤 Retiming에 관해 설명해주셨는데, 이 부분에서 중간에 F/F를 추가함으로써 timing violation을 해결하는 과정을 Retiming이라고 하셨습니다. 그런데 Retiming에 대해 공부를 하던 중, Retiming은 레지스터의 위치를 변경시키는 방법이고, 레지스터를 추가시키는 것은 pipielining이라는 글을 보게 되었습니다. 맛비님께서 설명해주신 것처럼 F/F을 추가하여도 Retiming인지 여쭈어 보고 싶습니다.훌륭한 강의 정말 감사합니다. 답변해 주시면 감사하겠습니다.
-
미해결Next + React Query로 SNS 서비스 만들기
인터셉팅 라우팅 폴더 위치 경로 지정 관련 질문
우선 인터셉팅 라우팅을 버튼, 링크 등을 통해 이동 시 인터셉트된 page를 렌더링하고 새로고침이나 주소창을 통해 이동했을 때 정상(?)적인 page를 렌더링하는 것으로 이해했습니다. 인터셉팅 라우팅 폴더를 만들어야 할 위치가 궁금해서 /test1/test2 에서 Link태그를 통해 /test1 으로 이동할 때 새로고침 시 표시 되는 test1과 intercepted test1을 구분하는 코드를 작성했습니다 "(.)test1" 폴더 위치를 바꿔보면서 어떻게 동작하는 지 확인해보는 과정에서 이해가 되지 않는 부분이 있어서 질문드립니다. 이 폴더구조로 해야 작동하고, 이 폴더 구조는 작동이 안되는게 이해가 안됩니다.뭔가 (.), (..), (..)(..) 이런식으로 경로 지정이 가능하면 인터셉팅 라우팅 폴더는 어디 있든 상관없어도 될 것 같았는데... 아래 폴더구조가 작동을 안되니 디게 혼란스럽네요 ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 반례
정확히 선생님이 알려주신 반례를 고려하지 못해서 계속 틀렸었네요. 이 반례를 생각못해서 30분 정도 헤매다가 강의를 듣고 알았습니다..이런 반례를 잘 생각해낼 수 있는 팁이 있을까요?? 참고틀린코드https://www.acmicpc.net/source/share/0041d7ec240f4070b3803327cefdc672맞은 코드 (불 방문 배열 0 체크)https://www.acmicpc.net/source/share/7aaf0dee6f534ea6b896145d17a81a14
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
오픈 그래프 적용이 안되네요..
오픈 그래프가 아무것도 적용이 되지 않는데 문제를 못 찾겠습니다..index.html 에서<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <link rel="icon" type="image/svg+xml" href="/favicon.ico" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>감정일기장</title> <meta property="og:title" content="감정 일기장" /> <meta property="og:description" content="나만의 작은 감정 일기장" /> <meta property="og:image" content="/thumbnail.png" /> </head> <body> <div id="root"></div> <script type="module" src="/src/main.jsx"></script> </body> </html> 으로 작성을 하고 배포를 했는데 오픈 그래프 3가지 중 아무것도 적용이 안되네요..카톡말고도 티 스토리 블로그 글쓰기에서도 적용이 안 되는걸로 보아 캐시 문제는 아닌 것 같은데.. 오타가 있는지도 다른 분들 코드 보면서 비교해봤고 이미지도 public 폴더에 잘 있습니다..뭐가 문제일까요?..배포링크: https://emotion-diary-dfgr3t44x-watnus-projects.vercel.app/배포링크에서 썸네일 확인:https://emotion-diary-dfgr3t44x-watnus-projects.vercel.app/thumbnail.png
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
문제 수정이 안 된 것 같습니다.
https://www.inflearn.com/courses/lecture?courseId=326750&unitId=72712&tab=QnA&category=questionDetail&q=672478 다른 분이 글을 올리시긴 했는데 입력이 "문제에 첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다."라고 적혀 있지만 예시 입력에도 공백이 있고, next()를 사용하면 틀리는 걸 보니 공백이 있는 문자열로 수정되어야 할 것 같습니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
close() 에 실패한 자원의 처리
finally { if ( rs != null ) try{rs.close();}catch(Exception e){} if ( pstmt != null ) try{pstmt.close();}catch(Exception e){} if ( conn != null ) try{conn.close();}catch(Exception e){} }자원을 해제하는 도중 예외가 발생하면 나머지 자원이 해제되지 않을 수 있기에 다음과 같은 try 문으로 감싸주어야 한다고 이해했습니다. 그러면 예외가 발생해 해제에 실패한 자원에 대해서는 다시 close()를 하거나 다른 조치를 취하지 않아도 메모리 누수나 다른 문제가 없는 건가요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강연장 부탁드립니다
안녕하세요, 혹시 수강기한 연장 가능할까요?회사 다니면서 시험 준비를 하려니 강의 수강을 못했네요...연장해주시면 정말 감사드리겠습니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
fail() 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.fail(); 부분에서 오류가 뜨고 이텔릭체로 바뀌지 않습니다. 왜 그런가요?package hello.hello_spring.service; import hello.hello_spring.domain.Member; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; class MemberServiceTest { MemberService memberService = new MemberService(); // 테스트케이스에서는 메서드명 한글로 적어도 된다 @Test void 회원가입() { // given Member member = new Member(); member.setName("hello"); // when long saveId = memberService.join(member); // then(검증) Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test // 예외처리(테스트케이스에서는 정상적으로 작동하는거도 좋지만 예외 처리가 더 중요하다) public void 중복_회원_예외() { // given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); // when memberService.join(member1); try { memberService.join(member2); fail(); } catch (IllegalStateException e) { } // then } @Test void findMembers() { } @Test void findOne() { } }
-
해결됨웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
실습 2-9] request 수정하고 send를 눌렀는데 검색이 되지 않습니다.
GET /insecure_website/index.php?page=view&idx=14%20and%20length((select+jumin+customer_info+where+id='admin'))=14그 이전까지는 잘되었는데 이부분 부터 계속 안됩니다. 어디가 문제일까요?
-
미해결코딩으로 학습하는 리팩토링
리팩토링 10. 함수를 명령으로 바꾸기 강의 부분에서 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.리팩토링 10. 함수를 명령으로 바꾸기 강의에서 6:00 부분에서 설명하시는게 전략패턴 말씀하시는 것 같은데 GoF의디자인 패턴 강의에서 설명해주신 것일까요?? 아직 디자인 패턴 강의는 들어보지 않아서 강사님께서 기억나시냐고 물어보시는게 어떤 부분인지 궁금해서 질문드립니다.
-
해결됨절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스
강사님~ 오디오 파일 관련해서 질문있습니다!
강사님~ 너무 재밌게 강의를 듣고 있습니다.궁금한게 하나 있는데 섹션 6번에서 '스파크 이펙트 표현' 강의를 완강 후'Audio 기초 사용법' 강의로 넘어갔는데 오디오 파일이 없어서...혹시 오디오 리소스는 어디서 다운 받을 수 있을까요?혹시나 제가 수업자료를 놓친건가 싶어서 앞 강의를 다시 돌려봤는데 어디서 받아야하는지 잘 모르겠습니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
9.2 useReducer 체크박스 관련질문입니다.
문제상황: 수정을 위해 체크박스를 체크해도 아무 변화도 생기지 않는 상황reducer 내용 const reducer = (state, action) => { switch(action.type){ case 'CREATE': return [action.data,...state]; case 'UPDATE': return state.map((item) => { console.log(action, item.id, item.isDone) return item.id === action.targetId ? {...item, isDone: !item.isDone} : item }) case 'DELETE': return state.filter((item) => item.targetId !== action.targetId) default: state } } const onUpdate = (targetId) => { dispatch({ type:"UPDATE", targetId }) } 예상 문제: console.log(action.targetId, item.id, item.isDone)을 해본결과action.targetId가 내가 원하는 id값만 가져오는것이 아닌 저렇게 객체 전체를 가져오기 때문에 action.targetId와 item.id가 일치하지 않아 체크가 되지않는 현상인것 같습니다. 어디를 보면 좋을지 및 무엇을 수정해야하는지 알려주시면 감사하겠습니다.
-
미해결UDS 진단통신을 통한 SW 업데이트(SW ReProgramming)
OTA 관련 기능 질문
안녕하세요, 마지막 강의에서 궁금한 점이 있어 질문을 드리게 되었습니다.OTA에서도 다운로드 순서를 말씀주셨는데, OTA 과정에서도 ECU Reset을 수행한다면, 해당 동작은 차량 시동을 끈(MCU off?) 후에 진행하게 되는 것인가요? 이중 메모리 구조를 이용할 때가 차량 주행 중에 SW Update 하기 위해서로 이해했는데, 그렇다면 SW Reprogramming 과정에서 ECU Reset은 주행 중에 가능한 것인가요?SW Update 이후의 A,B Swap을 MCU에서 수행한다고 이해했습니다. 해당 기능은 MCU가 Off(시동 OFF?) 후에 Swap이 진행되고, 다시 On(시동) 시키면, 새롭게 업데이트 된 SW가 담긴 메모리가 활성화 되는 것 일까요?기본적인 유선 통신 (SW Update)에서는 차량 정지 시에 진행한다고 들었는데, 시동 OFF/On 두 상태에서 SW Update가 가능한 것인가요? 마지막 부분까지 강의를 수강했는데, 지식을 쌓는데 큰 도움이 되었던 유익한 강의였습니다!욕심이지만,, 또 가능한 다른 강의도 open 하셔서 더 많은 부분을 배워갔으면 좋겠습니다!감사드립니다!