묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결그림으로 쉽게 배우는 운영체제
3번째 복습 스터디📖 를 진행하고 스터디원분들과 나눈 질문 입니다. (운영체제)
질문) 상호배제 기법중에서 세마포어와 모니터 이외에 뮤텍스도 있던데 혹시 강의 내용에서 뮤텍스가 빠진 이유가 있을까용?
-
미해결
강화학습 정책 평가와 정책 개선 과정에서
map = "4x4" SLIPPERY = False # 결정론적 환경 #SLIPPERY = True # 확률적 환경 # FrozenLake-v1 환경을 생성합니다. # desc: None이면 기본 맵을 사용합니다. # map_name: 사용할 맵의 이름을 지정합니다. # is_slippery: True이면 미끄러운 표면(확률적 환경)을 사용하고, False이면 결정론적 환경을 사용합니다. env = gym.make('FrozenLake-v1', desc=None, map_name=map, is_slippery = SLIPPERY) GAMMA = 0.9 THETA = 1e-7 num_states = env.observation_space.n num_actions = env.action_space.n transitions = env.P # 1. 모든 s에 대해 V(s) = 0과 임의의 pi(s)를 초기화 V = np.zeros(num_states) pi = np.ones([num_states, num_actions]) * 0.25 policy_stable = False # 정책이 안정적인지 여부를 나타내는 변수 while not policy_stable: #2. 정책 평가 while True: # delta 초기화 : delta <- 0 delta = 0 #각 s에 대해 반복 for s in range(num_states): # 업데이트 규칙: V(s) = sum(pi(a|s)*sum(p(s,a)*[r + gamma*v(s')])) for a, prob_a in enumerate(pi[s]): # s', r에 대해 합산 (각 행동 a에 대한 상태 전이 확률을 반영한 보상 합산) old_value = V[s] new_value = 0 for prob, s_, r, _ in transitions[s][a]: new_value += prob_a * prob * (r + GAMMA * V[s_]) V[s] = new_value # delta 갱신: delta <-- max(delta|v - V(s)|) delta = max(delta, np.abs(old_value - V[s])) # delta가 THETA보다 작으면 정책 평가 종료 if delta < THETA: break #3. 정책 개선 #policy_stable <- true old_pi = copy.deepcopy(pi) #각 s에 대해: for s in range(num_states): # pi_s <- argmax_a(sum(p(s',r|s,a)*[r + gamma*V(s')])) # 새로운 행동 가치 초기화 new_action_values = np.zeros(num_actions) for a in range(num_actions): # 각 행동 a에 대해 상태 전이 확률과 보상을 반영한 가치 합산 for prob, s_, r, _ in transitions[s][a]: new_action_values[a] += prob * (r + GAMMA * V[s_]) # 새로운 정책 결정: 가치가 최대가 되는 행동 선택 new_action = np.argmax(new_action_values) pi[s] = np.eye(num_actions)[new_action] if np.array_equal(old_pi, pi): policy_stable = True else: policy_stable = False # 이전 정책과 새로운 정책이 동일한지 확인하여 정책 안정성 판단위의 과정의 정책 평가와 정책 개선 과정을 반복하다보면, 정책과 가치함수가 수렴하게 됩니다. 이 때 3번 정책 개선 과정을 잘 이해한 것인지 궁금합니다.1. 초기 정책은 0,1,2,3번 행동에 대해 모두 0.25 확률이 부여되어 있었습니다.2. 단 한번의 정책 개선이 발생해도, 특정 행동의 확률만 1이 되고 나머지가 0이 됩니다.3. 정책 평가와 정책 개선이 반복되더라도, 특정 행동의 확률이 1이고 나머지 행동이 0인 것은 모든 STATE에서 동일합니다. 다만 확률이 1이되는 행동이 바뀔 뿐입니다.4. 이전 정책과 현재 정책이 모두 일치하면, 정책 개선은 종료됩니다.즉, STOCHASTIC한 정책이 단 한 번의 정책 개선으로 DETERMINISTIC하게 변화하고, 이를 정책 평가와 정책 개선의 반복으로 특정한 가치함수와, 정책으로 수렴하게 된다, 라고 이해한 것이 옳은 것인가요?
-
해결됨오라클 SQL 데이터베이스
ORA-01017 오류 때문에 진도가 못나가고있습니다.!
다 맞게 작성한것같은데 hr hr 이고 이름 비번도요,뭐가 잘못된걸까요 ㅠㅠ
-
미해결Practical Testing: 실용적인 테스트 가이드
테스트코드 순서 질문
강의를 듣다 궁금한게 생겼습니다.보통 API 개발을 할 때, 컨트롤러단 부터 완성이 되고 나머지 서비스나 영속성 계층 로직이 완성 되는것 같은데 테스트 코드 순서를 어떻게 가져가시나요 ?강의에서는 영속성 -> 서비스 -> 컨트롤러 순으로 테스트가 진행 되는데 이 순서대로 하시나요 ?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-X 질문있습니다
int go(int here, int yamyam, int capacity){ if(here == m) return 0; int &ret = dp[here][yamyam][capacity]; if(ret) return ret; ret = max(ret, go(here + 1, yamyam, c)); // <--- 이부분 for(int i = 0; i < n; i++){ bool isbeforeYAM = (1 << i) & yamyam; bool isYAMCAN = (capacity - a[i]) >= 0; if(!isbeforeYAM && isYAMCAN)ret = max(ret, go(here, yamyam | (1 << i), capacity - a[i]) + 1); } return ret; }이 go라는 메소드에서 ret = max(ret, go(here + 1, yamyam, c)); 이 이해가 가지 않습니다.다음 가방으로 넘어가는데 왜 현재의 (가방, 보석, 용량) 에 값을 저장하나요?
-
해결됨자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
리액티브-part2
안녕하세요 강의내용과는 다른 질문인데요.part1 다음의 part2 강의도 계획중신건가요??만약 part2도 있다면 part2는 어떤 내용애 관한 강의인지 궁금하니다!
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
57분35초 dict형태 관련해서 질문있습니다.
n <=1이므로 1을 반환받았는데, memo[n]=result가 왜 dict형태로 {2:2} 형태로 저장되는지를 모르겠습니다. 어떤 강좌에서 질문하셨는지 알 수 있습니다.영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다.이미 다른 누군가가 질문을 한 이력이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다.학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다.제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다.시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산)질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
D 예시의 공백을 인식하지 않는 것 같습니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 D에서 세번째 'ab cd ' 마지막에 공백이 있음에도 공백제거를 하지않아도 True 판단되고있어서 강의 내용과 다릅니다. 제가 작업한 것에 문제가 있는 것인지 확인부탁드려요.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
업캐스팅 관련 질문드려요. 자식의 형태로 자식을 생성한것도 생성자의 경우 부모를 먼저 호출하는것일까요? 그리고 부모의 형태로 부모를 생성하더라도 매서드의 경우 자식이 오버라이드 하는걸까요?
질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야어떤 강좌에서 질문하셨는지 알 수 있습니다.영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다.이미 다른 누군가가 질문을 한 이력이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다.학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다.제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다.시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산)질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.
-
미해결김영한의 실전 자바 - 중급 1편
private 인데 static 을 붙인이유
강사님 답변을 부탁드려봅니다 왜 private인데 static 을 붙여뒀는지 알수있을까요?어차피 NetworkMessage클래스를 Network클래스 안에서만 쓰려고 private 을 붙여뒀는데 왜 static 을 붙여둔건가요? public class Network { public void sendMessage(String text) { NetworkMessage networkMessage = new NetworkMessage(text); networkMessage.print(); } private static class NetworkMessage { private String content; public NetworkMessage(String content) { this.content = content; } public void print() { System.out.println(content); } } }
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
코드 빈칸문제 나오면
문법적인 빈칸 문제면 괜찮은데 정렬 같은 수학적인게 들어가면 막막하고 풀지 못하겠더라구요ㅠ 이런건 어떻게 공부해야 하나요 여러 문제를 많이 경험하고 풀어보면 해결될까요?
-
미해결김영한의 실전 자바 - 중급 1편
static 붙인 이유
왜 static 을 붙여뒀는지 알수있을까요?NetworkMessage클래스를 Network클래스 안에서만 쓰려고 private 을 붙여뒀는데 왜 static 을 붙여둔건가요? public class Network { public void sendMessage(String text) { NetworkMessage networkMessage = new NetworkMessage(text); networkMessage.print(); } private static class NetworkMessage { private String content; public NetworkMessage(String content) { this.content = content; } public void print() { System.out.println(content); } } }
-
미해결스프링 시큐리티 OAuth2
최초로그인 -> 로그아웃 후 다시 로그인 시 질문
처음 서버 run 하고 google, naver, keycloak 전부 처음에는 아이디, 비밀번호를 입력하는 사용자입력이 필수적인데, 한번 로그인하고 나서는 웹어플리케이션 서버를 종료하고 다시 시작해도 구글, 네이버, keycloak 계정으로 로그인하는 과정이 필요없이 바로 인증이 됩니다. 왜이런건가요? 로그아웃했으면 당연히 다시 로그인하는 과정이 필요한데 이러면 잘못된거 아닌가요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka connector 등록 후 조회 시 에러
강의에서 알려주신대로 my-source-connect라는 connector를 등록한 후 http://localhost:8083/connectors로 GET 조회시 아래와 같이 connector가 잘 뜨는 것을 확인하고http://localhost:8083/connectors/my-source-connect/status로 GET 조회시 아래와 같은 오류 메시지가 응답됐습니다.{ "name": "my-source-connect", "connector": { "state": "FAILED", "worker_id": "127.0.0.1:8083", "trace": "java.lang.NoSuchMethodError: 'boolean org.apache.kafka.common.utils.Utils.isBlank(java.lang.String)'\n\tat io.confluent.connect.jdbc.util.StringUtils.isNotBlank(StringUtils.java:79)\n\tat io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.getJdbcCredentialsProvider(GenericDatabaseDialect.java:2010)\n\tat io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.<init>(GenericDatabaseDialect.java:192)\n\tat io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect.<init>(MySqlDatabaseDialect.java:67)\n\tat io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect$Provider.create(MySqlDatabaseDialect.java:57)\n\tat io.confluent.connect.jdbc.dialect.DatabaseDialects.findBestFor(DatabaseDialects.java:134)\n\tat io.confluent.connect.jdbc.JdbcSourceConnector.start(JdbcSourceConnector.java:87)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:185)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:210)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:349)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:332)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:840)\n" }, "tasks": [], "type": "source" } kafka connect 터미널 로그에는 다음과 같이 찍혀있었습니다.[2024-10-13 23:15:36,747] ERROR WorkerConnector{id=my-source-connect} Error while starting connector (org.apache.kafka.connect.runtime.WorkerConnector:193) java.lang.NoSuchMethodError: 'boolean org.apache.kafka.common.utils.Utils.isBlank(java.lang.String)' at io.confluent.connect.jdbc.util.StringUtils.isNotBlank(StringUtils.java:79) at io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.getJdbcCredentialsProvider(GenericDatabaseDialect.java:2010) at io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.<init>(GenericDatabaseDialect.java:192) at io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect.<init>(MySqlDatabaseDialect.java:67) at io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect$Provider.create(MySqlDatabaseDialect.java:57) at io.confluent.connect.jdbc.dialect.DatabaseDialects.findBestFor(DatabaseDialects.java:134) at io.confluent.connect.jdbc.JdbcSourceConnector.start(JdbcSourceConnector.java:87) at org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:185) at org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:210) at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:349) at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:332) at org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140) at org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) [2024-10-13 23:15:36,747] ERROR [Worker clientId=connect-1, groupId=connect-cluster] Failed to start connector 'my-source-connect' (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1339) org.apache.kafka.connect.errors.ConnectException: Failed to start connector: my-source-connect at org.apache.kafka.connect.runtime.distributed.DistributedHerder.lambda$startConnector$5(DistributedHerder.java:1305) at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:335) at org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140) at org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) 다음은 제가 시도해본 해결방법 3가지 입니다. 테이블 이름 수정https://www.inflearn.com/community/questions/618181/source-connector-%EC%98%A4%EB%A5%98?srsltid=AfmBOooaiA_jLl3ijo0mPjPhnhjM4FQeCSDVdXjgXAAHMsN7sojnFkIRusers 테이블은 예약어라고 해서 user1으로 수정해서 POST 요청을 보냈을 때는 아래와 같이 응답이 잘 왔습니다. mariadb-java-client.jar 파일 올바른 폴더에 넣기https://www.inflearn.com/community/questions/970970/kafka-connectors-%EC%97%90%EB%9F%AC?srsltid=AfmBOoopKwFbCFMIgaLAKg5-4urO7Fzzxwl2ChzmqH8evzNEc4H1ECsD다음 글을 참고해서 mariadb-java-client.jar 파일을 아래와 같이 kafka 폴더에 옮겨 놓았습니다 플러그인 확인https://www.inflearn.com/community/questions/245034/localhost-8083-connectors-%ED%98%B8%EC%B6%9C%EC%8B%9C-%EC%97%90%EB%9F%AC%EA%B0%80-%EB%B0%9C%EC%83%9D%ED%95%A9%EB%8B%88%EB%8B%A4?srsltid=AfmBOophiRaXpfFVHkArBbyirgaPdUfbGUP2W8o5Px-k_ZZDJ2b7wgmf다음 글을 참고해서 http://localhost:8083/connector-plugins [ { "class": "io.confluent.connect.jdbc.JdbcSinkConnector", "type": "sink", "version": "10.8.0" }, { "class": "io.confluent.connect.jdbc.JdbcSourceConnector", "type": "source", "version": "10.8.0" }, { "class": "org.apache.kafka.connect.file.FileStreamSinkConnector", "type": "sink", "version": "6.1.0-ccs" }, { "class": "org.apache.kafka.connect.file.FileStreamSourceConnector", "type": "source", "version": "6.1.0-ccs" }, { "class": "org.apache.kafka.connect.mirror.MirrorCheckpointConnector", "type": "source", "version": "1" }, { "class": "org.apache.kafka.connect.mirror.MirrorHeartbeatConnector", "type": "source", "version": "1" }, { "class": "org.apache.kafka.connect.mirror.MirrorSourceConnector", "type": "source", "version": "1" } ]다음과 같이 응답이 왔습니다.jdbc connector는 잘 등록된 것 같습니다.. 뭐가 문제일까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
공부를 오늘 시작했습니다...
일요일에 시험을 치는데 일주일 동안 어떻게 공부하는게 좋을까요..???ㅠ 많이 떨립니다
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
식별 연산자 질문 드립니다.
안녕하세요.식별연산자 질문 드립니다. print(b is c) # False print(b is not c) # True print(b == c) # True -> Falseprint(b != c) # False -> True 위와 같이 되야되는게 아닌가요?제가 뭘 놓치고 있나요 ;;;
-
미해결Practical Testing: 실용적인 테스트 가이드
@SpringBootTest 사용 이유
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요! Persistence Layer에서 @Mock 대신 @SpringBootTest를 사용해 단위 테스트를 진행하는 이유가 궁금합니다! 리소스가 더 사용되면서 테스트가 오래걸리는 단점이 있지 않나요?같은 이유로, Business Layer에서 @Mock과 @InjectionMocks으로 단위테스트를 진행하는 대신, @SpringBootTest로 통합테스트를 선호하시는 이유가 무엇인가요?@SpringBootTest를 사용해도 큰 단점은 없는걸까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
선생님 기출은 어디서 풀 수 있을까요?
선생님 기출은 어디서 풀 수 있을까요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
첫번째 테스트 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]test2.mv도 만들고 h2버전 build.gradle에 입력두 해봤는데 해결이 안되네요 ㅠㅠ
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
싱글톤 패턴 강의에 나온 예시 질문
안녕하세요 큰돌님 싱글톤 패턴 강의를 듣다가 예시 코드를 보고 궁금한 점이 있어서 질문 드립니다. 강의에서 보여주셨던 mongoDB의 커넥션 코드에서 싱글톤 패턴은 DB.instance가 존재하면, 기존의 DB.instance를 반환함으로써 인스턴스 생성에 대한 비용을 절감하는 것이라고 이해하였습니다.그런데 여기에서 connect()함수의 this.instance는 인스턴스 내부에 instance라는 속성이 없기 때문에 undefined가 되므로 DB.instance를 반환해야 하는게 아닌지 질문드립니다.