묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인스턴스가 두개일 때
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강사님이 설명해주신 것 중 memberService쪽과 memberRepository에 있는 MemoryMemberRepository는 다른것이다 라고 말씀하셨습니다 따라서 인스턴스가 두개가 만들어진것이고 static이라 문제가 없을 테지만 static이 아니라면 다른 DB를 사용하는 것이기 때문에 내용이 틀려 질 수 있다고 하셨는데여기에 대해서 더 자세히 알고싶습니다.왜 다른 것인지 궁금합니다좀 더 찾아보고 싶은데 어떤 개념을 검색해보면 될까요 ? 감사합니다.
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
회원가입을 하면 no로 나옵니다
gradle - project// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.google.gms:google-services:4.3.15' } } plugins { id 'com.android.application' version '8.0.1' apply false id 'com.android.library' version '8.0.1' apply false id 'org.jetbrains.kotlin.android' version '1.8.20' apply false }gradle - appplugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' id 'com.google.gms.google-services' } android { namespace 'com.example.myapplication' compileSdk 33 defaultConfig { applicationId "com.example.myapplication" minSdk 24 targetSdk 33 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } } dependencies { implementation 'androidx.core:core-ktx:1.8.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.5.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' implementation platform('com.google.firebase:firebase-bom:32.0.0') implementation 'com.google.firebase:firebase-analytics-ktx' implementation 'com.google.firebase:firebase-auth-ktx' }MainActivitypackage com.example.myapplication import android.content.ContentValues.TAG import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Button import android.widget.Toast import com.google.firebase.auth.FirebaseAuth import com.google.firebase.auth.ktx.auth import com.google.firebase.ktx.Firebase class MainActivity : AppCompatActivity() { private lateinit var auth: FirebaseAuth override fun onCreate(savedInstanceState: Bundle?) { auth = Firebase.auth super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val joinBtnClicked=findViewById<Button>(R.id.joinBtn) joinBtnClicked.setOnClickListener { auth.createUserWithEmailAndPassword("asd@asd.com", "12341234") .addOnCompleteListener(this) { task -> if (task.isSuccessful) { Toast.makeText(this,"ok",Toast.LENGTH_SHORT).show() } else { Toast.makeText(this,"no",Toast.LENGTH_SHORT).show() Log.e(TAG, "createUserWithEmail:failure", task.exception) } } } } }
-
해결됨웹 게임을 만들며 배우는 React
hooks 재실행에 대해
6-5 로또 강의에서 useMemo 가르치시기 전에 "hooks의 특성상 전체가 계속 다시 실행된다"라는 말씀을 하셨고, useState(초기값)도 불필요하게 계속 재실행되기에 함수 결과값으로 기억하기 위해 useMemo를 쓴다는 것인데그 말씀대로라면 강의 초반 구구단 챕터에서const [first, setFirst] = React.useState(Math.ceil(Math.random() * 9)) const [second, setSecond] = React.useState(Math.ceil(Math.random()*9)) const [value, setValue] = React.useState('') const [result, setResult] = React.useState('') const inputRef = React.useRef() const submit = (e) => { e.preventDefault() if(Number(value)===first * second) { setResult('정답') setValue('') setFirst(Math.ceil(Math.random()*9)) setSecond(Math.ceil(Math.random()*9)) } else { setResult('땡') setValue('') } inputRef.current.focus() }submit함수에 setFirst(Math.ceil(Math.random()*9)), setSecond(Math.ceil(Math.random()*9))를 안써도 되지 않나요?가장 위에 useState(Math.ceil(Math.random() * 9)) 으로 초기값을 지정해놨으니까 어차피 렌더링 될 때마다 useState가 재실행 되니까 setFirst와 setSecond는 필요 없는 것 아닌가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[4-K] 반례 찾기가 어렵습니다.. ! ㅠ
#include <bits/stdc++.h> using namespace std; int T, N, M, A, B; // 체크해야할 그래프의 수, node 수, edge 수 vector<int> graph[1004]; int vis[1004]; int dfs(int here){ vis[here] = 1; // 방문 int ret = 1; if(graph[here].size()){ for(auto i : graph[here]){ if(vis[i]) continue; ret += dfs(i); } } return ret; } bool isTree(){ if(dfs(1) != N || M != (N-1)) return false; // Vertex = Edge - 1 return true; } int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> T; while(T--){ cin >> N >> M; // 1부터 N까지의 노드 for(int i = 0 ; i < M ; i++){ cin >> A >> B; graph[A].push_back(B); graph[B].push_back(A); } if(isTree()){ cout << "tree"; }else{ cout << "graph"; }; for(int i = 0 ; i <= 1004 ; i++) graph[i].clear(); // for(auto i : graph) {if(i.size()) i.clear();} // 초기화. memset(vis, 0, sizeof(vis)); // T개의 그래프 개수가 주어지고, 각각의 그래프에 대해 N, M이 주어짐. // M개의 라인 동안 A,B 가 주어짐. } } // 트리의 조건. // 0) 모든 노드에 접근가능. ~ isTree() => 모든 노드에 접근해보는 dfs 만약 아니라면? -> 나가리. (개수가 N이 아니면) // Vertex = Edge - 1 같은 방식으로 푼것 같은데 아무리 해도 반례를 찾을 수가 없습니다 ㅠㅠ테스트케이스는 다 통과했는데, 1%에서 틀렸습니다가 뜨네요.. 항상 풀던 int 반환형 dfs로 했는데 왜 안되는지 이해가 안되네요 ㅠㅠ
-
미해결MS Azure 애저 클라우드 서비스 구축 이해와 보안
NSG을 활용한 네트워크 트래픽 필터링 실습 중 문의 사항이 있습니다.
우선 질문은 마지막 실습인 myVM1에 80포트로 접속이 안되는 문제입니다.'아래와 같이 myNSG 규칙이 설정이 되어 있고아래와 같이 myVM1 애플리케이션 보안 그룹이 설정 되어 있습니다. 아래에서myVM1 설정이 myNSG 및 myVM1NSG 설정이 되어 있는데 접속이 안됩니다. 제가 뭘 실수를 했는지 잘 안되네요...ㅠㅠ확인 한번 부탁 드립니다. 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
인접행렬을 기반으로 탐색하기 블로그 정답코드
안녕하세요 선생님 수업 잘 듣고있습니다. http://boj.kr/f04608a73b92415eb201ffc29830dcf1위 코드는 블로그 2주차 인접행렬을 기반으로 탐색하기의 정답코드입니다. 선생님께서는 a[1][2] = 1; a[1][3] = 1; a[3][4] = 1; a[2][1] = 1; a[3][1] = 1; a[4][3] = 1;부분을 main함수 안에다 설정해놓으셨는데 전역변수가 아니라 main함수안에 설정해 놓으신 이유가 궁금합니다.또 저 위의 main함수 안에 설정된 값들이 어떻게 go함수가 메인함수보다 더 위에 있음에도 불구하고 go함수에서 참조가 가능한지도 궁금합니다. 강의 잘 듣고 있습니다 감사합니다!
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HashMap 에 Integer를 넣어도 되지 않나요?
[질문 내용]강의에서 약 10분25초 쯤에 MemberSaveControllerV3 에서 age 를 Integer 형태로 변환을 해주고 있는데 처음부터 HashMap에 String이 아니라 Integer 형태로 반환해주었다면 Integer 변환 처리는 안해도되지않나요??HashMap 에 String, String으로 설정?한 이유가 궁금합니다.
-
해결됨Svelte.js SPA 영화 검색 프로젝트
snowtemplate 를 설치하는중에 에러가 발생합니다.
안녕하세요 예제를 따라가다 보니 snowtempalte를 npm으로 설치중에 에러가 발생하네요강의 촬영시와 시간이 좀 흘러서 설치에 문제가 있어보이는데 보완할 수 있는 내용을 명시해주시면 좋을 것 같습니다.감사합니다.
-
해결됨홍정모의 따라하며 배우는 C++
1.14 #define
10:20 정도에#define LIKE_APPLEint main(){#ifdef LIKE_APPLEcout << "Apple" << endl;}이 상황일 때define은 뒤의 macro를 그 뒤의 걸로 교체해준다고 했는데#define LIKE_APPLE 뒤에는 아무것도 없으니 #ifdef 뒤의 LIKE_APPLE을 빈칸으로 교체해주는 건가?NO!#ifdef LIKE_APPLE 같이 preprocessor 라인 안에서는 교체 안 한다.라고 하셨습니다.그럼 만약, preprocessor 라인이 아니라 cout << LIKE_APPLE; 같이 평범한 라인일 경우 빈칸이 출력되나요?
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
xml에 아무리 찾아도 오류가 없는데 이상합니다
Execution failed for task ':app:extractDeepLinksDebug'. > org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. 오류가 뜨는데 구글링 chatgpt 통해서 알아봐도 아무리 봐도 xml오류가 없습니다..6시간째 찾는중인데 도와주세요 ㅠㅠ
-
해결됨홍정모의 따라하며 배우는 C++
1.14 Conditional Compilation을 많이 쓰는 경우
선생님께서 8:50 정도에,Conditional Compilation을 많이 쓸 때는 이 프로그램이 build 시작하기 전에 윈도우즈든지 리눅스든지 좀 알고 시작하자 이럴 때라고 하셨습니다...그런데 이게 무슨 뜻인지 잘 모르겠는데 혹시 구체적으로 설명해주실 수 있으실까요?ㅠㅠ
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
EntityManager 도 Component 로 인식하는 것인가요?
안녕하세요! 이전 수업에서 Autowired로 주입 시키려면 스프링 빈에서 관리하는 객체여야한다고 배웠고, 스프링 빈에서 관리하려면 @Component 어노테이션이 있어야 한다고 이해했습니다.근데 EntityManager는 컴포넌트가 아닌데 왜Autowired 대상이 되는지 이해가 안됩니다ㅜㅜ감사합니다..
-
해결됨
김영한 스프링 DB-2 Test/resources 폴더
안녕하세요 김영한님 스프링 db2강의를 듣는중 강사님께서 올려주신 프로젝트에는 보시는것처럼 test / resources 파일이 있어 test에서 application.properties파일에 접근할 수 있습니다.강의에서 배운내용을 적용하기위해 새로 플젝을까서 공부하고있는데 보시는것과같이 resources폴더가 없더라구요. 이런경우엔 어떻게 해결하면될까요
-
미해결Slack 클론 코딩[실시간 채팅 with React]
데이터 질문이요
const onSubmitForm = useCallback( (e) => { e.preventDefault(); if (chat?.trim() && chatData) { const savedChat = chat; mutateChat((prevChatData) => { prevChatData?.[0].unshift({ id: (chatData[0][0]?.id || 0) + 1, content: savedChat, SenderId: myData.id, Sender: myData, ReceiverId: userData.id, Receiver: userData, createdAt: new Date(), }); return prevChatData; }, false).then(() => { localStorage.setItem(`${workspace}-${id}`, new Date().getTime().toString()); setChat(''); if (scrollbarRef.current) { console.log('scrollToBottom!', scrollbarRef.current?.getValues()); scrollbarRef.current.scrollToBottom(); } }); axios .post(`/api/workspaces/${workspace}/dms/${id}/chats`, { content: chat, }) .then(() => console.log('first')) .catch(console.error); } }, [chat, workspace, id, myData, userData, chatData, mutateChat, setChat], ); const onMessage = useCallback( (data: IDM) => { if (data.SenderId === Number(id) && myData.id !== Number(id)) { mutateChat((chatData) => { chatData?.[0].unshift(data); return chatData; }, false) 이부분은 socket?.on('dm', onMessage) dm보내는 페이지에서 디엠을 보낼 때 onSubmitForm에서 mutate가 먼저 실행돼서 화면 데이터를 먼저 바꿔주고 그 다음 서버로 데이터를 보낸 뒤 처리하는 과정에서 socket.emit()이 실행되고 onMessage가 실행되는 걸로 이해했는데요. onMessage가 받는 데이터가 onSumbitForm의 mutate가 인자로 받는 함수랑 똑같아서 중복작업이 아닌가 싶어서 onMessage mutate 안의 chat.Data?.[0].unshift(data)를 지우고 실행해봐도 똑같은 결과가 나오는데 이 코드는 왜 있는 건가요?
-
해결됨Verilog FPGA Program 1 (Arty A7-35T)
SPI에서 Master 내의 miso 값 update 과정에서 질문있습니다.
안녕하세요. FPGA_intro_v16.pdf 파일 내의 chapter 6.2.3에서 질문이 있습니다.152-182 line에서,miso의 값을 update하는 과정에서, freq=100이라고 한다면, SLAVE_ID[7]이 update 된 후 SLAVE_ID[6]은 90 clock cycle 후에 update 되는 것으로 보입니다. 그 이후에는 200cycle마다 SLAVE_ID[6] ~ wdata[0]까지 주기적으로 update 되는 것으로 보입니다.제가 코드를 잘 해석한 것이 맞다면, SLAVE_ID[7]과 SLAVE[7] 사이에서만 주기성이 깨진(?) 것으로 보이는데 이는 ready state에서 data를 한 bit라도 미리 보내서 s_send에서 소모되는 clock cycle을 조금이라도 줄이기 위함인지, 다른 특별한 목적이 있는지, 저의 해석이 틀린 것인지 궁금하여 질문드립니다.
-
미해결스프링 핵심 원리 - 기본편
메소드 오버라이딩 오류
OrderServiceImplTest라는 파일로 테스트 하려던 중 createOrder와 관련된 오버라이드 오류가 발생했습니다. OrderServcieImpl 클래스에서는 The method createOrder(Long, String, int) of type OrderServiceImpl must override or implement a supertype method 라는 오류가 발생했고MemberRepository 클래스에서는The field OrderServiceImpl.discountPolicy is not visible 이 발생했습니다.DiscountPolicy 클래스에서는(1) Duplicate method createOrder(OrderServiceImpl, Long, String, int) in type DiscountPolicy(2) The field OrderServiceImpl.memberRepository is not visible(3) Duplicate method createOrder(OrderServiceImpl, Long, String, int) in type DiscountPolicy 이 차례로 발생하였습니다.오버라이드 관련 오류인건 알겠는데, 어디서 어떤 부분을 고쳐야할지 막막하네요 2시간 30분 가량 구글링도 해보고 직접 코드도 수정해봤는데 오히려 먼 산으로 가는 느낌입니다. 도와주세요 ㅜ_ㅜ
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
nodejs express에서 type(commonjs,module) 관련 질문
서버작동을 위한 node app.js를 실행할때에 dotenv를 require, import를 하면서 문의점이 발생했습니다. //server.js import { creatApp } from "./app.js"; import database from "./models/database.js"; const startServer = async () => { try { await database; const app = creatApp(); const PORT = process.env.PORT; app.listen(PORT, () => { console.log(`server is listening on ${PORT}👌`); }); } catch (err) { console.log(`Failed server connect❌`); database.destroy(); } }; startServer(); //database.js import { createConnection } from "typeorm"; import dotenv from "dotenv"; dotenv.config(); const database = createConnection({ type: process.env.DB_CONNECTION, host: process.env.DB_HOST, username: process.env.DB_USERNAME, password: process.env.DB_PASSWORD, port: process.env.DB_PORT, database: process.env.DB_DATABASE, }); export default database; 이렇게 진행하면 정상적으로 서버가 정상적으로 작동하지만 database.js에서의 dotenv import 부분을 require방식으로 server.js에 옮겨놓으면 에러가 발생합니다.근본적으로 commonJS(require)방식과 module(import)방식에 대해서 dotenv를 불러올때에 require를 쓰면 server.js에 적용할때는 정상적으로 작동하는데 import를 똑같은상황에서 적용하려면 왜 database.js로 넘어가야하는지 그게 궁금해졌습니다!require와 import를 해올 때 전반적으로는 rquire는 동기적이고 import비동기적인 성질(?)때문이라고 하기에 영향이 있는건지.. 근본적인 이해가 되지 않아서요..ㅠㅜ 도움 부탁드리겠습니다 ㅠㅜ!!!!
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
크롤링 프로그래밍 중 질문(제발 도와주세요ㅠㅠ)
위와 같은 사이트를 크롤링하려고 합니다. 첫번쨰 사진의 빨간색 동그라미 '현상태' 버튼을 개발자 도구로 찍어본 사진입니다.원하는 버튼을 눌러 나오는 숫자를 크롤링하여 디스플레이 하려고 하는데 일단 버튼 자체가 크롤링이 되지 않습니다... 버튼 뿐만 아니라 다른 정보도 위와 같이 []로만 뜨고 아무것도 못읽어오네요ㅠㅠ셀레니움으로도, id나 다른 셀렉터로도 시도해봤는데 계속 아무것도 읽혀지지 않습니다... 며칠쨰 구글링 하다가 도저히 모르겠어서 질문글 남깁니다 도와주세요ㅠㅠ
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
session:spring-session-jdbc 의존성 추가 시 mysql 설정
당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요.만약 MySQL로 진행하시는 분들을 위해 session-jdbc 추가 시 SPRING_SESSION 테이블 추가가 안된다면 이 링크 참고해서 해주시면 되고자 공유드립니다.https://stackoverflow.com/questions/53823174/how-to-initialize-schema-in-spring-session-with-jdbc아래처럼 application.yml에 spring 프로퍼티 안에 해당 내용을 추가하시면 될듯합니다.session: jdbc: initialize-schema: always추가로 설정이 필요한 내용이 있으면 댓글 부탁드리겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
스프링 부트와 JPA 활용
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 수강생 입니다. 궁금한것이 있어 질문 합니다. JPA 를 하면서 궁금한것이 있어서 몇가지 적어 봅니다. JPA를 활용할때 JPA코드로 만들어진 테이블이 아닌 기존에 DDL로 만들어진 테이블 조회도 가능 할까요 ? - 이건 아직 제가 조회 부분을 안봐서 질문하는것일수도 있네요 ㅠ 실행하면서 JPA로 만들어진 테이블이 구성되는데 그럼 매번 실행할때마다 테이블을 지우고 생성되는건지 아니면 중복테이블을 체크하고 생성되는것일까요 ? ManyTOMany를 실무에선 안쓴다는 말이 다대다 구성을 안한다는 말씀이신거 같은데 그럼 다대다와 같은 경우를 중간테이블로 두어서 1대다 형식으로 구성하는 방안이 좋을까요 ?