묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! Querydsl
MemberJpaRepository 테스트 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]\querydsl\src\test\java\study\querydsl\repository\MemberJpaRepositoryTest.java:21: error: cannot find symbol MemberJpaRepository memberJpaRepository; ^ symbol: class MemberJpaRepository location: class MemberJpaRepositoryTest MemberJpaRepository 테스트 오류를 어떻게 확인해야되나요 동일하게 질문하신 분이 계신데 드라이브 통해서 파일 올리라고만 답변되어있어서 질문 드립니다. 강의와 같은 경로에 repository 생성 후 테스트를 돌리면 심볼 오류가 납니다.확인 부탁드립니다!! generated/study/querydsl/repository/MemberJpaRepository 소스 코드 경로https://drive.google.com/file/d/1wV-xy9-oUE0TgfONiumr5dr2TniGHdj_/view?usp=sharing
-
미해결12시간 안에 끝내는 파이썬을 활용한 크롤링
수업중 따라하기 오류 ㅠㅠ
수업중 seleium 에 관하여 배웠습니다.하지만 처음부터 뭔가 오류가 나서 잘되지 않네요selenium은 설치가 잘 된건가요?ModuleNotFoundErrorNameError은 왜그런거죠?ㅠㅠ답변 부탁드립니다. ㅠㅠ
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
반복문 + 조건문 문제 풀이 강의 중
안녕하세요 쌤c언어 문제에서 i % 3 이 0이 나오려면 3의 약수가 아니라 3의 배수 아닐까해서 여쭤보고자 질문드립니다!3, 6, 9 이런 식으로 말이죠 :)
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
19강 TakeIf 질문
강사님 안녕하세요.우선, 좋은 강의 감사합니다. 19강.코틀린의 이모저모 학습 중 이해되지 않는 부분이 있어서 질문드립니다.takeIf 을 설명하실 때getNumberOrNull 함수와 getNumberOrNullV2 함수가 동일한 코드라고 설명해주셨는데요.강의에서 takeIf 확장 함수는 주어진 조건을 만족하면 그 값을, 만족하지 않는다면 null을 반환한다고 설명해주셨는데, 그러면 getNumberOrNull함수의 반환 값이 반대로 된 것이 아닌가요? 오히려 getNumberOrNull함수는 takeUnless를 사용하는 getNumberOrNullV3함수와 동일하다고 생각됩니다.저는 아래와 같이 이해했는데.. 혹시 제가 잘못 이해한건지, 아니면 강의자료에 오타가 있으신건지 궁금합니다~~ // takeIf 구현 fun getNumberOrNull(): Int? { return if (number <= 0) number // 해당 조건이 맞으면 해당 값을 반환 else null // 아니면 Null을 반환 }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-I 질문있습니다.
http://boj.kr/5c6791ecb33241cab42be762031958c3안녕하세요 큰돌님이번 문제는 강의를 봐도 잘 이해가 되지 않아서 핵심으로 짚어준 부분을 참고하여 제가 로직을 구현했는데, 어려움이 있어 질문드립니다.백준 문제에서 주어진 예제는 정답이 나오는데, 아래 링크의 질문 게시판에 있는 반례는 모두 틀리게 나옵니다.https://www.acmicpc.net/board/view/89304코드에 사용되는 변수는 다음과 같습니다.x = bfs로 방문하는 수빈이의 현재 위치t = 수빈이가 해당 위치에 도착하는 최단 시간bp = 해당 시간(t)에 동생의 현재 위치제가 생각해낸 방법은 다음과 같습니다.먼저 동생이 앞으로 가며 위치에 도달하는 시간을 brother[] 배열에 기록했습니다. 수빈이가 동생을 만날 수 있는 방법을 다음 두 가지로 분류했습니다. (1) 수빈이가 앞으로 가며 특정 위치에서 동생과 만난다.(2) 수빈이가 동생보다 먼저 앞으로 간 다음에, 왔다갔다 하며 동생을 기다린다. (이 때 홀수, 짝수 시간으로 동생과 만날 수 있는지 확인한다.)bfs를 단계 별로 구현하기 위해 5분 45초에 나오는 플루드 필(?)을 수빈이가 해당 위치에 도착하는 최단 시간(변수 t)로 구현하였습니다.+제 코드의 오류를 하나 발견하였는데 다음과 같습니다.예제 n = 18, k = 66 를 넣었을 때, 수빈이는 18 36 37 38 76 순으로 방문하고, 동생이 66, 67, 69, 72, 76 순으로 방문 했을 때 정답인 4초가 나오지만, 제 코드 상으로는 76을 최단 시간인 3초에 방문할 수 있으므로, 수빈이가 동생을 만나지 못한다고 판단하여 만날 수 있는 다음 지점을 답으로 출력합니다.위와 같은 오류를 어떤 논리로 잡아야 할지 아무리 생각해도 모르겠고, 강사님의 코드도 도저히 이해가 가지 않아 질문 드립니다. ㅠㅠ
-
미해결실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌
500 에러
org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.: 500 에러 뜨면서 자꾸 실행이 안됩니다.이거 tomcat 설정에 jdk 버전이랑 뭐 안 맞다고 하는 오류 떄문에 그런 것 같은데 설정해봐도 안 되고 미치겠네요
-
미해결Kotlin으로 개발하는 Spring Boot Web MVC
[제발 부탁 드립니다.]react와 스프링 부트간 통신하는데 통신이 안되네요. 무엇이 문제일까요??
=========중용한 부분이 오타가 있어서 수정합니다================ 안녕하세요. 완강을 한후에 제가 프론트엔드와 백엔드간 통신을 확인하려합니다. 그런데 예상과 다르네요...일단 프론트 엔드 (react을 먼저 보여드릴께요) const handleSubmit = (event) => { fetch('http://localhost:8080/api/posttest', { method: 'POST', // *GET, POST, PUT, DELETE 등 body: JSON.stringify({ name: 'foo', email: 'kjy@gmail.com', message: '1', }), headers: { 'Content-type': 'application/json; charset=UTF-8', }, }) .then((response) => response.json()) .then((json) => alert(json)); alert("test") };이렇게 작성하고 ...백엔드( spring boot)는@RestController @RequestMapping("/api") class _____ApiController{ @PostMapping(path=["/posttest"]) fun postTest( @RequestBody body: BodyClass ): ResponseEntity<String> { println(body) return ResponseEntity.ok().body("test") } }data class BodyClass( var name: String = "", var email: String = "", var message: String = "" ) 이렇게 코딩 했는데 ..분명해서 테스트 해서 정상 확인했는데 ...react에서 전송하면 postTest 함수를 진입하지 않습니다. ... 백엔드쪽에 코드를 좀 바꿔서 Requestbody에서 json 파일 그대로 받자는 식으로 아래처럼 바꿨어요fun postTest( @RequestBody json: String ): ResponseEntity<String> { println(body) return ResponseEntity.ok().body("test") } react는 json 형식인지 표시하는걸 지웠는데fetch('http://localhost:8080/api/posttest', { method: 'POST', // *GET, POST, PUT, DELETE 등 body: JSON.stringify({ name: 'foo', email: 'kjy@gmail.com', message: '1', }), headers: { // 삭제 }, }) .then((response) => response.json()) .then((json) => alert(json)); alert("test" 백엔드의 postTest함수에 진입 합니다.프론트 엔드에서 전송한 json 내네요용이 전송됩니다.이게 ... 새롭게 프로젝트를 만들어도 똑같고 프론트 엔드 백엔드 모두 새롭게 프로젝트를 만들어서 테스트 해도 똑같아요...스프링 부트에서 잘못된건지... react에서 잘못된건지 잘 모르겠네요...아마도 스프링 부트에서 뭔가 잘못된거 같은게 api 서버가 있어서 그걸로 접속하니깐 되긴 하네요...그렇다면 스프링 부트에서 잘못한건지..분명 스프링 부트에도 문제가 없어 보이는데힘드네요 ... ㅠ.ㅠ 살려주세요 ㅠ.ㅠ 몇일째 못풀고 있어요...
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
백준 DFS
백준을 기준으로 하시는 이유가 있나요 ??
-
해결됨실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트
1.3강 npm run dev 안되는 문제
문제)의존성 설치 후 npm run dev를 기동하면$ npm run dev> test-example-shopping-mall@0.0.0 dev> concurrently --kill-others 'npm run dev:server' 'npm run dev:ui'[0] ''npm'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α�, �Ǵ�[0] ��ġ ������ �ƴմϴ�.[1] 'run'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α�, �Ǵ�[1] ��ġ ������ �ƴմϴ�.[2] ���� �̸�, ���� �̸� �Ǵ� ���� ���̺� ������ �߸��Ǿ����ϴ�.[3] ''npm'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α�, �Ǵ�[3] ��ġ ������ �ƴմϴ�.[4] 'run'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α�, �Ǵ�[4] ��ġ ������ �ƴմϴ�.[4] run exited with code 1--> Sending SIGTERM to other processes..[3] 'npm exited with code 1--> Sending SIGTERM to other processes..--> Sending SIGTERM to other processes..[1] run exited with code 1--> Sending SIGTERM to other processes..[0] 'npm exited with code 1--> Sending SIGTERM to other processes..[5] ���� �̸�, ���� �̸� �Ǵ� ���� ���̺� ������ �߸��Ǿ����ϴ�.[5] dev:ui' exited with code 1이런 콘솔이 찍히며 테스트 서버가 실행되지 않습니다.인코딩이 깨져서 뭐가 문젠지 추적을 못하겠어요ㅠㅠnode 버전은 강의와 동일하게 19.9.0으로 맞춰두었습니다.+) 인코딩이 깨지는 문제는 vscode터미널 말고 다른 커맨드창을 이용하니 해결 되었습니다.> test-example-shopping-mall@0.0.0 dev > concurrently --kill-others 'npm run dev:server' 'npm run dev:ui' [0] ''npm' is not recognized as an internal or external command, [0] operable program or batch file. [1] 'run' is not recognized as an internal or external command, [1] operable program or batch file. [2] The filename, directory name, or volume label syntax is incorrect. [3] ''npm' is not recognized as an internal or external command, [3] operable program or batch file. [4] 'run' is not recognized as an internal or external command, [4] operable program or batch file. [4] run exited with code 1 --> Sending SIGTERM to other processes.. [3] 'npm exited with code 1 --> Sending SIGTERM to other processes.. [2] dev:server' exited with code 1 --> Sending SIGTERM to other processes.. [1] run exited with code 1 --> Sending SIGTERM to other processes.. [0] 'npm exited with code 1 --> Sending SIGTERM to other processes.. [5] The filename, directory name, or volume label syntax is incorrect. [5] dev:ui' exited with code 1그런데 여전히 실행이 안됩니다ㅜㅜnpm을 못찾는거 같은데 환경변수에 따로 등록을 해야하나요? npm -v하면 버전은 잘 나오는데 원인을 모르겠습니다...현재 환경변수와 버전정보 추가합니다.+) package.json스크립트에서 작은 따옴표를 큰 따옴표로 수정해서 최종적으로 해결되었습니다... 허무하네용ㅋㅋㅋ ㅠ
-
미해결
querydsl 의 offset 정의가 헷갈립니다.
repository에 1,2,3,4,5를 차례로 저장하고offset을 1로, limit을 2로해서 조회하면 [2,3], [4,5]가 조회되는건가요? 아니면 [3,4] ,[5]가 조회되는건가요? offset이 0부터시작인데 1로 지정하면 2페이지부터 조회한다는건지? 두번째 데이터부터 페이징을 시작한다는건지요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
리눅스를 사용하는 이유가 궁금합니다.
안녕하세요 며칠전까지 마이크로프로세서응용이라는 과목을 학교에서 zybo-Z7-20보드를 컴퓨터에 연결하여 vivado상 sdk를 주로쓰는 수업을 수강하였고, 다음학기에 ai가속기설계라는 과목을 수강할 예정이라 강사님의 강의를 방학동안 따라가면서 디지털회로설계자가 되기위해 노력하는 학생입니다. 오늘 강의를 처음 수강하였는데요, 저는 기존에 그냥 c드라이브에 vivado를 다운받아서 사용하였는데, 강사님은 리눅스 환경에서 새로 받아서 설치하시길래 그 이유가 궁금해서 이렇게 질문을 남기게 되었습니다. (다행이 무사 설치후 hello world가 프린트되는거까지 잘 확인했습니다!) 좋은 강의 감사드리며, 잘 따라가보겠습니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
/api/v1/members 버그
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강사님처럼 코드를 다음과 같이 작성했습니다.MemberApiController.javapackage jpabook.jpashop.api; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import jpabook.jpashop.domain.Member; import jpabook.jpashop.service.MemberService; import lombok.AllArgsConstructor; import lombok.Data; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.stream.Collectors; @RestController @RequiredArgsConstructor public class MemberApiController { private final MemberService memberService; @GetMapping("/api/v1/members") public List<Member> membersV1() { return memberService.findMembers(); } @PostMapping("/api/v1/members") public CreateMemberResponse saveMemberV1(@RequestBody @Valid Member member) { Long id = memberService.join(member); return new CreateMemberResponse(id); } @PostMapping("/api/v2/members") public CreateMemberResponse saveMemberV2(@RequestBody @Valid CreateMemberRequest request) { Member member = new Member(); member.setName(request.getName()); Long joinedMemberId = memberService.join(member); return new CreateMemberResponse(joinedMemberId); } @PutMapping("/api/v2/members/{id}") public UpdateMemberResponse updateMemberV2(@PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request) { Member member = new Member(); member.setName(request.getName()); memberService.update(id, request.getName()); return new UpdateMemberResponse(id, request.getName()); } @Data static class CreateMemberRequest { @NotEmpty private String name; } @Data @AllArgsConstructor static class CreateMemberResponse { private final Long id; } @Data static class UpdateMemberRequest { @NotEmpty private String name; } @Data @AllArgsConstructor static class UpdateMemberResponse { private Long id; private String name; } } MemberService.javapackage jpabook.jpashop.service; import jpabook.jpashop.domain.Member; import jpabook.jpashop.repository.MemberRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service @RequiredArgsConstructor @Transactional(readOnly = true) public class MemberService { private final MemberRepository memberRepository; /* * 회원 가입 * */ @Transactional public Long join(Member member) { validateDuplicateMember(member); // 중복 회원 검증 memberRepository.save(member); return member.getId(); } /* * 중복 확인 메서드 * */ private void validateDuplicateMember(Member member) { List<Member> findMembers = memberRepository.findByName(member.getName()); if (!findMembers.isEmpty()) { throw new IllegalStateException("이미 존재하는 회원입니다."); } } // 회원 전체 조회 public List<Member> findMembers() { return memberRepository.findAll(); } public Member findOne(Long memberId) { return memberRepository.findOne(memberId); } @Transactional public void update(Long id, String name) { Member member = memberRepository.findOne(id); member.setName(name); // 영속성 컨텍스트에서 엔티티를 수정하면 트랜잭션 커밋 시점에 변경 감지(Dirty Checking)가 동작한다. } } MemberRepository.javapackage jpabook.jpashop.repository; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import jpabook.jpashop.domain.Member; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import java.util.List; // 컴포넌트 스캔에 의해 // 스프링 빈에 자동으로 등록 @Repository @RequiredArgsConstructor public class MemberRepository { private final EntityManager em; public void save(Member member) { em.persist(member); } public Member findOne(Long id) { return em.find(Member.class, id); } public List<Member> findAll() { return em.createQuery("select m from Member m", Member.class) .getResultList(); } public List<Member> findByName(String name) { return em.createQuery("select m from Member m where m.name = :name", Member.class) .setParameter("name", name) .getResultList(); } } Member.javapackage jpabook.jpashop.domain; import jakarta.persistence.*; import jakarta.validation.constraints.NotEmpty; import lombok.Getter; import lombok.Setter; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; @NotEmpty private String name; @Embedded private Address address; @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<>(); } 그리고 postman으로 localhost:8080/api/v1/members로 호출을 하게 되면 다음과 같이 무지막지하게 많은 양의 결과가 나옵니다. 왜 그러는 걸까요?
-
미해결카프카 완벽 가이드 - 코어편
안녕하세요
안녕하세요 맥북 m2 사용자라 utm에서 ubuntu 설치하고 진행하는데 주소, 네트워크 주소, 게이트웨이(찾아보니 yaml 하라고 해서 )부터 너무 막히는데 하나씩 utm 방법으로 찾아서 진행해야하는 건지 아니면 다른 방법이 있는지 궁금합니다
-
미해결실리콘밸리 엔지니어와 함께하는 샐러리(Celery)
DLQ에 저장하는 패턴에 대해 질문 드립니다.
DLX에서 consumer가 DLQ에 에러를 저장하는 과정에 대해 이해가 잘 안되는 부분이 있습니다.에러가 발생하면 DLQ에 넣는다.다음 처리를 하는데 들어온 이벤트의 타입을 DLQ의 에러가 발생한 이전 이벤트 타입과 동일한지를 비교하여 같다면 있다면 DLQ에 넣는다2번 처리에서 consumer는 모든 작업을 수행하기 전 이벤트 타입을 DLQ에 있는 모든 이벤트 타입과 비교하는 작업을 한다는 전제인가요? 그렇다면 일반적으로 DLQ에 누적되는 각기 다른 이벤트 타입의 수가 많지 않을 것이기 때문에 (동일한 이벤트 타입들은 사실 1개로 처리) 이벤트 실행 중 발생하는 에러 결과를 DLQ에 넣는 것 보다, 작업 전 이미 발생한 에러 이벤트 타입과 비교하여 동일한 이벤트 들은 처리를 하기 전, DLQ에 넣는게 전체적으로 효율성이 높기 때문이라 볼 수 있는 것일까요?
-
미해결SignalR + ASP.NET Core [+MAUI +WPF +JWT]
builder.WebHost.UseUrls("http://0.0.0.0:8080");
builder.WebHost.UseUrls("http://0.0.0.0:8080");로 하는 경우 서버가 열리지 않아요.localhost로 했을 때는 정상적으로 동작이 되었어요...
-
미해결실리콘밸리 엔지니어와 함께하는 샐러리(Celery)
DLX에 대한 질문입니다.
message들은 아래와 같은 경우가 원인이 될 수 있다고 말씀 하셨습니다.1. consumer가 거절하는 경우2. 시간이 너무 오래 걸려 acknowledgment timeout이 발생한 경우3. 처리를 하는 동안 에러가 발생한 경우첨부된 pdf나 코드상에서 최종 언급되는 방법으로 3번에 대한 항목만 있는 것 같은데요두 가지 질문이 있습니다.1번 질문으로 1,2번 항목은 사실 consumer가 처리할 수 없는거 아닌가 생각되는데 redis를 사용하는 지금 프로젝트에서 따로 처리를 하는 방법이 방법이 어떻게 있을지 알고 싶습니다. 2번 질문으로 제가 알고 있기로 rabbitMQ에서 ack와 관련한 기능이 있는 것으로 알고 있습니다. 혹시 해당 작업을 해보신적이 있으시다면 어떻게 처리, 구현 하셨는지 알고 싶습니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버쇼핑 질문 있습니다!
네이버쇼핑크롤링을 연습도중 상품썸네일 링크를 가져와보고싶어서 연습을해봤는데 아래링크처럼했을때 첫번째 상품의 이미지링크만 가져오게되고 나머지 이미지썸네일 링크는 여러가지 다른선택자를 이용해서 시도를 해봤지만 이와같이 한개의 이미지썸네일 링크만 가져와져서 이럴때 어떻게 해야될지 궁금합니다!from selenium import webdriver import time from bs4 import BeautifulSoup import re from urllib.parse import urlparse, urlunparse driver = webdriver.Chrome() driver.get('https://search.shopping.naver.com/search/all?adQuery=%EB%8B%AD%ED%84%B8%EB%BD%91%EB%8A%94%EA%B8%B0%EA%B3%84&origQuery=%EB%8B%AD%ED%84%B8%EB%BD%91%EB%8A%94%EA%B8%B0%EA%B3%84&pagingIndex=1&pagingSize=40&productSet=overseas&query=%EB%8B%AD%ED%84%B8%EB%BD%91%EB%8A%94%EA%B8%B0%EA%B3%84&sort=review&sps=N×tamp=&viewType=list') last_height = driver.execute_script("return document.body.scrollheight") while True: #스크롤끝까지 내리기 driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") time.sleep(2) new_height = driver.execute_script("return document.body.scrollHeight") if new_height == last_height: break last_height = new_height html = driver.page_source soup = BeautifulSoup(html, 'html.parser') items = soup.select(".product_item__MDtDF") for item in items: # 이미지 URL 찾기 img = item.select_one(".product_img_area__cUrko img") print(img)
-
미해결토비의 스프링 6 - 이해와 원리
개발환경 세팅에서 질문있어요.
안녕하세요. 토비님.좋은 강의 만들어주셔서 감사합니다.질문이 하나 있습니다.개발환경 세팅에서 bash 명령어를 추천해주는 툴? 플러그인을 사용하고 있는것으로 보이는데요.무엇인지 알려주시면 좋겠습니다.
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
애뮬레이터 오류
안녕하세요 3개월?만에 플러터 다시 진행하고자 들어왔는데 에뮬레이터에 문제가 생겼습니다..에뮬레이터를 실행하면 작업표시줄에는 뜨는데 화면에는 안 뜨더군요. 클릭해도 틀어지지가 않습니다.그래서 마우스 오른쪽 클릭으로 qemu-system-x86_64 들어가보면위 4개와 같은 오류창이 뜹니다..강의도 최신버전으로 업뎃되었겠다 관련 프로그램들도 최신버전들이 나와서 기존의 플러터, 안드로이드 등 그냥 깔끔하게 다 삭제하고git부터 새로 다 깔았는데도 동일한 오류가 뜹니다..어떤게 문제일까요??
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
vivado 설치 에러
안녕하세요. 컴퓨터를 새로 구매하여 다시 vivado를 다운받으려고 하는데 오류가 발생하여 질문드립니다. 우선 Vivado의 경우 영상에서 사용한 이전 버전을 다운 받을 수 없어 아래와 같은 최신 버전의 것을 다운 받았습니다.이후 영상을 따라 mobaxterm에서 코드를 입력하였습니다. 그런데 vivado 설치 시 아래와 같은 오류가 발생하였습니다. 구글링을 하여 에러에 대해 찾아봤지만, 해결책이 되는 건 없었습니다. 어떻게 해결해야 할까요?