public 경로
미해결
Next + React Query로 SNS 서비스 만들기
초보적인질문입니다. src기준이니깐 @못쓴다면 public 기준은 ../../../../ 이런식으루 사용해야할까요 ?
- react
- next.js
- react-query
- next-auth
- msw
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
Next + React Query로 SNS 서비스 만들기
초보적인질문입니다. src기준이니깐 @못쓴다면 public 기준은 ../../../../ 이런식으루 사용해야할까요 ?
미해결
따라하며 배우는 리액트 테스트 [2023.11 업데이트]
따라하며 배우는 리액트 테스트코드 강의에서 eslint가 적용되었다고 하는 파일자체를 받아 npm install을 헀는데, eslint가 작동되지않습니다. extension에서도 eslint를 받았고, npm install을 한 상태에서 test() let test = () => {} 와 같은 오류가 발생될 코드를 작성해도 eslint가 반응하지 못하는데 이유가 뭘까요 강의에는 설정이 적용되어있다고 하는데
미해결
한 입 크기로 잘라먹는 Next.js
안녕하세요 다이나믹 페이지의 경우 path를 미리 정의해주지 않은 파일들은 빌드가 돼있지 않아 fallback 옵션을 'blocking' 이나 true로 설정해줄 경우 ssr방식으로 사전 렌더링을 하여 html파일을 받아온다고 하셨었는데요 빌드 후 npm run start를 하고나서 직접 빌드 되지 않는 파일로 url에 접근해서 들어가면 확인이 가능하나 메인 페이지에서 책을 클릭해서 들어갈 경우 확인이 안되더라구요 그래서 네트워크를 보니깐 현재 예제로 쓰이고 있는 프로젝트의 책 리스트들의 경우 Link 컴포넌트로 감싸져있어서 js bundle파일을 프리패칭해서 가지고 오고 있었습니다. 정환님 강의를 봤을 땐 프리패칭이 되고 있지 않는 거 같길래 궁금한데 혹시 어떤 옵션을 적용해주신 걸까요? 추가로 링크 컴포넌트로 감싼 책 리스트의 경우 마우스를 오버시키기만 해도 이렇게 데이터들을 불러오는 거 같은데 이건 번들파일이라고 불러야 하나요?? 아님 그냥 요청인 건가요? 한번 불러오고나서는 캐싱되지 않고 원래 마우스 오버만 시켜도 왜 계속 불러오는 걸까요? 🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢 ) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
미해결
Airflow 마스터 클래스
안녕하세요, 인강 수강후 현업에서 Airflow 를 통해서 Dag 을 수행하고 있는데요, 서비스 PM 등의 이유로 수시간(3~5시간) 정도 pause 를 진행하고 다시 unpause 를 하게 되는 경우가 있습니다. 이럴때 unpasue 를 클릭하게 된다면 비록 Dag 에 catchup = false 로 지정해 놓더라도, 가장 최근에 수행 되었어야 할 Dag Run 은 수행되게 되는데요 Ex ) schedule_interval = 10,20,30 1,2,3 * * * * Dag.catchup = False pause = 01:15 unpause = 03:25 수행되는 Dag run 의 data_interval_end = 03:20 그런데 여기서 3시 20 분 dag_run 을 수행시키지 않기 위해서 생각을 하다가, Dag 의 default_args 의 start_date 값을 datetime.now 로 주는것에 대해서 생각을 해봤는데요, 당장 간단하게 테스트를 했을때는 큰 문제가 없었는데, 혹시 해당 케이스가 문제가 되는 케이스가 있을까요? 그리고 start_date 를 now 로 하는것 말고도 다른 방안이 있다면 좋은 방안 부탁 드립니다 감사합니다!
미해결
한 입 크기로 잘라먹는 Next.js
이전에 그냥 ssr방식으로 페이지를 설정한게 더 효율적으로 보 이는데 search 페이지나 동적 경로를 사용하는페이지에 ssg로 하신이유가있을까요? 단순 이런 방법도 있다는 설명을 위해서 보여주신게 아니라면 ssg방식으로 바꿔서 html요소만 먼저 가져오고 그후에 클라이언트에서 서버로 요청을 보내서 받는게 어떤 장점이 있는지 잘모르겠습니다~ ssg는 보통 404 페이지 약관같은 요청에 대한 응답을 할필요없는 페이지에 적용하는게 좋지않을까싶은데 일반적인 페이지에서도 ssg를 사용해서 클라이언트에서 서버로 요청을 보내고 받는걸 많이 사용하나요??
해결됨
기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)
Chapter 7 (섹션 8) 가장 첫 번째 강의는 보이는데 이후부터는 강의 영상이 나오지가 않네요
미해결
한 입 크기로 잘라먹는 Next.js
안녕하세요 SSR 방식의 사전렌더링을 하기위해 getServerSideProps 함수를 쓴다고 가정을 했을 때 궁금한 게 있습니다. 초기 화면에 진입하고나서는 페이지 이동하면서는 CSR 방식으로 렌더링이 된다고 이해하고 있습니다. 그렇다면 현재 예시로 보여주고 계시는 'ONEBITE BOOKS' 프로젝트의 경우 메인 페이지의의 index 파일 말고는 다른 search 페이지나 book 페이지의 경우에는 getServerSideProps 이용하여 SSR방식을 채택할 필요가 없는 게 아닌지 궁금합니다. 🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢 ) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
미해결
스프링 DB 2편 - 데이터 접근 활용 기술
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 내부 호출 문제점은 REQUIRES_NEW 어노테이션이 적용된 경우에도 동일하게 발생하는 것 같은데 맞을까요?? 아래 코드를 실행했을 때 커밋이 한 번도 발생하지 않는 것을 로그로 확인했습니다. 혹시나 해서 여쭤봅니다!! @Slf4j @SpringBootTest public class InternalCallV1Test { @Autowired CallService callService; @Test void externalCall() { callService.external(); } @TestConfiguration static class InternalCallV1TestConfig { @Bean CallService callService() { return new CallService(); } } @Slf4j static class CallService { @Transactional(propagation = Propagation.REQUIRES_NEW) public void internal() { log.info("call internal"); printTxInfo(); } @Transactional public void external() { log.info("call external"); printTxInfo(); this.internal(); throw new RuntimeException("종료"); } private void printTxInfo() { boolean txActive = TransactionSynchronizationManager.isActualTransactionActive(); log.info("tx active={}", txActive); } } }
미해결
파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
강의 제목에는 리액트가 들어가있는데 리액트 내용은 좀 부실한거 같아요. 오히려 htmlx가 더 많아요~~~ 리액트로도 다양한 예제를 만들어주셨으면 합니다.
미해결
Next + React Query로 SNS 서비스 만들기
"use client"; import style from './signup.module.css'; import onSubmit from '../_lib/signup'; import BackButton from "@/app/(beforeLogin)/_component/BackButton"; import { useFormState, useFormStatus } from 'react-dom'; export default function SignupModal() { const [state, formAction] = useFormState(onSubmit, { message: null }); const { pending } = useFormStatus(); [섹선3] 클라이언트 컴포넌트에서 Server Actions 사용하기, 3분 const [state, formAction] = useFormState(onSubmit, { message: null }); 이쪽부분에 [이 호출과 일치하는 오버로드가 없습니다.] 라는 빨간에러가 뜨는데 혹시 이유를 알 수 있을까요? [제로초 강좌 질문 필독 사항입니다] 질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다. 도움이 되는 질문을 하는 방법을 알려드립니다. https://www.youtube.com/watch?v=PUKOWrOuC0c 0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다. 1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다. 2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다. 3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요. 4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요. 5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다. 6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다.
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 7분28초에 어마어마한 코드를 복사붙여넣기를 한다고 했는데 어디에다가 붙여놓는걸까요?
해결됨
Next + React Query로 SNS 서비스 만들기
안녕하세요 제로초님 postgreSQL까지는 설치하고 데이터베이스 설정도 되었는데 memurai 는 아래 오류가 뜨면서 설치부터 안됩니다. 해결방법을 찾지 못해서 질문 드립니다..
미해결
한 입 크기로 잘라먹는 Next.js
이번 강의에서 페이지별 레이아웃을 사용할 때, 레이아웃이 필요한 컴포넌트에 getLayout 메소드를 추가해서 사용합니다 // 1 export default function Home() { return <h1 className={style.h1}>인덱스</h1>; } Home.getLayout = (page: ReactNode) => { return <SearchableLayout>{page}</SearchableLayout>; }; // 2 export default function Home() { return <SearchableLayout> <h1 className={style.h1}>인덱스</h1> </SearchableLayout>; } // _app.tsx // a type NextPageWithLayout = NextPage & { getLayout?: (page: ReactNode) => ReactNode; }; export default function App({ Component, pageProps, }: AppProps & { Component: NextPageWithLayout }) { const getLayout = Component.getLayout ?? ((page: ReactNode) => page); return <GlobalLayout>{getLayout(<Component {...pageProps} />)}</GlobalLayout>; } // b export default function App({ Component, pageProps, }: AppProps) { return <GlobalLayout><Component {...pageProps} /></GlobalLayout>; } 2번째 코드처럼 사용하면 app 컴포넌트(b)와 레이아웃이 필요한 컴포넌트(2) 둘 다 더 짧게 사용할 수 있을 거 같은데, getLayout 메소드를 사용해야 하는건지 질문드립니다 그냥 표준처럼 사용 되는 건지?? 페이지 컴포넌트와 레이아웃 컴포넌트를 분리하기 위해서인지?? 레이아웃이 필요한 컴포넌트에서 레이아웃을 부모 컴포넌트로 사용하면 해당 컴포넌트간 상태 유지 관련 문제가 있는건지?? 질문 드립니다
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 순수 JDBC 를 공부 중인데 너무 복사붙여넣기가 많고 화면을 멈춰도 빨라요...어디꺼를 가지고 와야 붙여넣기를 해도 오류가 안생길까요?ㅜㅜ package com.example.springpractice.repository; import com.example.springpractice.domain.Member; import org.springframework.jdbc.datasource.DataSourceUtils; import javax.sql.DataSource; import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.Optional; import static java.sql.DriverManager.getConnection; import static org.apache.tomcat.util.descriptor.InputSourceUtil.close; public class JdbcMemberRepository implements MemberRepository { private final DataSource dataSource; public JdbcMemberRepository(DataSource dataSource) { this.dataSource = dataSource; } //저장 @Override public Member save(Member member) { String sql = "insert into member(name) values(?)"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); pstmt.setString(1, member.getName()); pstmt.executeUpdate(); rs = pstmt.getGeneratedKeys(); if (rs.next()) { member.setId(rs.getLong(1)); } else { throw new SQLException("id 조회 실패"); } return member; } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } @Override public Optional<Member> findById(Long id) { String sql = "select * from member where id = ?"; Connection conn = null; } @Override public Optional<Member> findByName(String name) { return Optional.empty(); } @Override public List<Member> findAll() { return List.of(); } }
미해결
스프링 DB 1편 - 데이터 접근 핵심 원리
체크예외인 SqlException의 문제점을 리포지토리 레벨에서 런타임 예외로 바꾸어 유지보수성을 향상시킨다고 생각했습니다. 여기서 드는 생각은, 애초에 자바 진영(?) JDBC측에서 sqlException 자체를 언체크로 다시 설계해서 내뿜도록 하면 되지 않나요? 결국 예외가 발생하는 가장 처음 부분에서 잡는 것이지만 Jpa exception이 올라온다면 이를 또 바꾸어줘야 하는데 애초에 체크였던 sql,jpa exception을 언체크로 뿌려지게끔 하지 않는 이유를 모르겠습니다. 체크는 꼭 인지해서 처리해야할 예외를 체크로 만든다고 했는데 사실상 처리하기 어려운 예외로 굳어져서 코드들만 유지보수성을 떨어뜨리는 체크예외를 라이브러리를 만든 측에서 언체크로 바꾸어주면 안되나 싶었습니다. 제가 어떤 이해가 부족할까요... 아마도 언체크 예외로 바꾼다면 발생할 문제들이 존재할 것 같은데. (이전에 배운 exceptionHandler가 언체크를 못잡는 것도 아닌데 말이죠)
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
HelloSpringApplication 실행에서 초록색 > 버튼으로 run (실행)하는 창이 뜨지 않습니다.. ㅠㅠ 강의대로 따라했는데, 여기서 진도를 못나가고있어요 ㅠ 마우스를 갖다대도 뜨지않습니다. 김영한강사님 자바 입문편 볼때는 > run 버튼이 잘떳는데 왜 spring에선 강의영상처럼 안뜰까요 ㅠㅠ? ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요.
미해결
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
FieldError의 bindingFailure에 바인딩이 실패했는지 여부를 적어주고 영한님은 false를 입력해주셨는데요 충분히 사용자가 가격에 1111 대신 qqq를 작성할 수 있는데, 왜 false가 들어오는것인가요? 즉, 사용자가 타입에 맞는 폼을 작성하는지 안하는지 개발자 입장에서 알 수 없는 노릇인데, false/true중 하나를 입력한다는 것이 이해가지 않습니다.
미해결
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
저는 대략적으로 컨트롤러에서 view를 리턴해주는 경우 SSR, restful api를 사용해 json을 리턴해주는 경우 CSR이라고 이해하고있습니다 그런데 json을 리턴해주는 경우, 컨트롤러에서 모델을 따로 사용하지 않고, 뷰를 리턴해주는것도 아닌데 이 경우에도 여전히 MVC 패턴을 사용한다고 말할 수 있는지 궁금합니다
미해결
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
타임리프를 사용하지 않는 경우 bindingResult를 view에 어떻게 전달해주나요? 타임리프인 경우에만 view에 전달되는것 아닌가요?
미해결
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
안녕하세요, 강의를 수강하고 있는 학생입니다. 이번 강의를 들으면서 궁금한 점이 생겨 글을 작성하게 되었습니다. version 2에서 version 3로 넘어갈 때 해결한 문제 중 하나인 HttpServletRequest와 Response에 종속되어 있다와 관련하여 궁금한 점이 생겼습니다. version 5에서 해당 핸들러(컨트롤러)에 맞는 어댑터를 찾아서 handle 메서드를 부를 때 인자로 핸들러를 제외하고도 HttpServletRequest 타입의 request, Response 타입의 response를 전달하는데, 그 이후에 딱히 이 두 인자에 종속될 필요가 없다고 느꼈습니다. 따라서, FrontController 서블릿에서 creatParamMap 메서드를 통해 파라미터를 담은 Map 타입 객체를 생성하여 인자로 전달하면 어떨까라는 생각이 들었습니다. 이러한 부분은 구현하는 사람의 재량인지, 제가 위에 설명한 방법에 문제가 있어서 그렇게 하지 않는 것인지 궁금합니다. 질문글 읽어주셔서 감사합니다.