선생님 강의 정말 좋네요! 정말 상세하게 알기 쉽게 알려주셔서 감사합니다. 저는 지금 useState(3)강의를 듣다가 여기저기 에러가 나고 있어서 여쭈어 봅니다. 혹시 강의 맨 마지막에 올려주신 소스코드에 Test.js 파일이 있거나, 어떤 파일을 참고해야하는 지 알 수 있을까요? (찾아보고는 있는데 잘 안보이네요.)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. class Node implements Comparable<Node>{ int v; int c; Node(int v, int c){ this.v=v; this.c=c; } @Override public int compareTo(Node o) { return o.c-this.c; //최장거리를 구해야하니까 기존과 반대로 } } public class Main { public static int[] dis; public static ArrayList<Node>[] graph; public static int n,m; public static void dij(int s) { PriorityQueue<Node> q = new PriorityQueue<>(); q.offer(new Node(s,0)); dis[s] = 0; while(!q.isEmpty()) { Node tmp = q.poll(); int now = tmp.v; int nowcost = tmp.c; if(nowcost<dis[now]) continue; //기존과 반대 for(Node ob : graph[now]) { if(dis[ob.v]<nowcost+ob.c) { //기존과 반대 dis[ob.v]= nowcost+ob.c; q.offer(new Node(ob.v, nowcost+ob.c)); } } } } 만약 문제에서 최단거리가 아닌 최장 거리를 구하라면 클래스의 정렬 순서와 다익스트라 메소드를 기존과 반대로 구현하면 될까요??
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요! 강사님 매번 강의 감사드립니다~~~ 다름이 아니라, 자꾸 여기서 에러가 발생하는데 transform 부분에 무슨 에러가 있는 지 도저히 모르겠어서요....ㅜ
Reference Counting의 코드가 멀티 쓰레드 환경에서 잘 작동한다고 말씀해주셨습니다. 제가 코드를 공부하고 있는데, RefCounting.h의 inline void Set(T* ptr) { _ptr = ptr; if (ptr) ptr->AddRef(); } 이 부분에서 if(ptr)은 통과를 했는데, ptr->AddRef()를 하기 직전에, 해당 ptr이 Release 되어서 nullptr이 되버린다면, nullptr의 AddRef()를 호출함으로 오류가 뜰 수 있다고 생각이 되었습니다. 이렇게 된다면 멀티 쓰레드 환경에서 잘 작동하지 않는다고 생각이 들었는데, 제가 수업을 들으면서 무언가 놓친 것이 있는 걸까요?
안녕하세요. 커넥션에 대해서 궁금해서 질문드립니다. DriverManager 또는 DriverManagerDataSource 또는 DataSourceTransactionManager는 모든 경우에 커넥션 풀을 생성하지 않고 커넥션할 때마다 DB에 세션을 생성하나요? DataSourceTransactionManager에 DriverManagerDataSource가 오면 커넥션 풀이 없고 hikari가 오면 모든 경우에 커넥션 풀이 생성되나요? 감사합니다.
//1번 filter인터페이스 filter<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; //2번 filter인터페이스 filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[]; //1번 예제 const filtered1 = ['1',2].filter((value)=>typeof value === 'string'); //2번 예제 const filtered2 = ['1',2].filter<string>((value)=>typeof value === 'string'); //3번 예제 (2번 예제 개선) const filtered3 = ['1',2].filter<string>((value): value is string => typeof value === 'string'); 위 코드를 기반으로, 궁금한 점이 있었습니다. [질문1] 1번, 2번 예제코드 모두 똑같이 filter의 콜백함수의 반환 타입을 value is string 으로 명시하지 않았는데, 2번은 오류가 발생하고 1번은 오류가 발생하지 않는지? [질문2] 왜 2번 예제처럼 제네릭 타입을 명시해줬을 때, filter의 콜백함수의 반환 타입을 value is string으로 따로 명시해줘야하는지? 그리고 이유를 생각해봤습니다. 제가 생각한 이유가 정확한지 모르겠어서 질문드립니다. [질문1에 대한 생각] 1번 예제는 타입추론 시 2번 인터페이스를 따르기 때문에 filter 콜백의 반환 타입을 명시하지 않아도 오류가 뜨지 않는 것으로 생각했습니다. (타입 추론은 정확히 되지 않지만) [질문2에 대한 생각] 2번 예제는 <string>으로 제네릭을 선언한 순간 1번 filter인터페이스를 따라야 합니다. 이때 filter의 콜백함수의 반환 타입을 value is string으로 명시하지 않으면 반환 타입이 boolean으로 추론되고, 이는 인터페이스와 맞지 않기 때문에 오류가 발생하는 것으로 이해했습니다. 따라서 3번 예제처럼 반환 타입을 타입 가드로 지정해 줬을 때는 오류가 뜨지 않았습니다. 수업내용 처럼 predicate를 따로 빼서 정의해서 사용하지 않아도 3번 예제처럼 작성해도 문제는 없는 걸까요?
안녕하세요. 강의를 통해 많은 도움 받고 있습니다. 일하면서 배우는 중이라 필요한 내용들을 그때마다 찾아서 공부하고 있습니다. 그런데 강의 특성상 각 단계를 차례대로 따라가지 않으면 새로운 세션을 공부하기 위한 베이스 코드가 없기 때문에 어려움을 겪고 있습니다. 혹시 version2의 각 세션을 시작하기 위한 베이스 코드를 제공해주시기는 어려울까요? 감사합니다.
안녕하세요 선생님! 강의를 듣기 전에 혼자 풀어보았습니다. 이중 for문으로 풀어서 시간복잡도 상으로는 좋지 않을 것 같은데 이것도 괜찮은 코드일까요? function solution(k, arr) { let answer = 0; let sum = 0; let check = 0; for (let i = 0; i < arr.length - 2; i++) { for (let j = 0; j < k; j++) { sum += arr[i + j]; check += 1; } answer = Math.max(answer, sum); sum = 0; check = 0; } return answer; } let a = [12, 15, 11, 20, 25, 10, 20, 19, 13, 15]; console.log(solution(3, a));
server state 관리를 swr 말고 react-query를 사용하려고 합니다. 아래와 같이 해당 queryKey를 가지고 stores에 대한 data를 전역으로 관리하고 싶었는데, fetchFunction 자리에 stores props가 들어갈 수 없어서 처음에 어떻게 initialdata를 가져올 수 있을지 잘 모르겠습니다.. react-query는 수업때 배우진 않지만 혹시 아시는 부분이 있다면 알려주시면 감사하겠습니다 !! const { data } = useQuery([queryKey], fetchFun)
[구버전] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정 (2020 ver.)
IntelliJ Ultimate 관련해서 정보가 많이 부족했는데 짧은 시간에 해주신 설명이 쉽게 배울 수 있어서 좋았습니다. 앞으로 강의 열어주시는거 기대중입니다. 다만 현재 intelliJ 버전이 23년 버전이 배포된 후로 영상을 찍으신 시점과 다른점이 꽤 있어서 오류해결하는데 시간이 좀 걸렸어요. 이 부분 개선해주시면 정말 감사드리겠습니다!
https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/mysql-connector-j-8.0.33.jar 제 경우 mariadb 커넥터 대신 mysql 커넥터 사용해서 해결했습니다. (... confluentXXX/share/java/kafka 폴더에 위치) 정말.. 하루종일 아래 예외로 애먹었네여.. Error while starting connector ... No suitable driver found for jdbc:mysql:// localhost:3307/mydb mariadb 버전별 커넥터를 5개정도 해봐도 안되어서 자포자기한 채로 mysql 커넥터를 사용하니 되었습니다 ㅠㅠ 자세한 버전 정보입니다. (윈도우) kafka : 2.13-3.4.0 kafka-connect-jdbc : 10.7.2 confluent : 7.4.0 mariaDB : 10.11 java : 17 설정 정보입니다. confluent/etc/kafka/connect-distributed.properties 89번 행 근처 plugin.path=\C:\\Work\\confluentinc-kafka-connect-jdbc-10.7.2\\lib confluent/bin/windows/kafka-run-class.bat 97번 행 근처 rem classpath addition for LSB style path if exist "%BASE_DIR%\share\java\kafka\*" ( call :concat "%BASE_DIR%\share\java\kafka\*" ) (...) 122번 행 근처 rem Log4j settings IF ["%KAFKA_LOG4J_OPTS%"] EQU [""] ( if exist %~dp0../../etc/kafka/tools-log4j.properties ( set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%~dp0../../etc/kafka/tools-log4j.properties ) else ( set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%BASE_DIR%/etc/kafka/tools-log4j.properties ) ) ELSE ( rem create logs directory IF not exist "%LOG_DIR%" ( mkdir "%LOG_DIR%" ) set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%~dp0../../etc/kafka/tools-log4j.properties ) confluent/bin/windows/connect-distributed.bat 28번 행 근처 rem Log4j settings IF ["%KAFKA_LOG4J_OPTS%"] EQU [""] ( set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%BASE_DIR%/etc/kafka/connect-log4j.properties -Dlog4j.config.dir=%BASE_DIR%/etc/kafka ) POST Request { "name":"my-source-connect", "config":{ "connector.class" : "io.confluent.connect.jdbc.JdbcSourceConnector", "connection.url":"jdbc:mysql://localhost:3307/mydb", "connection.user":"root", "connection.password":"1234", "mode":"incrementing", "incrementing.column.name":"id", "table.whitelist":"users", "topic.prefix":"my_topic_", "tasks.max":"1" } }