dfs 영상을 쭉 보고있는데요 ㅎ 문제들 마다 규칙이 거의 무조건적으로 visited 와 2차원 graph 가 생성이 되나요 ?? visited = [] graph = [[False] *MAX for _ in range(MAX)] 2. MAX 를 두시는 이유가 뭔가요 ??
[질문 템플릿] 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
강사님 안녕하세요. 우선, 좋은 강의 감사합니다. 19강.코틀린의 이모저모 학습 중 이해되지 않는 부분이 있어서 질문드립니다. takeIf 을 설명하실 때 getNumberOrNull 함수와 getNumberOrNullV2 함수가 동일한 코드라고 설명해주셨는데요. 강의에서 takeIf 확장 함수는 주어진 조건을 만족하면 그 값을, 만족하지 않는다면 null 을 반환한다고 설명해주셨는데, 그러면 getNumberOrNull 함수의 반환 값이 반대로 된 것이 아닌가요? 오히려 getNumberOrNull 함수는 takeUnless 를 사용하는 getNumberOrNullV3 함수와 동일하다고 생각됩니다. 저는 아래와 같이 이해했는데.. 혹시 제가 잘못 이해한건지, 아니면 강의자료에 오타가 있으신건지 궁금합니다~~ // takeIf 구현 fun getNumberOrNull(): Int? { return if (number <= 0) number // 해당 조건이 맞으면 해당 값을 반환 else null // 아니면 Null을 반환 }
org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.: 500 에러 뜨면서 자꾸 실행이 안됩니다. 이거 tomcat 설정에 jdk 버전이랑 뭐 안 맞다고 하는 오류 떄문에 그런 것 같은데 설정해봐도 안 되고 미치겠네요
1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강사님처럼 코드를 다음과 같이 작성했습니다. MemberApiController.java package 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.java package 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.java package 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.java package 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로 호출을 하게 되면 다음과 같이 무지막지하게 많은 양의 결과가 나옵니다. 왜 그러는 걸까요?
네이버쇼핑크롤링을 연습도중 상품썸네일 링크를 가져와보고싶어서 연습을해봤는데 아래링크처럼했을때 첫번째 상품의 이미지링크만 가져오게되고 나머지 이미지썸네일 링크는 여러가지 다른선택자를 이용해서 시도를 해봤지만 이와같이 한개의 이미지썸네일 링크만 가져와져서 이럴때 어떻게 해야될지 궁금합니다! 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)
안녕하십니까 깊은 내용 쉽게 가르쳐 주셔서 정말 감사합니다. 질문이 있습니다. public static void main(String[] args) { OuterClassV2 outerClassV2 = new OuterClassV2(); Printer innerPrinter = outerClassV2.process(1); innerPrinter.print(); Field[] fields = innerPrinter.getClass().getDeclaredFields(); System.out.println(fields.length); for (Field field: fields) { System.out.println(field.getName()); } } 위 메서드 실행시에 public Printer process(final int paramVal) { int localVal = 2; // 여기 class InnerPrinter implements Printer{ private final int val = 3; @Override public void print() { System.out.println("val = " + val); System.out.println("localVal = " + localVal); System.out.println("paramVal = " + paramVal); System.out.println("outerClassVal = " + outerClassVal); } } return new InnerPrinter(); } 위와 같이 int localVal = 2 처럼 암묵적 final을 이용하면 지역 클래스에 캡쳐되는게 확인 됩니다 하지만 final int localVal = 2 처럼 명시적으로 하면 지역클래스가 캡쳐되지 못하는데 이유가 무엇일까요? 크게 중요한 문제는 아니지만 궁금하였습니다. 감사합니다.
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] build.gradle에서 에러가 발생합니다 자바 버전 17 사용했습니다 Could not apply requested plugin [id: 'io.spring.dependency-management', version: '1.1.5'] as it does not provide a plugin with id 'io.spring.dependency-management'. This is caused by an incorrect plugin implementation. Please contact the plugin author(s).> Plugin with id 'io.spring.dependency-management' not found.
html기초 강의에서 만들어진 웹페이지를 제 컴터에서 크롬키고 주소 복붙하면 들어가지는데 핸드폰(아이폰) 크롬앱으로 주소 복붙하면 안들어가지네요 다른 컴터에서도 url만으로 들어가지는 웹을 만들고싶은데..음 웹 강의를 따로 들어야할까요? 아니면 여기서 간단히 무엇만 추가하면 될까요
안녕하세요, 수업을 들으면서 간혹 타자를 잘못 치게 되는 경우가 있는데 이럴때 입력 창에서 어떻게 뒤로 가기를 하거나 빠져나갈 수 있는 방법이 있을까요? 예를들어 제가 exit을 입력해야 하는데 잘못하여 'by'로 잘못 입력 후 엔터를 치니 화살표가 뜨면서 계속 해당 칸에서만 입력이 가능합니다. 이런 경우 어떻게 원래 입력위치로 돌아가서 'exit'으로 입력을 할 수 있을까요? 현재로서는 방법을 알지 못하여 창을 아예 껐다가 모든 명령어를 다시 입력 후 재진행하고 있으나 혹시 이와 같은 상황에서 명령어로 수정이 가능할 지 궁금하여 문의드립니다. 감사합니다.
Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:191) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:87) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentWithDefaults(JdbcEnvironmentInitiator.java:143) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] 이런식의 오류가 났는데 데베설정이 잘못돼서 그런건가요 코듣상의 문제는 없는거 같습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의 보고 똑같이 코딩했는데 localhost:8080 이렇게넣었을때 welcom화면으로 index.html이 뜹니다 다른분들이질문하신 글들을 다 읽어보고 답변해주신내용들 대로 다 실행해보았으나 해결이 되지 않아, 같은 내용이지만 글을 올립니다.. home에서 ctrl + B했을때 home.html화면이 잘 떴었고, 전체기간 캐시도 삭제해 봤습니다.. 그리고 index.html지우면 화이트라벨 에러뜨면서 안되더라구요. 제거 https://drive.google.com/file/d/1mDv9-Z_r6aChpDBx1ZhtlJZL0dZG6Hzj/view?usp=sharing