묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Slack 클론 코딩[실시간 채팅 with React]
SPA에서 e.preventDefault()를 사용해야하는 이유가 뭔가요?
https://developer.mozilla.org/ko/docs/Web/API/Event/preventDefault - 위의 링크에서 e.preventDefault() 함수가, 이벤트가 취소 가능한 경우 이벤트의 전파를 막지 않고 이벤트를 취소한다고 되어 있는데, 설명중에서 SPA에서 e.preventDefault() 사용해야한다고 하셨는데 이유가 궁금합니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
socket.io-client typescript 모듈 에러 관련
현재 시점으로 npm i @types/socket.io-client하면 3.0.0 버전으로 설치가되어 2버전과 맞지 않아 에러가 나옵니다. 저 같은 경우는 제로초님의 깃헙에 올라와있는 json을 보고 1.4.35 버전으로 명시하여 설치하여 문제를 해결하였습니다. 혹시 문제 있으신 분 확인해보세요. npm i -D @types/socket.io-client@1.4.35
-
미해결하울의 안드로이드 인스타그램 클론 만들기
3강 SHA - 1키를 넣는 방법 sputnik7565님의 SHA1 보충 설명입니다
사용 설정을 한 후 빨간색으로 표시한 '프로젝트 설정'으로 갑니다. 이런 화면이 보이실 텐데 좀 더 내려 보시면 붉은색 부분이 비어져 있을 것입니다. 이쪽에 붙여 넣기를 하시면 됩니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
dedupingInterval에 관련해서 질문드립니다!
제가 이 강의를 듣고 이해한게 맞는지 궁금해서 질문올립니다! dedupingInterval을 사용하지 않으면 swr이 재요청 하는 기준이 다른 텝을 갔다가 오는 경우 재요청을 보내게 되고 dedupingInterval 옵션을 추가하게 되면 그 시간안에는 탭을 갔다와도 재요청을 보내지 않고 캐시해서 그대로 데이터를 사용하다가 그 시간이 끝나면 다시 재요청을 보내는 것이 맞는지 궁금합니다!
-
미해결Slack 클론 코딩[실시간 채팅 with React]
Login에서 mutate 대신 revalidate를 써야 하네요.
저번에 mutate를 이용해서 서버에서 가져오는 데이터를 바로 data에 집어 넣는 식으로 했었는데, 그걸 유지했더니 리다이렉트 할때 에러가 나는 군요. .then((response) => { mutate(response.data) }) 리다이렉트를 할 때 워크스페이스 페이지가 열림과 동시에 user를 가져와야 에러가 안 생기는데, mutate를 쓰면 워크스페이스 페이지가 열릴 때 서버에 요청을 안보내네요... 그래서 실습 코드 뒤져보다가 revalidate를 쓴 걸 보고 revalidate를 쓰도록 코드를 수정했더니 workspace 들어가자마자 user 요청을 보내네요. 아직 알쏭달쏭 합니다. swr은 로컬 스토리지를 쓸때 디버깅을 하기가 어려운 것 같아요.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
안녕하세요. 프론트엔드 세팅하기 챕터 질문입니다.
안녕하세요 zerocho님. 이번 강의에서 [프론트엔드 세팅하기] 챕터 관련해서 질문드립니다. 강의 후반부에서 babel이 image, css 파일 등을 js파일로 변환한다고 하셨는데 그게 아니라 webpack의 loader(style-loader, file-loader) 가 js파일로 번들링 해주는거 아닌가요? 혹시 제가 모르는 부분이 있나해서 이렇게 문의드립니다. 혹시 참고할만한 문서가 있다면 같이 주시면 도움 될 것 같습니다:) 감사합니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
커스텀 훅 useInput에서 Dispatch<SetStateAction<T>>에 관한 설명을 어디서 찾아볼수 있을까요?
커스텀 훅 useInput에서 Dispatch<SetStateAction<T>>에 관한 설명을 어디서 찾아볼수 있을까요?
-
해결됨애플 웹사이트 인터랙션 클론!
비디오에 맞춰 텍스트가 나타나는 타이밍 질문입니다
안녕하세요 선생님 강의 잘 듣고있습니다!! 다름이 아니라 스크롤 섹션 2의 경우에는 비디오 타이밍에 맞춰 텍스트가 나오는데 그 타이밍 설정은 직접 콘솔로 scrollRatio 값을 확인해가면서 정하면 되는걸까요??
-
해결됨애플 웹사이트 인터랙션 클론!
스크롤 이벤트 시작하는 위치 질문입니다
안녕하세요 선생님 강의 잘 듣고 있습니다. 다름이 아니라 스크롤 이벤트를 시작하는 위치 구하는 부분에서 이벤트가 실행될 scroll-section의 offsetTop으로 구하는 것과 이벤트가 실행될 scroll-section 위에 존재하는 scroll-section들의 높이 합으로 구하는 것이 차이가 있는지 궁금합니다.
-
미해결하울의 안드로이드 인스타그램 클론 만들기
파이어베이스 -> Database가 아닌 Cloud Firebase입니다.
파이어베이스 -> Database가 아닌 Cloud Firebase입니다. 업데이트 되어 영상과 좀 다릅니다. rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth.uid != null; } } }
-
미해결하울의 안드로이드 인스타그램 클론 만들기
[개선코드]비밀번호 6자리일 땐 오류 납니다. 다음 코드 확인해주세요.
// 회원가입 or 로그인하는 코드fun signinAndSignup(){ auth?.createUserWithEmailAndPassword(email_edittext.text.toString(), password_edittext.text.toString()) ?.addOnCompleteListener{ task -> if(task.isSuccessful){ println("_________________________________________task succesful") // creating a user account moveMainPage(task.result?.user) } else if(task.exception?.message.isNullOrEmpty()){ println("_________________________________________FUCKING ERROR") //show the error message Toast.makeText(this, task.exception?.message, Toast.LENGTH_LONG).show() } else { println("_________________________________________FUCKGING SIGNIN EMAIL") if(password_edittext.text.toString().length < 6){ println("_________________________________________FUCKGING SIGNIN EMAIL_PASSWORD LENGTH PROBLEM") println("_______________________________________${password_edittext.text.toString().length}") Toast.makeText(this, "패스워드는 최소 6자리 이상이여야 합니다. 다시 입력 바랍니다.", Toast.LENGTH_LONG).show() }else{ println("_________________________________________FUCKGING SIGNIN EMAIL_SIGNINEMAIL") println("_______________________________________${password_edittext.text.toString().length}") // login if you have account signinEmail() } } }} 프린트문은 지우고 하셔두 됩니다. // 회원가입 or 로그인하는 코드fun signinAndSignup(){ auth?.createUserWithEmailAndPassword(email_edittext.text.toString(), password_edittext.text.toString()) ?.addOnCompleteListener{ task -> if(task.isSuccessful){ // creating a user account moveMainPage(task.result?.user) } else if(task.exception?.message.isNullOrEmpty()){ //show the error message Toast.makeText(this, task.exception?.message, Toast.LENGTH_LONG).show() } else { // 비밀번호가 6자리 미만일 때 Toast 띄우기! if(password_edittext.text.toString().length < 6){ Toast.makeText(this, "패스워드는 최소 6자리 이상이여야 합니다. 다시 입력 바랍니다.", Toast.LENGTH_LONG).show() }else{ // 비밀번호가 6자리 이상일 때, 회원가입하고 로그인하기 signinEmail() } } }}
-
미해결하울의 안드로이드 인스타그램 클론 만들기
9분 30초경 onCreate 오류나면 확인하세요.
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.READ_EXTERNAL_STORAGE), 1) android.Manifest 입니다,
-
미해결하울의 안드로이드 인스타그램 클론 만들기
프로필 사진 관련
원래는 유저의 프로필 사진이 떠야하는 부분이 저렇게 제가 업로드한 이미지로 뜨는데 activity에서는 설정한대로 기본이미지로 뜨는데 실행하면 저렇게 뜨는데 어느부분을 수정해야할까요?
-
미해결하울의 안드로이드 인스타그램 클론 만들기
로그인 후 어플 종료
일반 아이디 비밀번호 입력, 페이스북 , 구글 로그인이 원래는 로그인 후 main으로 넘어가고 user에도 잘 뜨던게 어느 순간부터 저런 메시지가 뜨고 버튼만 누르면 그냥 자동으로 앱이 종료가 됩니다,, 근데 user에는 표시가 되는데 그다음이 문제인거 같아요 이메일 주소당 여러계정은 허용해놨습니다 ( 저번 질문에서 비슷한 문제를 앱크래시?라고 알려주셔서 crashlytics를 해봤는데 아무것4도 안뜨네요 ㅠㅠ)
-
해결됨애플 웹사이트 인터랙션 클론!
캔버스 크기 관련 질문
안녕하세요. 질문이 있는데요 저는 캔버스 화면을 애플 공홈처럼 꽉 채우고 싶은데 innerHeight에 맞춰서 그런가 이런 식으로 나오네요(1920*1080 모니터 기준) outHeight나 그 외 다른 height 값들을 대신 넣으면 화면이 꽉 차는 대신 화면이 안 예쁘게 늘어납니다. f11하면 제가 원하는대로 1920*1080 풀사이즈 정확하게 나오고요. 어떻게 수정해야 할까요? const heightRatio = window.innerHeight / 1080; sceneInfo[1].objs.canvas.style.transform = `translate3d(-50%, -50%, 0) scale(${heightRatio})`;
-
미해결하울의 안드로이드 인스타그램 클론 만들기
유저가 없으면 구글 로그인이 안되는 부분
강의와 같이 users정보를 삭제하고 실행을 후 구글 로그인을 누르면 앱이 종료가 되고 실행 후 아이디 비번을 입력하고 signup을 누르고 하면 로그인이 됩니다,, 혹시 이게 맞는건가요?
-
미해결하울의 안드로이드 인스타그램 클론 만들기
현재 홈화면에 최근에 올린 게시물이 아닌 맨 먼저 올린 게시물이 상단에 위치하는데, 최근에 올린 게시물이 상단에 노출되도록 하려면 어떻게 해야 할까요?>?
현재 홈화면에 최근에 올린 게시물이 아닌 맨 먼저 올린 게시물이 상단에 위치하는데, 최근에 올린 게시물이 상단에 노출되도록 하려면 어떻게 해야 할까요?>?
-
해결됨애플 웹사이트 인터랙션 클론!
switch(currentScene) case2번 질문드려요!
쌤 코드 기준으로 질문드려여 :> case 0: 일 경우, 동영상이 밑의 사진처럼 로드시 drawImage 처리를 해줘야 스크롤 처리가 없어도 한번에 뜨는 반면에, case2:일 경우는 동영상이 로드 시의 처리 없이도 바로 뜨는데 이게 왜그런지 궁금하네유
-
해결됨BBC 인터랙티브 페이지 "코로나19가 바꿀 사무실의 미래" 클론
action이 true일때 실행되는데 false에서 초기화가 안되요ㅠ
(()=>{ const actions = { birdFlies(key){ if(key){ document.querySelector('[data-index="2"] .bird').style.transform = `translateX(${window.innerWidth}px)`; } else{ document.querySelector('[data-index="2"] .bird').style.transform = `translateX(-100%)`; } }, birdFlies2(key){ if(key){ document.querySelector('[data-index="5"] .bird').style.transform = `translate(${window.innerWidth}px, ${-window.innerHeight * 0.7}px`; } else{ document.querySelector('[data-index="5"] .bird').style.transform = `translateX(-100%)`; } } }; const stepElems = document.querySelectorAll('.step'); const graphicElems = document.querySelectorAll('.graphic-item'); let currentItem = graphicElems[0]; let ioIndex; const io = new IntersectionObserver((entries, observer) => { ioIndex = entries[0].target.dataset.index * 1; }); for(let i = 0; i < stepElems.length; i++){ io.observe(stepElems[i]); stepElems[i].dataset.index = i; graphicElems[i].dataset.index = i; } function activate(action){//활성화 currentItem.classList.add('visible'); if(action){ actions[action](true); } } function inactivate(action){//비활성화 currentItem.classList.remove('visible'); if (action) { actions[action](false); } } window.addEventListener('scroll', () => { let step; let boundingRect; for(let i = ioIndex - 1; i < ioIndex + 2; i++){ step = stepElems[i]; if(!step) continue; boundingRect = step.getBoundingClientRect(); if(boundingRect.top > window.innerHeight * 0.1 && boundingRect.top < window.innerHeight * 0.8){ inactivate(); currentItem = graphicElems[step.dataset.index]; activate(currentItem.dataset.action); } } }); window.addEventListener('load', () => { setTimeout(() => scrollTo(0, 0), 100); }); activate(); })();
-
미해결하울의 안드로이드 인스타그램 클론 만들기
email_edittext와 password_edittext가 붉은 글씨로 뜹니다
사유는 Unresolved Reference 라고 뜹니다. 분명 전 강좌에서 id로 추가했는데 왜 이런지 알 수 있을까요??