- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 def solution(l,k): result = [] curr = [] def backtracking(start, curr): if len(curr) == k: result.append(curr[:]) return for i in range(start, len(l)): curr.append(i+1) backtracking(i + 1, curr) curr.pop() backtracking(0, curr) return result 위의 코드에서 if len(curr) == k: 안에 result.append(curr[:]) 대신 result.append(curr)을 넣으면 result = [[], [], [], [], [], []]와 같이 값이 제대로 추가가 안 되던데 무슨 차이가 있는 건가요? main 함수에서 test1 = [] test2 = [1,2,3] test1.append(test2) print(test1) test1 = [] test1.append(test2[:]) print(test1) 이와 같이 테스트를 해보면 두 프린트 결과 모두 [[1,2,3]]으로 동일하게 나오는데 위의 경우는 달라서 질문 드립니다.
마지막 부분에 getBatchSize() 를 1000 정도 권장해주셨는데요. jdbcTemplate.batchUpdate() 는 내부적으로 배치사이즈만큼 for문을 통해 반복하는것 같습니다. 즉 실제 처리해야할 대상 데이터가 1000 개가 넘는다면 1000 번째 이후 데이터부터는 INSERT 가 안될거고요. 만약 1000개 미만이라면 예를 들어 500개밖에 없다면 501번째 반복때 java.lang.ArrayIndexOutOfBoundsException 발생할것 같습니다. 만약 chunk가 최대 1000개정도가 적당하다라는 말씀이신거면 모르겠지만 1000으로 하드코딩해서 쓴다 라고 하신것처럼 와닿아서.. 오해의 소지가 있는것 같아 남깁니다~ private void bulkProcessSettlements(Map<Long, BigDecimal> settlementMap, LocalDate paymentDate) { String sql = "INSERT INTO settlements (partner_id, total_amount, payment_date) VALUES (?, ?, ?)"; jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { // } @Override public int getBatchSize() { return 1000; } }); }
덮어씌워진다는게 이해가 안되서요! test1 = name();이 실행되었을때 홍길동이 입력되면 return 되는 값은 홍길동 아닌가요?? 질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 오류 내용: 로그인 시도 시 Wrong user name or password라고 뜹니다. ( Wrong user name or password [28000-232] 28000/28000 ) 스프링부트 버전: 3.4.2 H2 버전: 2.3.232 build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' } application.properties spring.application.name=hello-spring spring.datasource.url=jdbc:h2:tcp://localhost/~/test spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa 버전에 알맞게 h2를 설치한 후, 윈도우 환경에서 h2.bat를 실행했습니다. 강의자료를 보며 추가해야 할 코드를 다 추가한 것 같은데, 로그인이 되지 않고 무엇이 문제인지 모르겠습니다. 또, 새로고침 시에 사용자명이 기본적으로 sa가 아니라 계속 admin으로 표시됩니다. (로그인할 때는 sa로 바꿔 로그인 시도했습니다.)
각각의 CPU 코어에는 각각의 캐시 메모리가 있고 여기에 임의의 쓰레드가 할당되어 실행된다고 하셨습니다. RAM에서 캐시 메모리를 가져올 때 primitive type은 직접 값을 가져오므로 메모리 가시성 문제가 발생할 수 있지만 참조값을 가져오는 경우에는 캐시 메모리에서도 참조를 하게되므로 가시성 문제가 존재할 수 없는 구조인가요? synchronized 메서드 안에서 사용된 멤버 변수의 경우 자동적으로 volatile 로 처리된다고 이해하면 될까요? 항상 감사합니다!
안녕하세요 강의는 들었는데 외적으로 질문이 있습니다. 현재 회사 개발로 Object Detection 모델을 사용할려고 하는데 yolo는 라이센스 문제로 인해 사용을 못하고 MMDetection으로 RTMDet를 학습하여 video_demo.py를 통해 검출 결과 테스트를 진행을 했는데 output으로 저장된 동영상은 정상적인 속도로 실행이 되지만 show 옵션을 통해 gui 영상으로 보면 video frame이 낮은듯 엄청 느리고 끊기게 실행이 됩니다. 이게 정상적인건지 나중에 web cam으로 갔을때도 frame이 낮게 끊기듯이 보일지 궁금해서 질문 남깁니다. 그리고 실무에서도 라이센스 문제 없이 가장 많이 쓰이는 object detection 알고리즘이 있는지도 궁금합니다. 좋은 강의 항상 감사합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] thymeleaf를 사용해서 표를 만들려고 합니다. 상품명 | 과세/면세 | 구매처1 | 구매링크1 | 구매처2 | 구매링크2 .... 아이폰 | 과세 | 쿠팡 | coupang.com.... | 네이버 | naver.com..... 이런식으로 작성하려고 합니다. 우선 Controller에서 thymeleaf 로 넘기는거까지는 했는데 구매처 리스트에서 상품명 별 제일 많은 구매처 객체 개수에 맞게 제목을 구매처N 까지 늘려서 만들고 싶은데 방법이 있을까요??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님! 수업을 듣다가 궁금한 점이 생겨 남깁니다. hash table 파트에서 중복없이 해야 한다면 dictionary 로 하는 것보다 set()을 써서 하는게 더 편하지 않나요? 순열, 조합 파트에서 백트래킹 대신에 from itertools import permutations, combinations를 사용해서 풀어도 되나요? 혹시 순열, 조합, 부분집합 이외에 백트래킹을 활용해야 하는 코딩테스트 문제는 추가적으로 어떤 것이 있는지 궁금합니다!
안녕하세요 상속에 대해 질문 드립니다. 만약에 class GrandParents: def __init__(self): self.grandmother = 80 self.grandfather = 70 class Parents(GrandParents): def __init__(self): super().__init__() self.mother = 50 self.father = 50 class Child(Parents): def __init__(self): super().__init__() child_obj = Child() print(child_obj.grandmother) print(child_obj.grandfather) 위와 같이 상속을 진행한다고 했을 때, Child 클래스로 객체를 만들어 초기화를 진행하면 GrandParents의 생성자가 딸려나오는걸 볼수가 있는데 super().__init__을 사용할 때, 내(Child)가 상속받은 클래스(Parents) 내부의 메서드에서 상위 클래스(GrandParents)를 super()로 가져온다면 Child 클래스는 언제나 Parents와 GrandParents의 속성을 다 가지게 되는 것인가요?? 이런 식으로 상속하는 방식을 실무에서 자주 쓰기도 하는지 궁금합니다. 그리고 만약에, 저 상황에서 Child 클래스가 super().__init__을 사용하면서 GrandParents의 것을 가져오지 않고 Parents의 생성자만 super()로 가지고 올 수도 있나요?? 강의 잘 듣고 있습니다. 감사합니다.
안녕하세요 쿠케님! 강의에 나온 10분의 TTL이 없을시 조회수 증가 관련되서 질문드립니다!' 현 상황에서 게시글 접근시 마다 조회수 증가 API를 호출하고 있습니다. 테이블 정보는 다음과 같습니다. Board 테이블 id(auto-increment) readCount BoardRead 테이블 id(auto-increment) boardId userId 게시글 상세 접근시 마다 호출하는 '조회수 증가 API'의 흐름은 다음과 같습니다. 1. 해당 게시글을 유저가 조회 했는지 검증 (BoardRead 테이블에서 검증) 1-1. 조회 한 이력이 있으면 return; 2. Board 비관적 락 조회 3. Board 테이블 readCount 업데이트 4. BoardRead 테이블 insert Board의 readCount는 게시글 조회수를 나타내고, BoardRead는 '각 사용자는 게시글 1개당 1번 조회수 증가'를 검증하기 위한 용도 입니다. '각 사용자는 게시글 1개당 1번 조회수 증가' 정책을 반드시 가져가야 한다면 BoardRead 테이블에 있는 데이터도 레디스로 옮겨야 할까요? 그런데 조회수 데이터는 계속해서 쌓일테고 비즈니스에 중요하지 않은 데이터가 레디스 메모리만 차지하는 느낌이 들어서 꺼려지더 라구욤.. 강의 내용대로 TTL을 걸수 밖에 없는건가 고민도 듭니당.. (레디스는 클러스터 환경으로 사용하고 있습니다.) 기능은 그대로 유지하되 비관적 락을 뺄 수 있는 방법이 있을까요? ※ 번외로 트래픽 바로 몰리니까 비관적 락 로직 때문인지 잠금 이슈 나서 디비 바로 터졌버렸네요 하하하 ㅠ 비관적 락을 선호하지 않는 이유를 체감해버렸다.. ※ 뇌 + GPT 갈구니까 아래와 같은 여러 결론이 나왔습니다. 해결책1 1. Redis SET 자료구조로 중복 체크, 최초 조회면 TTL 걸어줌 2. 분산락(Redis)을 걸고, Board 테이블 readCount 업데이트 및 BoardRead Insert 수행 3. 락 해제 해결책2 1. Redis SET 자료구조로 중복 체크, 최초 조회면 TTL 걸어줌 2. 비동기로 Board 테이블 readCount 업데이트(낙관적 락 적용) 및 BoardRead Insert 수행 작성하면서 문득 'readCount를 정규화 할까?' 했는데 스케이링 넘 클것 같네요.. 이유는 테이블 설계를 JPA의 상속을 활용하는 방안으로 했기 때문에 readCount 필드가 '게시판'이란 추상 클래스에 위치해 있습니다. 주저리 주저리 적어봤는데 머릿속에 혼란이 오네요 ㅠㅠ 자기전 마지막 생각 레디스의 incr를 이용해 조회수 관리, 조회수 데이터는 mysql에 주기적으로 백업