실무에 바로 적용하는 프런트엔드 테스트 - 2부. 테스트 심화: 시각적 회귀・E2E 테스트
안녕하세요 e2e 테스트는 비용이 많이 들어서 어떻게 관리를 하는지 궁금합니다. - 파이프라인에서 매번 CI 에서 돌리기에는 서버나, 시간이 개발 생산성을 잡아 먹을 것 같은데요. 점점 e2e 테스트가 쌓여 나갈떄 어떤 전략을 취할 수 있는지 궁금해요. GPT로 리서치하니까 보통 2가지를 병행해서 스케줄러 + 온디맨드 실행 같이 관리 한다고 하는데, 실제 현업에서는 어떻게 활용하고 계신지, 제가 리서치한 내용 말고 더 효율적이거나, 추천할만한 전략 , 이외의 고려사항 소개해주실 수 있으면 알려주시면 감사하겠습니다. 스케줄 실행 (Nightly/주말 풀스윗) EventBridge → ECS Fargate RunTask (Spot 가능) → Playwright 러너 대상: 스테이징(or PR 프리뷰 URL) b. 산출물: 트레이스/비디오/리포트 S3 업로드, Slack에 요약/링크 온디맨드 실행 (PR 코멘트/수동 트리거) Bitbucket Pipeline에서 aws ecs run-task 호출(또는 ChatOps 슬래시 커맨드) 태그/폴더/샤드 인자 넘김 → 필요한 부분만
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 인프런 질문 게시판에 있는 내용인데 댓글에 제시된 방법으로 했는데도 해결이 안되므로 글 남깁니다. [질문 내용] 강의 01:36초에 index.html 작성 후 실행하면 Welcome page로 Hello hello가 나와야하지만 에러가 발생해 글 남깁니다.
1-3에 자기 소개 웹사이트 만들때 방문자 수 추가하는 것 해보니 supabase를 연결해야 한다고 하는데, 처음하는 사람은 이게 뭔지 잘 모르는데, 이 부분에 대한 설명이 없어 추가하는 것이 필요합니다. 동영상에서는 그런 과정 없이 바로 되는데, 나의 경우에는 supabase의 연결을 설정해야 기능이 정상 작동했어요. 뒤에 이 부분에 대한 설명이 있는지 모르겠지만, 없다면 자세히 설명 부탁합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?
mouseenter 마우스 이벤트를 할때 pulse.start(); 대신 pulse.restart();로 처음시작하게 하는것처럼 실습 때 mouseleave 마우스가 벗어날 때 자연스럽게 하려면 pulse.pause(); gsap.to ('button',{scale:0.8,duration:0.4}) 두개를 사용해서 어색하지 않게 구현했는데요, pulse.pause(); gsap.to ('button',{scale:0.8,duration:0.4}) 대신 pulse.reverse();를 사용해도 동일하게 어색하지 않게 줄 수있는 효과인건가요? 차이점은 없는건지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 검색을 해봐도 정확한 내용을 알기 어려워서 질문 남깁니다! JPA 다른 편 강의에서 하이버네이트6 이상부터는 from절의 서브쿼리를 지원한다고 본 것 같은데, 그렇다면 현재 JPQL과 Querydsl에서 from절 서브쿼리를 지원하는 건가요?
다른 수강생분들에게도 문제 해결에 도움을 줄 수 있도록 좋은 질문을 남겨봅시다 :) 1. 질문은 문제 상황을 최대한 표현해주세요. 6강 마지막 화면이랑 7강 첫화면 코드가 달라져서 이 부분은 어떻게 해결하면 될까요?? (안녕하세요->환영합니다) (console.log->alert) 크게 이 두 부분이 다른 것 같습니다. 그냥 이대로 진행하면 될까요? 2. 구체적이고 최대한 맥락을 알려줄 수 있도록 질문을 남겨 주실수록 좋습니다. 그렇지 않으면 답변을 얻는데 시간이 오래걸릴 수 있습니다 ㅠㅠ ex) A라는 상황에서 B라는 문제가 있었고 이에 C라는 시도를 해봤는데 되지 않았다! 3. 먼저 유사한 질문이 있었는지 꼭 검색해주세요!
안녕하세요 이전에 장기효님 강의 vue2 버전으로 초중급 듣고 온 상태입니다. 근데 오래전부터 이미 뷰2는 지원 끊어져서 많은 회사들도 현재 뷰3를 이용하고 있는 걸로 압니다. 여기서 지금 재가 고민인게 중급 이후의 뷰2 강의를 들어야할지, 뷰3 강의를 처음부터 들어야할지 고민입니다. 근데 또 뷰3 강의 초급을 구매해서 커리큘럼만 살짝봤는데 뷰2 초급이랑 거의 비슷한것 같더라구요? 제가 이후에 들어야할 강의는 뭘로 해야할까요??
[질문 내용] 스프링 db 강의에서는 @Repository @RequiredArgsConstructor public class MemberRepository { private final EntityManager em; 이 방식으로 했는데, 이 강의에서는 @Repository public class MemberRepository { @PersistenceContext private EntityManager em; 이렇게 사용하셔서 두 방식의 무슨 차이가 있는지 궁금합니다.
안녕하세요 강의를 잘 듣고있습니다. 하지만 개념이 잘 이해가 되지 않은 부분들이 있어서 질문드립니다. context 분리하기 강의 부분입니다!!! 이부분에서 이미 전 시간에 만들었던 useCallback으로 선언했던 함수들이 있습니다. 하지만 왜 app컴포넌트의 렌더링으로 인해 또 함수 선언이 되어 usememo를 써야한다고 하셨는지 문의드려요. const onCreate = useCallback((content) => { dispatch({ type: "CREATE", data: { id: idRef.current++, isDone: false, content: content, date: new Date().getTime(), }, }); }, []); const onUpdate = useCallback((targetId) => { dispatch({ type: "UPDATE", targetId: targetId, }); }, []); const onDelete = useCallback((targetId) => { dispatch({ type: "DELETE", targetId: targetId, }); }, []); const memoizedDispatch = useMemo(() => { return { onCreate, onUpdate, onDelete }; }, []); 그동안 다른 컴포넌트에 props를 줄때는 color={color}식으로 주고, 이는 객체형태라고 합니다. 받는 자식 컴포넌트에서는 {color} 이런식으로 구조분해할당을 합니다. 하지만 createContext로 만든 provider value ={} 는 기본적으로 객체형태가 아닌걸까요? 기본적으로 구조분해할당을 하지 않는거같아서 뭐지싶었습니다 <TodoDispatchContext.Provider value={memoizedDispatch}> useEffect, useMemo의 차이점은 무엇인가요? 기본적으로 의존성 배열을 []로 둘때는 처음으로 컴포넌트가 mount 될때만 실행하고 , [todos]를 넣으면 이 변수 state가 바뀔때만 실행하는거같아서 똑같은거같아요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 자바와 SQL문법도 어느정도 해뵈서 다행히도 영한님이 강의할 때 자바의 문법으로 이해가 됩니다. 하지만 스프링에 관한 것들(MVC, 이노테이션, 내장 서버, 스프링이 뭔지 등등) 이것들이 이해가 잘 안 갑니다. 그냥 이런게 있구나만 알아두고 뒤의 강의에서 다 이해하고 넘어갈 수 있을까요?? 지금은 따라치기만 하면 될까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private String id; 강의에서는 위와 같이 타입을 String으로 하셔서 신기하다 하고 따라했는데 오류가 뜨더라고요 (애초에 테이블 자체가 안만들어짐, 쿼리는 날라감) 그래서 그냥 원래 하던대로 Long으로 했는데 잘 되는 거보니, 강의가 옛날 버전이기도 하고해서 예전에는 h2에서 String 타입의 ID 형식도 허용해줬던건가요? [오류 일부 스크린샷]