묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[웹 퍼블리싱 실습] 웹 표준 사이트 만들기
영상 오류가 발생합니다
9:43 부터 영상이 재생되지 않습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
CPU Threads
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]여기에 질문 내용을 남겨주세요. CPU 하나가 쓰레드 여러개를 동시에 처리하는 것이 불가능하다고 하셨는데 이렇게 되면 CPU코어 수 이상으로 쓰레드를 생성하는 것이 효율적이라 할 수 있나요..?? 컨텍스트 스위칭 비용은 똑같은 것이 아닌가요? 잘 이해가 되지 않습니다CPU 코어 하나가 쓰레드 여러개를 동시에 처리하는 것은 불가능하지만, CPU 코어 하나에 여러개의 쓰레드를 할당할 수 있기 때문인가요?
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
실제 폰에서 테스트 시 리뷰 작성 버튼 위치
강사님.. 안녕하세요?좋은 강의 제공해 주셔서 감사드립니다.다름이 아니라 버그까진 아니지만, 실제 폰에 설치를 해서 테스트 해 보니리뷰 작성시에 내용을 쓰고 저장하기 버튼을 클릭할 수 없는 상황이 되더라고요.키보드가 내려오든가 입력 텍스트 박스를 줄이던가, 버튼이 누를 수 있게 올라가든가 하는 부분이 필요하지 않을까 생각됩니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
Spy 질문입니다.
안녕하세요 강사님.강사님 강의를 듣고 실무에 적용을 해보고 있습니다.예를 들어 A Service 테스트를 위한 테스트 코드에서Class AService { @Autowired private ARepository arepository; public void methodA() { arepository.procedure(); arepository.two(); } }위와 같이 구성이 되어 있는데 methodA에서 리포지토리의 procedure만 모킹처리를 하고싶습니다.테스트코드를 대략 아래와 같이 @Spy를 사용해서 의존성 주입을 하는데 작동이 안되어 문의드려요. 제가 한 방식이 잘못된걸까요?@ExtendWith(MockitoExtension.class) class Test { @InjectMocks; private AService aservice; @Spy private ARepository arepository; @Test void test() { doReturn("OK").when(arepository).procedure(); aservice.methodA(); } }
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
정밀도와 재현율의 트레이드오프(Trade off) - 01
정밀도와 재현율은 Trade-off관계가 있다고 하였는데, confusion matrix에서 Positive로 예측할 확률이 높아지면 FP와 TP가 같은 비율로 증가하게 되고 결과적으로 임계치가 낮아져 Positive로 분류할 확률이 높아지더라도 정밀도는 동일한 것 같다고 생각이 됩니다. 제 생각에서 잘 못 된 것이 무엇인지 모르겠습니다. 재현율은 당연히 높아지는 데, 정밀도는 왜 감소하는지 이해되지 않습니다. 만약 Positive로 예측할 확률이 높아지는 경우에 FP와 TP가 같은 비율만큼 증가하는 것이 아니라면 반드시 FP증가율이 TP증가율보다 커져서 필연적으로 정밀도가 증가할 수 밖에 없는 것인지도 궁금하며, 이유도 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2 - L 어디가 틀린건지 모르겠습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.http://boj.kr/479470df1029497d9df3d10d7ce3e633방식은 현재 골 넣은 시간을 입력 받고 원래 이기고 있던 상황이거나 상대가 골 넣었는데도 아직도 이기고 있는 상황에서 이전 시간과 현재 시간의 차이 만큼 팀의 승리 시간에 추가하는 방식입니다.두 팀의 골이 같아진 경우에는 마지막으로 골을 넣은 팀의 상대 팀의 승리 시간을 추가했습니다.마지막으로는 경기 종료 48분까지 이기고 있는 팀의 시간을 추가해서 출력했는데 예제 3번까지는 맞게 나오는데 제출해보면 틀리다고 나옵니다. 어디가 틀린 걸까요?
-
해결됨김영한의 실전 자바 - 기본편
이부분이 이해가 안갑니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]Pay pay = PayStore.findPay(option)뭐라고 말을 질문을 해야할지 모르겠지만 이 코드가 왜 되는건지 이해가 잘안됩니다.PayService 클래스에서 Pay pay = PayStore.findPay(option) 이 코드가 되는 이유가 PayStore 클래스가 public이기 떄문에 불러올수있는건가요? public은 같은패키지 안에서 공유 가능하기떄문에 저런 코드가 되는거죠? ㅠㅠ 질문을 이해하셨느지 모르겠지만 이 부분이 왜 되는지 이해가 안돼요
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
암시적 생성자 관련
암시적 복사 생성자는 암시적 기본 생성자와는 달리 명시적으로 기타 생성자를 만들어도 그대로 작동이 잘 되는 것 같은데문법 상으로 원래 이런 것인가요?그리고 다른 객체들의 경우 return 0; 이후에 소멸자를 호출하고 있지만Knight k5;k5 = (Knight)1;의 k5는return 0; 이전에 소멸자가 호출되는 것 같은데 이유가 무엇인가요?
-
해결됨스프링 핵심 원리 - 기본편
강사님께서 말씀하시는 "클라이언트 코드"는 무엇인가요 ??
클라이언트 코드라고 자주 언급해주시는데, 사용자와 관련되어 일하는 코드를 전반적으로 일컫는 말일까요 ???
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@Query 사용 시 연관테이블은 order by 가 불가한가요?
@Query("SELECT t From Team t join Fetch t.member m ORDER BY m.name desc")예를 들어 이런 식으로 Fetch join을 이용해서 연관테이블 리스트를 가져올 때에 정렬해서 가져오고 싶습니다.검색 등을 통해 해결해보려 했지만 방법을 모르겠네요 ㅠㅠ 만약 @Query가 안된다면 다른 방식으로 가져오는 방법이 있을까요?
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
안녕하세용 오튜브님 서버 개발자 취준생임다
고졸 비전공자고컴퓨터와 큰 연관 없이 살다언제부턴가 환경 개선에 관심 가지다보니서버 개발에도 관심 가지게 되었고지금은 취업 준비하고 있습니다 앞으로 웹도 개발하고앱도 개발하고 (시간나면)짬밥 쌓일 때 운좋게 로봇 인터페이스가 나오면로봇 개발도 해서 서로 시스템 통신할 수 있지 않을까라는 막연한 이유로그 때를 위한 재료로써 오제이 튜브님 임베디드 강의 구매했슴다지금 임베디드로 취업하기엔 솔직히 빡셀 것 같단 생각에 ㅎㅎ.. 정답일진 모르지만 불경기에 주식같은거 살면서 가만있으니 공부 열심히 해서 장학금도 받고 훌륭한 기계들도 만들어오시고 결혼해서 착실히 사는 분 본받아서 잘 살아보자 라는 맘에 깔짝깔짝 곁눈질 하고 다니려고 합니다 오제이튜브님 오늘도 화이팅 ^^
-
해결됨[왕기초] 후디니 게임 이펙트 만들기
warngle 기초 지식 2 랑 warngle 기초지식3 내용이 똑같아요
영상길이도 내용도 똑같은거같은데 오류인지 의도하신건지 궁금합니다
-
미해결스프링 핵심 원리 - 기본편
DIP와 관련된 어노테이션
강의 : 스프링 핵심원리 - "관심사의 분리" 현재 스프링 안쓰고 자바로만 하고 계시니 강의에는 안맞을 수도 있는데 궁금해서 질문 드립니다 ...DIP지키려고 객체생성 안해주고 인터페이스들을 선언만 해주고, 생성자 주입으로 마침내 DIP를 지킬 수 있다 이렇게 이해를 했습니다.여기서 더 나아가서 생성자도 쓰기 귀찮으니 @RequiredArgsConstructor쓰면 아래 코드에서 생성자 부분 안쓰고도 원래 의도대로 DIP지킬 수 있는거죠???
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
아니 강사님
이렇게 떠먹어도 되나..? 싶은 느낌이 자꾸 드는데요로드맵 다 들으면 강사님 없이 어떻게 살죠..?어쩔 수 없이 반복해야 되는 건가요..? :D오늘도 화이팅 ^^
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
EF사용시 async사용
EF 변경사항을 저장할 때 SaveChangeAsync가 아닌 SaveChange를 사용하게되면 해당 쓰래드는 blocking이 발생할텐데 괜찮나요? 제 추측으론EAP 기반 IO 통신이기때문에 어차피 패킷요청마다 개별의 쓰래드에서 처리가되니 굳이 async를 사용안해도 다른 패킷(Thread)에 대한 blocking이 이러나지 않으니까 그냥 SaveChange를 사용한건가? 라고 생각하긴 했는데 선생님의 답변을 듣고싶습니다.
-
미해결
파이썬 프로그램
파이썬에서 커널을 설정 해야 하는데 화면에 커널이 없습니다. 어떻게 커널를 실행 하난요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
커리큘럼 질문드립니다
취업목적이 아닌 개인 사업용으로 모바일 앱개발을 할 예정인데요 커리큘럼을 어떻게 가져가면 좋을지 문의 드립니다. 프로그래밍에 대한 지식은 전무합니다 (자바의정석 챕터 8까지 가볍게 읽어본게 전부입니다)
-
미해결
급합니다 ㅠㅠ 도와주십쇼 고수님들 리액트네이티브입니다.
리액트네이티브에서 카카오로 로그인하는건 되는데 카카오로 회원가입하려는게 안됩니다.카카오 개발자도 해서 테스트용 리다이랙트 유알아이랑 네이티브 앱 발급키도 받았씁니다.현재 어플을 만들고 있는 중이거든요 프로젝트로 ㅠ근데 카카오 로그인은 됩니다.근데 카카오 회원가입화면이 이 밑에 사진ㅊㅓ럼 적용되게 하고 싶은데 잘 안되네요 도와주십시오뭐가 문제인지 맨첫번쨰 코드는 App.js 코드이고 2번쨰 세번쨰 코드는 2가지로 구현해봣는데 안되는 코드들입니다 ㅠㅠㅠ import React, { useState } from 'react'; import { StyleSheet, View } from 'react-native'; import KakaoLogin from './component/KakaoLogin'; import Main from './component/Main'; import Sign from './component/Sign'; import KakaoSign from './component/KakaoSignUp'; import Superlogin from './component/Superlogin'; import { name as appName } from './app.json'; import { AppRegistry } from 'react-native'; // 각 페이지 컴포넌트를 렌더링하는 App 컴포넌트 const App = () => { const [currentPage, setCurrentPage] = useState('Main'); // 현재 페이지에 따라 해당 컴포넌트를 렌더링하는 함수 const renderCurrentPage = () => { switch (currentPage) { case 'Main': return <Main onSignUp={() => setCurrentPage('Sign')} onKakaoLogin={() => setCurrentPage('KakaoLogin')} />; case 'Sign': return <Sign onSignUpComplete={() => setCurrentPage('Main')} onKakaoSignUp={() => setCurrentPage('KakaoSignUp')} />; case 'KakaoLogin': return <KakaoLogin />; case 'KakaoSignUp': return <KakaoSign onSignUpComplete={() => setCurrentPage('Main')} />; case 'super': return <Superlogin />; default: return <Main onSignUp={() => setCurrentPage('Sign')} onKakaoLogin={() => setCurrentPage('KakaoLogin')} />; } }; return <View style={styles.container}>{renderCurrentPage()}</View>; }; const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', }, }); // App 컴포넌트를 앱 레지스트리에 등록 AppRegistry.registerComponent(appName, () => App); export default App;import React, { useEffect, useState } from 'react'; import { Button, Platform } from 'react-native'; import * as AuthSession from 'expo-auth-session'; import * as Random from 'expo-random'; import { StyleSheet } from 'react-native'; const useProxy = Platform.select({ web: false, default: true }); const redirectUri = AuthSession.makeRedirectUri({ useProxy }); export default function App() { const [request, response, promptAsync] = AuthSession.useAuthRequest( { clientId: '', redirectUri, responseType: 'code', scopes: ['profile', 'account_email'], extraParams: { response_type: 'code', }, }, { useProxy } ); useEffect(() => { if (response?.type === 'success') { const { code } = response.params; // TODO: 이 코드를 백엔드로 전송하여 액세스 토큰과 리프레시 토큰을 교환하세요. const fetchAccessToken = async () => { try { // 백엔드 엔드포인트에 맞게 URL을 수정해주세요. const response = await fetch('YOUR_BACKEND_ENDPOINT', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ code }), }); const data = await response.json(); // 성공적으로 토큰을 받아온 경우 console.log(data); // Or perform other actions based on the received tokens } catch (error) { console.error(error); } }; fetchAccessToken(); } }, [response]); return ( <Button disabled={!request} title="카카오 계정으로 회원가입" onPress={() => { promptAsync(); }} /> ); } const styles = StyleSheet.create({ container: { flex: 1, marginTop: 24, backgroundColor: '#fff', }, });KakaoSignup.jsimport React, { useEffect } from 'react'; import { View, Text, TouchableOpacity, StyleSheet } from 'react-native'; import * as AuthSession from 'expo-auth-session'; import * as WebBrowser from 'expo-web-browser'; // Make sure you complete the authentication session if the app is opened via a deep link WebBrowser.maybeCompleteAuthSession(); const KakaoSignUp = () => { // Replace 'YOUR_KAKAO_REST_API_KEY' with your actual Kakao REST API Key // For production, replace 'yourapp://redirect' with your actual redirect URI const [request, response, promptAsync] = AuthSession.useAuthRequest({ clientId: '', redirectUri: AuthSession.makeRedirectUri({ useProxy: false, native: ' http://localhost:8082/KakaoSign', // Custom URI scheme for standalone apps }), responseType: 'code', scopes: ['profile', 'account_email'], extraParams: { response_type: 'code', }, }, { useProxy: false }); useEffect(() => { if (response?.type === 'success') { const { code } = response.params; console.log('Authorization Code:', code); // Send the authorization code to your backend server to exchange it for an access token // and then proceed with user sign-up or sign-in process } }, [response]); // Render a button that, when pressed, initiates the OAuth flow return ( <View style={styles.container}> <Text style={styles.header}>MealJoy 회원가입</Text> <TouchableOpacity disabled={!request} onPress={() => { promptAsync(); }} style={styles.button} > <Text style={styles.buttonText}>카카오 계정으로 회원가입</Text> </TouchableOpacity> </View> ); }; // Define your styles for the components const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', padding: 20, backgroundColor: '#fff', }, header: { fontSize: 22, fontWeight: 'bold', marginBottom: 20, }, button: { backgroundColor: '#FEE500', padding: 15, borderRadius: 10, marginVertical: 10, }, buttonText: { color: '#000', fontWeight: 'bold', }, }); export default KakaoSignUp;
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
싱글톤 패턴을 구현하는 방법중 첫번째에 관해 질문 있습니다.
안녕하세요 큰돌님싱글톤 패턴을 구현하는 방법중 첫번째인 단순한 메서드 호출에 관해 질문이 있습니다.자바의 경우 단순한 메서드 호출을 통해 싱글톤 패턴 생성여부를 확인할때 멀티스레드 환경에서 인스턴스가 2개 이상 만들어질수 있다고 하셨는데싱글스레드 기반의 자바스크립트를 사용하여 싱글톤 패턴을 구현하는경우에는 1번의 방법만으로 패턴 구현하는것이 충분한가요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
Switch문에서 비교하는 값이 String이어도 되나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? -> 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? -> 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? -> 예[질문 내용]Switch 문에서 비교하는 값이 String이어도 되나요?앞선 강의에서 String 외 다른 타입들은 == 을 통해서 두 값이 같은지 비교하지만,String은 .equals 를 통해 값을 비교해주신다고 하셨는데switch문에서 case 별로 분기할 때, String 값이 들어가면 비교를 .equals 로 하도록 되는지가 궁금합니다. 수업을 듣다가 궁금해져서 아래와 같이 실습해보았는데결과는 제대로 나왔습니다. 그런데.. String 비교는 ==로 했을 때 제대로 나올 수도, 아닐 수도 있다고 하셨던 것 같아서 질문 남깁니다.package condition; public class Switch4 { public static void main(String[] args) { String subject = "math"; int class_number = switch (subject) { case "art" -> 1; case "math" -> 2; case "science" -> 3; default -> 0; }; System.out.println("class_number = " + class_number); // 결과는 2로 출력 } }