✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다. 💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡 평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. 안녕하세요? 질 좋은 강의 잘 듣고 있습니다. 코드를 치면서 신경쓰이는 부분이 있어서 질문드립니다. vscode에서 @material-tailwind/react component를 가져왔을 때 뜨는 빨간줄 없앨 수는 없나요?
안녕하세요? 항상 재미있는 수업 감사드리며 수업을 너무 잘 듣고 있는 와중 오타로 의심되는 단어가 있어 문의를 드립니다 섹션10 강의에 사용되는 PDF 파일인 9.컬렉션 프레임워크- Map 파일 5페이지 키와 값 목록 조회 부분에 Entry 는 키-값의 쌍으로 이루어진 간단한 객체이다. Entiry 는 Map 내부에서 키와 값을 함께 묶어서 저장할 때 사용한다. 에서 초록색으로 칠이 된 단어가 오타라고 생각 되어 문의 드립니다 감사합니다.
사내 환경에서 외부 인터넷은 프록시를 통해 접속 가능합니다. 백엔드 서버 구축시 npm install 수행시 prisma engine을 다운로드 받을수 없다는 메시지가 나옵니다. Downloading Prisma engines for Node-API for windows [ ] 0%Error: request to https://binaries.prisma.sh/all_commits/acc0b9dd43eb689cbd20c9470515d719db10d0b0/windows/schema-engine.exe.sha256 failed, reason: 엔진을 수작업으로 다운로드 받아 참조 할수 있는 방법이 없을까요
제공 해주신 코드에서 ITEM에는 왜 @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); 이거에 해당하는 코드가 없을까요? @OneToMany(mappedBy = "item", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); 이런 코드가 있어야 1대 다 관계에서 매핑과 주인관계를 결정해줄 수 있지 않나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @transactional을 repository가 아닌 service에 다는 이유가 궁금합니다. transaction 단위가 단순히 db와 왔다갔다하는 것이 아니라, 하나의 비지니스 로직을 의미하기 때문일까요(transaction의 개념을 잘 몰라서 헷갈리는 듯 합니다.)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의에서 컬렉션을 페치 조인했을때 컬렉션의 요소 만큼 결과 리스트가 증가한다 하였습니다. 하지만 아래와 같이 코드를 실행했는데 결과는 한번만 출력이 됩니다. 찾아보니 JPA에서 내부적으로 중복을 없애준다는데 맞는 이야기 인가요?? package jpashop.jpql; import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManagerFactory; import jakarta.persistence.EntityTransaction; import jakarta.persistence.Persistence; import java.util.List; public class Main { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); //트랜잭션 생성 EntityTransaction tx = em.getTransaction(); //트랜잭션 시작 tx.begin(); try { Team teamA=new Team(); teamA.setName("팀A"); em.persist(teamA); Team teamB=new Team(); teamB.setName("팀B"); em.persist(teamB); Member member1=new Member(); member1.setUsername("member1"); member1.setAge(10); member1.setTeam(teamA); em.persist(member1); Member member2=new Member(); member2.setUsername("member2"); member2.setTeam(teamA); member2.setAge(15); em.persist(member2); Member member3=new Member(); member3.setUsername("member3"); member3.setTeam(teamB); member3.setAge(20); em.persist(member3); em.flush(); em.clear(); String query="select t From Team t join fetch t.members where t.name='팀A'"; List<Team> result = em.createQuery(query, Team.class) .getResultList(); for (Team t:result){ System.out.println("member= " +t.getName()+"|members="+t.getMembers().size()); for (Member m:t.getMembers()){ System.out.println("- member ="+m); } } tx.commit(); }catch (Exception e){ e.printStackTrace(); tx.rollback(); }finally { em.close(); } emf.close(); } } String query= "select t From Team t join fetch t.members" ; String query= "select t From Team t" ; 두 결과 사이즈를 찍어도 동일하게 2가 나옵니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 스프링컨테이너는 그러면 단순히 브라우저에서 받은 요청을 컨트롤러에 매핑시켜주어 스프링컨테이너에 등록되어 있는 빈? 이라는 것과 매칭 시켜 존재한다면 viewResolver에 연결시켜 화면을 띄워주고 없다면 오류를 발생시켜 주는 역할인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. File로 문자 파일 읽기를 복습하다가 I/o스트림 의 '스트림'의 뜻를 몰라서 질문을 드립니다. 9:30 초 부분에서 "I/O 스트림이 아니라 람다와 스트림에서 사용하는 스트림이다"라고 하였는데 , 람다와 스트림에서 사용하는 스트림은 아직 배우지를 않아서 모른다 치더라도, I/O 스트림은 저의 생각으로는 여기까지 공부했다면 알아야 하는것 아닌가 라는 생각에 갑자기 멍해지더라고요. 혹시 I/O스트림의 정확한 정의와 뜻을 알켜주실수있으신가요? 아니면 어느 부분을 복습 해야지 I/O스트림에 대해서 정확히 알 수 있을까요? 답변 부탁드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 버그인지 궁금합니다..영상보고 차근차근 따라하다가 해결아닌 해결을 했는데 이게 정상적인건지 궁금합니다. 처음에 첫번째 사진과 같은 스프링부트 프로젝트를 설정하고 build.gradle을 오픈하니 2,3번째 사진과 같은 에러가 발생했습니다. 해결전 설정은 아래와 같았습니다. 이전에 이걸로 질문글 올렸는데 java 버전을 17버전으로 설치해보라고 하셔서 jdk 17버전으로 설치했습니다. 설치후 Project Structure에서 sdk를 변경해주었습니다. 그리고 build.gradle 파일에서 다음과 같이 전 후 languageVersion = JavaLanguageVersion.of(21) 을 languageVersion = JavaLanguageVersion.of(17) 로 변경까지 해준 후에야 gradle 파일을 리로드하니까 되더라구요. 그런데 여기서 이제 궁금한것은 다시 설정을 이렇게 바꾼후에 build.gradle 파일을 리로드해도 되더라구요? 심지어 아래 사진처럼 Setting -> Build -> BuildTools -> Gradle에 있는 Gradle JVM이 지금 JAVA_HOME으로 되어있는데 jdk 22버전으로 되어있습니다. 또한 JAVA_HOME 경로또한 아래와 같습니다. 보시다시피 jdk 22버전 경로가 저장되어있죠. 그러니까 전부 jdk 22버전으로 되어있는데 jdk 17버전 설치 후 build.gradle에 있는 languageVersion = JavaLanguageVersion.of(17) 이것만 17버전으로 바뀌었을뿐인데 정상적으로 로드가 되는건가요? JAVA_HOME같은 경로도 17버전 폴더로 모두 변경해야 동작할줄 알았는데요..
강의 : 스프링 데이터 JPA와 DB 설정, 동작확인 7분 20초 환경설정시에 //JUnit4 추가 testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core" } 를 추가하라고 하셔서 추가했는데, 이 강의에서는 Junit5로 설정하라고 하셔서요.. 그럼 import할때 오류가 나는데 어떻게 해야할까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 왜 새로운 객체(MemoryMemberRepository memberRepository = new MemoryMemberRepository();)를 써서 clear을 하죠?? 멤버서비스를 통해 join한 멤버리포지토리랑 새로만든 멤버리포지토리가 달라서 clear안되는 거 아닌가요?? 결과적으로 클리어 되기는 했어요
https://drive.google.com/file/d/1xCfH-VjJWp4I252km26K5kFyBZNY3ZaS/view?usp=sharing junit4는 assertThat을 지원하지 않는다고 하여 junit5로 하고 실행하였더니 h2데이터베이스 연결문제가 발생하는 것 같습니다. h2는 정상적으로 설치하여 잘 작동됩니다. 어디가 문제일까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 회원-주문 관계에서 하나의 회원은 여러 주문을 할수있어서 1:N이라 하셨는데 서버 관점에서 보면 여러 회원이 존재하기 때문에 N:M으로 설계해야 하지 않을까요?? 고객 한명당 트랜잭션 관점으로 설계를 해야하는건지 기준이 따로 있는지 궁금합니다..
Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)
안녕하세요! 좋은 강의 잘 들었습니다! 강의 중 내용에 관한 질문이 있어 여쭙니다. 현업에서 작은 사이드 프로젝트를 운영중인데 기존에는 Firebase를 사용하다가 SQL DB가 필요해 Supabase로 이전을 고려하다 강의를 듣게 되었습니다. 다름이 아니라 Supabase에서도 REST API 형태를 지원하는 것으로 알고 있는데 강의 내용을 보면, REST API 형태를 사용하는 것이 아닌, 직접 Supabase의 Database에 CRUD 하는 것으로 여겨집니다. 보안이나 코드의 유지 / 보수, 또는 프론트 개발자와 백엔드 개발자의 역할 분리 등 여러 측면을 고려하였을 때 REST API 형태가 아닌 프론트 코드 내에 직접 CRUD 코드가 구현된 이유가 무엇인지 궁금합니다.
npm run start:dev 명령어를 실행을 할 시 아래처럼 타입 에러가 나오고 있는데, 어떻게 해결을 해야 할까요? ㅠㅠ error TS2339: Property 'where' does not exist on type 'string | number | bigint | boolean | [] | { [K in keyof A]: Exact<A[K], any>; }'. Property 'where' does not exist on type 'string'. 13 where: args.where, ~~~~~ src/prisma.extension.ts:25:23 - error TS2339: Property 'where' does not exist on type 'string | number | bigint | boolean | [] | { [K in keyof A]: Exact<A[K], any>; }'. Property 'where' does not exist on type 'string'. 25 where: args.where, ~~~~~
강의 들으면서 제로초님 RTK GitHub 코드도 보고 있는데요. RTK는 immer가 내부적으로 사용되어 state를 써도 불변성을 자동으로 처리하는 걸로 알고 있습니다. 그런데 https://github.com/ZeroCho/react-nodebird/blob/master/toolkit/front/reducers/user.js 에선 리듀서 마다 state를 쓰는 곳이 있고 draft를 쓰는 곳이 있어서 질문합니다! 역할은 같지만 단지 코드를 명시적이고 의도를 나타내기 위해 구분해서 쓰는 것이라고 생각되는데 구분해서 쓰는 다른 이유가 있는지 궁금합니다.