묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
k번째 수
안녕하세요 강사님 보통 문제에서 T처럼 여러케이스가 주어진다고 되어있으면 for문을 많이쓰나요 아니면 while문으로 많이 쓰나요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
DM 채팅하기 질문드립니다.
강의장면에서 크롬창 2개켜서 포커스를 해야만 실시간 채팅이 반영된다고 말씀해주셨는데요. 제가 컴퓨터 1대를 더 준비해서 컴퓨터2대로 통신을 해봤는데 이미 포커싱이 된 상태에서는 실시간으로 채팅이 올라오지 않더라구요. 포커싱을 한번 해제했다가 돌아와야 반영됬습니다. (하지만 Socket.io는 바로 data를 받아옵니다) onMessage에서는 실시간으로 data를 받아와 mutateChat()함수도 실행되는데 chatData가 바꼇음에도 불구하고 리렌더링이 진행되지 않았습니다. 아마 immutable하게 바꾸지 않아서 그런것 같은데.... 아래 코드에서 mutateChat()을 통해 chatData를 변경하면 리렌더링이 일어나야하는데 리렌더링이 일어나지 않아서 실시간으로 반영이 안되는 것 같습니다. 혹시 이 부분은 제가 잘못한게 있는 것인지 아니면 의도한 것인지 궁금합니다. const onMessage = useCallback( (data: IDM) => { if (data.SenderId === Number(id) && myData.id !== Number(id)) { mutateChat((chatData) => { chatData?.[0].unshift(data); console.log(chatData); // 여기서 chatData가 변경됬음에도 불구하고 리렌더링이 일어나지 않습니다. return chatData; }, false).then(() => { if (scrollbarRef.current) { if ( scrollbarRef.current.getScrollHeight() < scrollbarRef.current.getClientHeight() + scrollbarRef.current.getScrollTop() + 150 ) { //console.log('scrollToBottom!', scrollbarRef.current?.getValues()); setTimeout(() => { scrollbarRef.current?.scrollToBottom(); }, 50); } } }); } }, [chatData, scrollbarRef], );
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
코딩 스타일 및 포인터에 관한 질문
1. 문자열 길이 계산 함수 int GetStringLength(char* str) { int lengthCount = 0; bool endOfStr = false; while (endOfStr == false) { endOfStr = *(str + lengthCount++) == '\0' ? true : false; } return --lengthCount; } 코드 길이를 최대한 줄여보고 싶어서 전위, 후위 연산자를 이렇게 사용을 해봤는데 이런 방식이 일반적인 회사에서 사용하기에 적절한 방식일까요? 2. 포인터를 매개 변수로 전달할 때 void StringConcatenation(char* dest, char* source, char joinWord) { int endOfDest = 0; while (dest[endOfDest] != '\0') { endOfDest++; } dest[endOfDest++] = joinWord; StringCopy((dest + endOfDest), source); } 기존 구현한 함수를 재사용하기 위해 포인터의 위치를 의도적으로 이동시킨 상태로 전달해주었고 결과는 의도한 대로 나왔습니다. 이러한 방식 또한 코딩 스타일로서의 문제가 없는지, 또는 이렇게 사용할 경우 발생할 수 있는 위험성 같은 것이 있는지 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JUnit 4를 설치해야 할까요?
안녕하세요, 스프링 핵심 원리 강의 수강 후 이 강의를 들으러 왔습니다. 스프링 핵심 원리 강의에서는 JUnit에 대해 명시적으로 버전 설정을 하지 않았고, JUnit5를 사용했던 것 같습니다. JUnit에 대해 잘 알지는 못하지만 강의에서 다뤘던 부분 정도만 이해하고 있습니다. 그래서 여쭤보고 싶은 것은, JUnit4를 사용하지 않고 5버전을 사용하면 강의 진행에 있어 차질이 있는지, 작성되는 코드가 다른지 궁금합니다. 항상 강의 잘 듣고 있습니다. 감사합니다.
-
미해결프론트엔드 개발자를 위한 웹팩
질문이요!
제가 웹팩을 듣고나서 되게 신박하고 정말 좋아서 웹팩을 활용해서 포트폴리오를 만들 계획인데 조금 걸리는게 있습니다. 그 전에는 제가 직접 cdn쳐서 코드 들고 html에 붙여넣고 cafe24에 도메인,호스팅을 구매해서 ftp에 해당 파일만 넣으면 로컬이 아니더라도 어느 pc나 모바일에서 도메인으로 볼 수 있었지만, 웹팩을 활용해 만든 파일은 어떻게 해야 로컬이 아닌 다른 pc에서 도메인으로 쳐도 볼 수 있는지 궁금합니다. 그냥 폴더 자체를 ftp에 넣으면 되는건가요?
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
data-position 지정 질문드립니다.
function processTouchMove(event){ event.preventDefault(); let currentX = event.clientX || event.touches[0].screenX; nowActiveLi = Number(currentActiveLi) + (Number(currentX)-Number(touchstartX)); currentClassList.style.transition = 'transfrom 0s linear'; currentClassList.style.transform = 'translateX('+String(nowActiveLi)+'px)'; } 마지막 마우스끌기에관한 강의에서 나온 코드입니다. currentActiveLi = currentClassList.getAttribute('data-position') 이 설정되어 있는데 currentClassList.style.transform = 'translateX('+String(nowActiveLi)+'px)' 이 실행된다음 currentClassList.setAttribute('data-position',nowActiveLi) 를 하지않는 이유가 궁금합니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
node server.js 명령어를 입력하면 오류가 나옵니다
SyntaxError: Unexpected string in JSON at position 49 at JSON.parse (<anonymous>) at parse (C:\Users\김성범\Desktop\cap-server\node_modules\body-parser\lib\types\json.js:89:19) at C:\Users\김성범\Desktop\cap-server\node_modules\body-parser\lib\read.js:121:18 at invokeCallback (C:\Users\김성범\Desktop\cap-server\node_modules\raw-body\index.js:224:16) at done (C:\Users\김성범\Desktop\cap-server\node_modules\raw-body\index.js:213:7) at IncomingMessage.onEnd (C:\Users\김성범\Desktop\cap-server\node_modules\raw-body\index.js:273:7) at IncomingMessage.emit (events.js:327:22) at endReadableNT (internal/streams/readable.js:1327:12) at processTicksAndRejections (internal/process/task_queues.js:80:21) QUERY : {} QUERY : {}
-
미해결애플 웹사이트 인터랙션 클론!
버그가 있는것 같아요`
화면상단에서 100px 정도 스크롤 한 상태에서 새로 고침 하면. 0번 째 씬 이미지 로드한 뒤 initAfterLoadImages() 를 호출하면서 화면이 스스륵 밀려 올라가는데, 0번 째 씬 로드 후 2번째 씬 이미지 마저 모두 로드되면 initAfterLoadImages()를 또한 번 호출 하면서 다시한번 스스륵 밀려 올라가네요~ 중복으로 올라가요~~ 추후에 시간이 되시면 개선 버전 파일도 올려주시면 좋을 것 같아요~
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
소수 판단시 j값 설정과 runtime오류 문의
안녕하세요. 강사님, 강사님이 풀어 주신 방법대로 해보다가 의문이 생겨 질문 남깁니다. 제공해주신 답의 inner for문에서 ch[j] =1, 이렇게 하면 이번문제의answer답은 맞을지 몰라도 소수인 자기자신도 1로 체크가 되기때문에 만약 배열에서 소수를 출력하라고 한다면 틀린 로직이 되는 것 같습니다. 정말로 배열에서 소수가 아닌 것만 체크하려고 이런식으로 변경해보았는데 runtime오류가 발생합니다. ide에서는 잘돌아가는데 답제출시 되지않네요ㅠ 왜 그런것인가요? import java.util.*; class Main{ public int solution(int n) { int answer = 0; int[] arr = new int[n+1]; for(int i=2; i<=n; i++) { if(arr[i] == 0) { answer++; for(int j=2; i*j<=n; j++) { arr[i*j]=1; } } } return answer; } public static void main(String[] args) { MainC = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if(n <= 1) return; System.out.println(C.solution(n)); } }
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
upload시 에러
업로드 상품등록하기를 누를 시 에러가 발생하고 콘솔에는 아래와 같이 나타납니다. 검색해보니 CORS 정책 어쩌고하면서 서버쪽에 무언갈 허용을 해줘야하는 거같은데 강의에서는 아무 문제없이 돌아가는데 저는 왜 에러가 발생되는 것일까요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
스크롤바 수정하면서 궁금한 사항이 생겼습니다!
항상 좋은 강의해주셔셔 감사합니다! 질문이 있습니다. 채팅입력란에서 글씨를 입력하고 enter를 누르면 http통신을 통해 채팅내역을 저장하고 불러오는데요! 혹시 이 부분도 Socket.io를 통해 실시간으로 주고 받으면 더 좋을 것 같은데 http통신으로 구현한 이유가 있을까요? 현재 프로젝트에서는 워크페이스와 채널에 접속한 사용자 유무만 Socket.io를 통해 갱신해주는 것 같아서요! 혹은 채팅을 보내고 내역을 주고받는 것도 Socket.io로 구현할 수 있는지 혹은 단점이 있는지.. 궁금합니다.
-
미해결몇 줄로 끝내는 인터랙티브 웹 개발 노하우 [초급편]
크로스브라우징
삭제된 글입니다
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
로그인일때 만 로그아웃 버튼보이게 하는법 알수있을까요?
로그인일때 만 로그아웃 버튼보이게 하는법 알수있을까요?
-
해결됨코로나맵 개발자와 함께하는 지도서비스 만들기 1
코로나 데이터에 대한 질문과 구현 방법
안녕하세요. 수강완료한 학생?(회사원)입니다. 너무 재밌게 잘 들었습니다. 궁금한게 있어서 글 남겨요. 질문은 2가지 인데요. 1. 실제 코로나 감염자 정보의 데이터는 어디서, 어떻게 가져오시나요? 2. 위의 획득한 코로나 감염자 정보를 가지고, 실제로 저장하시는 db는 aws의 s3를 이용하시는 중이세요? *db를 이용한 데이터 저장방법과 그것을 이용해서 화면에 출력하는 내용은 코로나맵 2번째 강의를 들으려고 합니다. 바쁘신데 죄송하지만 답변 주시면 감사하겠습니다. 수고하세요~
-
미해결1:1채팅 만들기(Android + Kotlin + Firebase)
빨간색 글씨때문에 막혀요. 그리고 Cloud Firestore 초기화 코드가 달라요.
val user =User(uid, username.text.toString())에서 username부분이 빨간색이 떠요. val db = FirebaseFirestore.getInstance.collection("users") 에서 FirebaseFirestore가 빨간색이 떠요. addOnSuccessListener{ Log.d(TAG, "데이터베이스 성공")}addOnFailureListener{ Log.d(TAG, "데이터베이스 실패")}에서 addOnSuccessListener와 addOnFailureListener가 빨간색이 떠요.multiDexEnabled true와 "com.android.support:multidex:1.0.3"은 어디서 나온건가요?어디서 복사하기 붙여넣기 했나요? 파이어스토어 데이터베이스에서 검색해봐도 똑같은코드가 없습니다. 어떻게 했는지 모르겠어요.package com.example.chatting_video import android.content.Intentimport androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport com.google.firebase.auth.FirebaseAuthimport kotlinx.android.synthetic.main.activity_main.*import android.util.Log as Logimport kotlinx.android.synthetic.main.activity_main.login_button_main as login_button_mainclass MainActivity : AppCompatActivity() {private lateinit var auth: FirebaseAuth// ... private val TAG: String = MainActivity::class.java.simpleName override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)"auth = FirebaseAuth.getInstance()join_button.setOnClickListener { val email = email_area.text.toString()val password = password_area.text.toString()auth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this) { task -> if (task.isSuccessful) {// Sign in success, update UI with the signed-in user's information Log.d(TAG, "성공")val uid = FirebaseAuth.getInstance().uid val user =User(uid, username.text.toString())// 여기에서 데이터베이스에 넣음 val db = FirebaseFirestore.getInstance.collection("users")db.document(uid).set(user)addOnSuccessListener{ Log.d(TAG, "데이터베이스 성공")} addOnFailureListener{ Log.d(TAG, "데이터베이스 실패")} val intent = Intent(this, ChatListActivity::class.java)intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK startActivity(intent)} else {Log.d(TAG, "실패", task.exception)}} } login_button_main.setOnClickListener { val intent = Intent(this, LoginActivity::class.java)startActivity(intent)} }} plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-android-extensions'}apply plugin: 'com.google.gms.google-services'android { compileSdkVersion 30 buildToolsVersion "30.0.3" defaultConfig { applicationId "com.example.chatting_video" minSdkVersion 16 targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true } 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 "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.2.0' implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'com.google.android.material:material:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'com.google.firebase:firebase-auth:19.3.1' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' implementation platform('com.google.firebase:firebase-bom:27.1.0') implementation 'com.google.firebase:firebase-analytics' implementation platform('com.google.firebase:firebase-bom:26.8.0')}
-
미해결1:1채팅 만들기(Android + Kotlin + Firebase)
chatting_video 타이틀 제거가 안되요.
Styles.xml파일이 없어서 https://lktprogrammer.tistory.com/147 참고해서 새로 파일을 만들었습니다. <?xml version="1.0" encoding="utf-8"?><resources> <style name="TEXTVIEW_STYLE"> <item name="android:text">TEST를 위한 Textview입니다.</item> <item name="android:textSize">20dp</item> <item name="android:textColor">#fb7606</item> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> </resources> 를 입력했습니다. <item name ="colorPrimary">@color/colorPrimary</item> <item name ="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> 을 입력하면 뒤에 @color/""시작하는 부분이 빨간색으로 나와요. 그리고 저는 Chatting_video부분이 안짤려져요. 그대로 있어요. 어떻게 빼신지 알려주세요. 그리고 android:backgroundTint="#fb7606" 버튼은 꼭 백그라운드틴트로 해야 색깔이 바뀌는데 맞나요? 동영상에서는 그냥 백그라운드로 색깔을 바꿨는데 동영상과 실제가 너무 다릅니다. 아래 intent를 소문자 i를 대문자 I로 Intent로 다 바꿔야 하나요? 소문자 intent는 언제쓰이고, 대문자 Intent는 언제 쓰나요? 아래 코드 잘못된거 있으면 알려주세요. auth = Firebase.auth는 auth를 getInstance()로 바꿔줘야하나요? auth = FirebaseAuth.getInstance() 이렇게 FirebaseAuth부분도 바꿔줘야 하나요? package com.example.chatting_videoimport android.content.Intentimport androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport com.google.firebase.auth.FirebaseAuthimport kotlinx.android.synthetic.main.activity_main.*import android.util.Log as Logimport kotlinx.android.synthetic.main.activity_main.login_button_main as login_button_mainclass MainActivity : AppCompatActivity() { private lateinit var auth: FirebaseAuth// ... private val TAG: String = MainActivity::class.java.simpleName override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) auth = FirebaseAuth.getInstance() join_button.setOnClickListener { val email = email_area.text.toString() val password = password_area.text.toString() auth.createUserWithEmailAndPassword(email, password) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "성공") val intent = Intent(this, ChatListActivity::class.java) intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK startActivity(intent) } else { Log.d(TAG, "실패", task.exception) } } } login_button_main.setOnClickListener { val intent = Intent(this, LoginActivity::class.java) startActivity(intent) } } } <?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ChatListActivity"></androidx.constraintlayout.widget.ConstraintLayout>
-
해결됨[기초-응용] 다양한 환경을 앤서블(Ansible)로 관리하기 with 베이그런트(Vagrant)
안녕하세요 설치를 도와주는 베이그런트(Vagrant) 수업을 듣고 다른부분이 있어 질문 드립닌다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. 막단에 보면 Unmounting Virtualbox Guest Additions ISO from: /mnt ==> default: Checking for guest additions in VM... 이 코드 부분이 영상에 있는 부분과 다르게 나옵니다 vagrant file에서 config.vm.synced_folder ".", "/vagrant", disabled: true 베이그런트 파일에서 공유 폴더 설정을 위와 같이 바꿨는데 혹시 어떤 조치를 취해야 저 오류를 없앨 수 있을까요...- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
server에 get 요청을 보내는 부분
attributes 내용중 soldout 추가하는 부분이 강의에 없는 것 같습니다. 이후 연동되는 강의에서 문제가 발생합니다.
-
미해결실전 리액트 프로그래밍
셀렉트 박스를 바꿔도 아무런 반응이 없어요
안녕하세요 강사님 셀렉트 박스 옵션을 다른걸로 선택하면 선택한것들이 모두 사라져요 어디에서 문제인지 잘모르겠는데 봐주시면 감사하겠습니다. https://github.com/hyunsokstar/prac-react/blob/master/src/friend/container/FriendMain.js
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
후속강의 질문드려요~
안녕하세요 이제 고급 문제풀이반만 앞두고 잇는데요 혹시 이후에 후속강의 들은 언제쯤 나올까요? [백문이불여일타] 데이터 분석가의 업무를 위한 SQL 이 강의가 언제쯤 나올지 궁금합니다!