학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. import관련해서 문제가 생겼습니다.. jakarta는 아예 안됩니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 현재 회원 엔티티 시점 Member(회원) 1 : N Pet(반려견) 일대다 관계인 상태입니다. -Member(회원) 엔티티 -Pet(반려견) 엔티티 연관관계 설정해 둔 모습입니다. -이게 문제가 되고 있는 서비스 로직입니다. MemberRepository에서 회원의 role(역할)을 찾은 후, role(역할)이 CUSTOMER(고객)인 경우 해당 회원의 정보와 갖고 있는 List<>형태의 pet을 한 번에 갖고 와서 DTO로 변환 해서 반환하려고 합니다. 실제로 어떻게 리포지토리에서 조회하고 있는지 보여드리겠습니다. -role(역할)이 CUSTOMER(고객)인 경우 findByCustomerId()로 위와 같이 회원과 pet을 한 번에 조회하고 있습니다. (실제 쿼리문이 나가는 것을 봤을 때도 fetch join 쿼리로 나가서 pet이 프록시가 아닌 실 객체 데이터로 조회되는 것을 확인했고, 디버깅도 해봤는데 pet 컬렉션에 데이터가 있는 것도 확인했습니다.) 다음으로 member 엔티티를 DTO로 어떻게 반환하는 지 보여드리겠습니다. -Pet(반려견)을 PetResponse라는 DTO로 다시 바꿔서 반환 시켜주려고 하고 있는 상황이고 -이게 PetResponse 입니다. 여기까지가 현재 저의 문제가 되고 있는 코드와 동작 방식입니다. 현재 뜨고 있는 오류는 lazyinitializationexception 에러가 발생하고 있습니다. 알아보니 트랜잭션 주기 안에서 컬렉션을 조회하는 것이 아니라, 하이버네이트 세션이 끝난 후 영속성 컨텍스트가 사라진 상태에서 엔티티가 갖고 있는 컬렉션(pets)을 조회하게 돼서, 트랜잭션 내에 존재한 영속성 컨텍스트 내의 pets를 조회하는 것이 아닌 새로운 영속성 컨텍스트에서 조회를 하게 돼버려서 실 객체 데이터가 조회되는 것이 아닌 프록시 객체가 조회가 되고 있다는 내용으로 이해했습니다. 그래서 제가 여태 해본 방법으로는, 서비스 레벨의 findById(long id) 메서드에서 member 정보만 따로 조회하고 pet만을 따로 각각 조회한 후 dto로 반환 해보기 (예: memberRepository.findByid()로 회원만 조회, petRepository.findbyCustomerId()로 pet만 따로 조회 후, new MemberResponse.GetCustomer()로 반환 -> 안됨.(X) 현재 메서드 레벨 위에 작성되어 있는 트랜잭션 어노테이션이 readOnly = true로 읽기 전용이면 pets를 초기화 할 수도 없을 수 있다길래 readOnly = true 옵션도 빼 보기 -> 안됨.(X) yml 설정 파일에 spring: jpa: open-in-view: true 옵션 설정 해보기 -> 안됨.(X) Member(회원) 엔티티에 읽기 전용으로 있는 List<> pets를 지연 로딩이 아닌 즉시로딩으로 바꾸기. -> 이 경우에만 됨.(O) Hibernate.initialize(member.getPets()); 을 사용해서 컬렉션 강제 초기화 하기 -> 안됨.(X) 현재 이렇게 까지 시도해 봤고 pets를 즉시 로딩으로 바꾸는 경우 말고는 아예 되지 않는 상황입니다. 보통 저와 같은 경우 간단하게 해결되는 문제던데 스택오버플로우와 구글의 힘을 빌려 검색해서 시도해 본 결과 해결되지 않았습니다.. 제가 어떤 실수를 하고 있는지, 뭐가 문제인지 봐주시면 감사하겠습니다.!! 추가 설명이 필요하거나 깃허브 주소라도 필요하면 댓글로 남기겠습니다!
안녕하세요, 강의 2.14에서 이전에 SSR로 만들었던 페이지를 SSG로 변경하는 것 관련하여 질문이 있습니다. SSG에서는 빌드타임에 페이지를 생성하기 때문에 쿼리스트링을 불러올 수 없어서 SSG로 만들고 싶다면 쿼리스트링 가져오는 부분은 클라이언트 사이드쪽에 코드를 추가해주면 가능하다고 하셨는데, 그럼 이 프로젝트의 검색페이지 같은 경우는 SSR를 사용하는게 나은지 SSG를 사용하는게 나은지 궁금합니다. 둘다 장단점이 있기 때문에 개발자의 판단에 달려있는걸까요? 쿼리스트링을 사용하는 페이지에서 어떤 경우에는 SSR로 만드는게 낫고 어떤경우에는 SSG로 만드는게 나을지 그 기준에 대해서도 궁금합니다. 강의 너무 잘 듣고 있습니다. 감사합니다. ++ 다른 비슷한 질문에 답변 다신 것 읽어봤는데 SSG는 식당에서 반찬을 먼저 주는 것과 같다고 말씀하셔서 이해가 잘되었습니다. 근데 SSG의 단점이 최신 데이터의 반영은 어려운것이기 때문에 데이터가 잘 변경되지 않는 페이지에서 사용하는 것이 좋다고 하셨는데, 그럼 검색페이지의 검색결과가 계속 바뀐다고 가정하면 (책 데이터가 계속 추가됨) SSR을 사용하는게 나은가요? 아니면 그 부분은 어차피 클라이언트 사이드에서 쿼리스트링 추가해서 다시 새로 불러오기 때문에 SSG로 사용해도 무방한가요? 거의 다 이해한 것 같은데 조금 헷갈리네요 ㅎㅎ
안녕하세요 선생님 const nextState = formReducer(state, {type : "VALIDATE", validate }) 로 nextState를 정의하셨는데 애초에 SET_TOUCHED_ALL 디스패치가 실행되면 리렌더링 VALIDATE 디스패치가 실행되면 또 리렌더링 되어 onSubmit 함수가 정상 동작해야 될거 같은데.. 그렇게 생각하면 안되는 이유가 궁금합니다.!
안녕하세요 I/O 흐름을 제가 제대로 이해했는지 궁금합니다... I/O class : byte class / String class 로 나뉨 byte class output 위주로 정리 기본스트림(FileOutputStream)을 사용하여 1byte씩 loop를 사용해서 쓰기 byte array 사용하여 배열 사이즈 만큼 쓰기 보조스트림(BufferedOutputStream)을 사용하여 쓰기 String class 기본스트림(FileOutputStream) 과 String.getBytes(charset)을 사용하여 직접 인코딩하여 쓰기 보조스트림(OutputStreamWriter : 인코딩 대신 처리)사용하여 쓰기 FileWriter(FileOutputStream을 내부에서 생성 / OutputStreamWriter 상속) 사용하여 쓰기 질문1) 위의 흐름이 맞을까요? 질문2) String class 는 인코딩을 해야하지만 byte class 인코딩을 하지 않는다. 두가지 질문이 맞을까요?
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Comment 엔티티 생성시 연관관계를 Long articleId로 해줌으로써 Article 엔티티와 연관관계를 맺어준것일까요? Article과 Comment는 1:N 관계로 보이는데, comment 테이블 설계 당시 Article에 대한 외래키 관리를 comment 테이블에서 안해준 이유도 궁금합니다.
🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢 ) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
/book/3만 " 존재하지 않는 페이지 입니다."라고 뜨는데 이유를 잘 모르겠습니다. 아래는 npm run build 결과입니다. > section02@0.1.0 build > next build ▲ Next.js 15.1.6 ./src/components/book-item.tsx 17:7 Warning: Using <img> could result in slower LCP and higher bandwidth. Consider using <Image /> from next/image or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element ./src/pages/book/[id].tsx 51:9 Warning: Using <img> could result in slower LCP and higher bandwidth. Consider using <Image /> from next/image or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element ./src/pages/search/index.tsx 20:6 Warning: React Hook useEffect has a missing dependency: 'fetchSearchResult'. Either include it or remove the dependency array. react-hooks/exhaustive-deps info - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/app/api-reference/config/eslint#disabling-rules ✓ Linting and checking validity of types Creating an optimized production build ... ✓ Compiled successfully ✓ Collecting page data 인덱스 페이지 렌더링 fetchOneBook error Error: 서버 상태 오류 at u (.next/server/pages/book/[id].js:1:634) at async x (.next/server/pages/book/[id].js:1:873) ✓ Generating static pages (8/8) ✓ Collecting build traces ✓ Finalizing page optimization Route (pages) Size First Load JS ┌ ● / (ISR: 3 Seconds) 1.05 kB 95.7 kB ├ /_app 0 B 94.6 kB ├ ○ /404 322 B 94.9 kB ├ ƒ /api/hello 0 B 94.6 kB ├ ƒ /api/revalidate 0 B 94.6 kB ├ ● /book/[id] (5318 ms) 705 B 95.3 kB ├ ├ /book/3 (5072 ms) ├ ├ /book/1 ├ └ /book/2 └ ○ /search 1.11 kB 95.7 kB + First Load JS shared by all 96.9 kB ├ chunks/framework-a4ddb9b21624b39b.js 57.5 kB ├ chunks/main-d4c20200ddabac7f.js 33.7 kB └ other shared chunks (total) 5.68 kB ○ (Static) prerendered as static content ● (SSG) prerendered as static HTML (uses getStaticProps) (ISR) incremental static regeneration (uses revalidate in getStaticProps) ƒ (Dynamic) server-rendered on demand // book/[id].tsx // index.tsx
안녕하세요, 인프런 AI 인턴입니다. 장우진님, 리액트 네이티브로 웹앱을 구현한 후에 구글 로그인 기능을 추가하고자 하신다면 파이어베이스를 통해 이 기능을 제공할 수 있습니다. 파이어베이스는 웹과 모바일 애플리케이션 모두를 지원하는 강력한 플랫폼입니다. 리액트 네이티브에서는 파이어베이스의 Authentication 모듈을 사용하여 쉽게 구글 로그인 기능을 구현할 수 있습니다. 과정은 일반적으로 다음과 같습니다: 1. 파이어베이스 콘솔에서 해당 프로젝트에 구글 로그인 기능을 활성화합니다. 2. 리액트 네이티브 앱에 필요한 파이어베이스 SDK를 설치하고 구성합니다. 3. 파이어베이스 Authentication 모듈을 사용하여 구글 로그인 기능을 구현합니다. 구글 로그인 기능은 웹앱에서 구현 가능하며, 리액트 네이티브에도 동일하게 적용할 수 있다는 점에서 효율적인 개발이 가능합니다. 구체적인 코드 및 구현 방법은 다음의 문서를 참조해 보세요: - 파이어베이스 웹으로 구글 로그인 구현하기 프로젝트의 구체적인 요구 사항에 따라 추가적인 설정이나 코드가 필요할 수도 있습니다. 따라서 더 자세한 구현 방법은 위의 공식 문서나 관련 블로그 글을 참고하시길 바랍니다. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다. 이런 너의 대답은 알겠어! 그런데 내가 궁금한거는 강의에서는 파이어베이스 프로젝트를 만들때 웹 애플리케이션으로 만들어서 진행했는데 구글 로그인 환경도 웹 애플리케이션으로 진행할 수 있는지 물어보는거야! 아니면 안드로이드 환경으로 프로젝트를 다시 만들어야해? reactnative야!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] Class clazz = String . class ; // 1. 클래스에서 조회 Class helloClass = Hello.class; 위 방식으로 클래스를 조회하는것을 보면 각각의 클래스에 Class라는 static변수에 접근하는 것으로 보이는데 이는 컴파일 시 모든 클래스들에 직접 입력하지 않아도 Class라는 static변수(private static Class class)가 자동으로 생성되기 때문인가요?
연관관계 매핑: 객체의 참조와 테이블의 외래키를 매핑하고, 객체간의 관계(다대일관계)와 테이블간의 관계(외래키-기본키관계)를 매핑하는것. 객체간의 관계에서는 Member객체는 team필드를 통해 Team객체를 참조한다. 테이블간의 관계에서는 MEMBER테이블의 외래키(TEAM_ID)를 통해 TEAM테이블을 참조한다. 이렇게 객체와 테이블은 구조적으로 다르기 떄문에 객체간의 관계와 테이블간의 관계를 동일하게 해주기 위해 연관관계 매핑이 필요하다. team필드를 통해 Team객체를 참조하던것을 외래키(TEAM_ID)를 통해 기본키(id)를 참조하도록 변경한것이라고 생각하면된다. 이렇게 이해하고 정리해봤는데 이게 맞을까요?
다음과 같은 양식으로 남겨주세요. 질문을 한 배경 : 질문내용 : 섹션5 강의에서 넬리파이로 배포하는 방법을 듣던중...강사님과 화면이 달라서 그런지 제가 메뉴를 못찾겟네요.... 디자인구체화까지 하고 강사님 화면에서는 왼쪽에 아이콘을 누르면 배포 할수 있는 종류가 나오던데.... 전 아무리 찾아봐도 찾지를 못했네요 ㅡㅡ 어디로 들어가야 비셀이나 넬리파이가 있는걸까요 ㅡㅡ 넬리파이뿐만 아니라 배포하는 메뉴 자체가 없어서요...메뉴마다 다 눌러서 찾아봤는데도 없네요
1. intelliJ java file outside of source root 에러가 뜹니다 Snowflake 강의를 듣다가 질문이 생겨서 질문올립니다. 강의자료에 있는 Snowflake 자료를 복사 붙여넣기 하다가 intelliJ java file outside of source root 에러가 뜹니다. 아래와 같이 시도를 해보았습니다. https://stackoverflow.com/questions/63521181/java-file-outside-of-source-root-intellij 이싸이트에 나와있는 IntelliJ의 오른쪽 도구 모음에서 "gradle"을 클릭한 다음 새로 고침 버튼을 클릭합니다. File > Project Structure > Modules > Sources 그리고 Java 파일 디렉토리를 소스로 표시를 변경하라고 나옴. 이 방법 시도 하지만 common->src로 변경했더니 IntelliJ IDEA에서 동일한 resources 디렉터리가 두 개의 모듈에서 중복으로 설정되어 있을 때 발생 하는 문제가 생겨 적용 불가능 현재 프로젝트 close하고 다시 open함. java버전과 스프링부트 버전 확인 build.gradle에서 버전 확인 위와 같이 해결방법을 모색해봤는데 해결방법을 모르겠습니다. 프로젝트 파일 첨부합니다.