묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
연결 유지 상태에서의 이중화 노드 무중단 재기동 방법
안녕하세요.대외 통신 연계 업무를 맡고 있는 주니어입니다.네트워크 지식에 부족함을 느껴 강의를 수강하게 되었습니다.어렴풋이만 알고 있는 지식에 대해 살을 붙임에 있어 많은 도움이 되고 있습니다. 요즘은 거래량이 많이 급증함에 따라 연결 유지 세션(전용 망)으로 많은 대외 기관들과 연결되어 있습니다.노드는 이중화가 되어있으나, 연결 유지 세션에 대해서는 액티브-스탠바이로만 운영중입니다. 때문에 배포 등으로 재기동 시 순단이 발생하고 있어 이를 없애는게 주요 과업 중 하나입니다.대외기관 - L4 사이에는 연결유지 세션으로 유지한 상태로 무중단 재기동을 할 방법이 있을까요?
-
미해결스프링 배치
step-in-muti-thread 질문
안녕하세요 강의에서 학습하고 디버깅한 바탕으로 제 생각이 맞는지 궁금하여 질문 드립니다. 1. 4개의 스레드 풀이 존재하고 chunkSize=100, pageSize=300을 주었다고 쳤을 때 맨 처음 스레드가 데이터 베이스에서 300개를 조회2. AbstractPagingItemReader의 CopyOnWriteArrayList에 저장하고 이후 다른 스레드들은 해당 Reader를 공유하여 락 메커니즘이 적용된 doRead() 호출하여 list(count++)에서 데이터를 하나씩 가져와 개별 스택 안의 Chunk에 설정한 chunkSize 만큼 저장3. 그 후 process -> write 이렇게 작동하여 단일 스레드가 100개씩 3번 처리를 멀티 스레드를 이용해 마치 한 번 만에 300개 처리가 가능하여 속도를 향상시키는 게 맞을까요?
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
useEffect에서 변수 업데이트 관련 질문
안녕하세요.본 강의에서 보여주신 회원가입 버튼 비활성화 로직은 다음과 같습니다. useEffect(() => { const isEnabled = Object.values(inputs).every((s) => s.length > 0); setFormDisabled(!isEnabled); }, [inputs]);위의 코드로 실행하면 username과 password를 모두 입력하면 회원가입 버튼이 활성화되고 하나라도 지우면 다시 비활성화 됩니다. useEffect(() => { if (inputs.username && inputs.password) { setFormDisabled(false); } }, [inputs]);그러나 조금 수정하여(이외의 부분은 모두 동일) 위와 같이 실행해보면, 본래의 코드와 마찬가지로 모두 입력되었을 때 버튼이 활성화 되지만 다시 지워도 비활성화가 되지 않습니다. 두 곳 모두 지워봐도 마찬가지입니다. console.log로 찍어보아도 false 값으로 고정된 채 바뀌지 않습니다.useEffect가 비동기 방식이므로 formDisabled가 업데이트 되는 타이밍 문제도 고려해 보았지만, 그렇다면 본래의 코드에서도 이런 문제가 발생하여야 할 것이라고 판단했습니다.여러모로 분석해 보았지만 이유를 알기가 어렵습니다.
-
해결됨Flutter 앱 개발 기초
Dart의 비동기 함수에 대한 aysnc, await 질문입니다.
Dart에서 비동기로 함수가 동작하려면 async, await 키워드를 사용하는 것으로 알고 있었는데요.. 강의 자료에서 4회차 강의 5:24에 보시면 비동기 관련 소스코드 설명이 동영상과 자료에 있습니다. --------------------------------------------------------- HTTP 요청은 응답까지 시간이 걸리기 때문에 비동기 코드입니다. 따라서 동기로 작동하려면 아래와 같이 async & await을 추가하면 됩니다. main() async { Response result = await Dio().get("URL"); print(result.data); } ---------------------------------------------------------- 그런데, 위의 소스가 비동기로 동작하는 소스 같은데, "동기로 동작하려면" 이라고 되어 있어서요. 오타인지? 아니면 제가 잘 모르는 부분이 있는건지 설명 부탁드립니다.
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
fetch 질문
안녕하세요 3:45에 fetch then대신 try catch로 바꿔 봤는데 이렇게 사용하면 될까요? const getData = async () => { try { const response = await (await fetch(`https://jsonplaceholder.typicode.com/comments`)).json(); console.log(response); } catch (err) { console.log(err); } };
-
미해결Klaytn 클레이튼 블록체인 어플리케이션 만들기 - 이론과 실습
함수를 async를 사용하여 비동기로 작성한 이유가 궁금합니다.
안녕하세요. 강의 내용에 대하여 궁금한 점이 있어 질문드립니다. 코드를 보면 대부분 async를 이용하여 비동기방식으로 함수를 생성하였는데 그렇게 코딩하신 이유가 궁금합니다. 보면 async와 await를 이용하여 동기식으로 처리하는 함수가 꽤 있던데 처음부터 동기 함수로 작성하지 않은 이유와 그 차이를 알고 싶습니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
mutations
비동기 처리 로직을 선언하는 메서드. 비동기 로직을 담당하는 mutations 라고 되어있는데 mutations는 동기로직을 담당하는 곳이 아닌가요?
-
해결됨Redux vs MobX (둘 다 배우자!)
mobx makeAutoObservable 과 mobx로 비동기처리해야될때 질문입니다.
class Store{ repository; rootStore; num = 0; constructor(repository,rootStore){ makeAutoObservable(this); this.repository = repository; this.rootStore = rootStore; } addnum = ()=>{ num++; } } mobx makeautoObservable 관련 질문입니다. 대충 이런식으로 store 가 있는데 makeAutoObservable이 알아서 action 이랑 observable을 지정해줍니다. 1-1. respository와 rootStore는 observable 하게 하고싶지 않은데 mobx devtools를보니 repository와 rootStore를 감지하고 있더라고요 특정 변수 또는 함수를 autoObservable 에 제외시킬수 있나요? repository 나 rootStore 앞에 private 키워드를 줘봤는데도 감지하고 있었습니다. 1-2. 위처럼 메모리에 불필요한 상태값까지 감지하게되면 나중에 state 가 커지면 성능과 메모리 차지에 큰 영향을 끼칠까요? mobx로 비동기 처리해야될때 질문입니다. 네트워크 요청해서 데이터를 보여줘야되는데 리스트로 항목 4개 보여주고 화살표로 다음 페이지버튼 보거나 이전페이지 버튼 보게 하고 있습니다. 다음페이지로 넘기면 네트워크 요청하고 응답받으면 데이터를 보여주게되고 요청을 날릴때는 빈화면이고 요청에대한 응답을 받았을때 데이터를 뿌려줘야됩니다. <button onClick = {()=>store.loadPrevious()}>previous</button> {store.listData && <MyListComponent data={store.listData.slice(store.page*4,store.page+4)}/>} <button onClick = {()=>store.loadNext()}>next</button> 이런식으로 store.listData 가 있을때 컴포넌트가 나오게 했습니다. 첫화면 로딩시 즉 useEffect() 에서 요청날렸을땐 제대로 동작하는데 다음페이지 버튼을 누르면 이미 store.listData는 이미 null이 아니기떄문에 네트워크요청 응답을 받기도전에 화면을 넘겨서 데이터를 제대로 뿌려주지를 못합니다. 2-1. 이런경우는어떻게 처리하는게 좋을까요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
Promise과 콜백함수에 관한 질문입니다.
Promise나 Async 경우, Promise 객체를 return 하는데, 콜백함수로만 디자인하면, promise 객체를 return 하지 않네요... 그래서, 몇 가지 궁금증이 발생했는데요. Q1. Promise가 아니라 콜백을 쓰는 게 더 좋거나, 반드시 콜백 함수로만 디자인해야하는 경우가 있나요?? Q2. 코딩을 하다보면, 반드시 Promise 객체만 요구하는 경우가 있나요?? 다시 말해서, 단순히 콜백 지옥 때문이 아니라, 콜백 함수만으로 비동기를 디자인 할 수없는 경우가 있는지 궁금합니다.
-
해결됨Vue.js + TypeScript 완벽 가이드
비동기 처리 + 클린코드
안녕하세요 캡틴판교님 제가 비동기처리에 관해서 공부중인데 질문드리고 싶습니다. 본 강의를 완강했지만, 지금 드리는 질문은 본강의와는 내용이 멀지만 캡틴판교님께 질문드릴 다른 방법이 없어 여기서 조심스럽게 작성합니다. 캡틴판교님의 블로그 "비동기 처리 시리즈 3편" 글 모두 읽고 직접 테스트하고, 구글링하면서 이해하려고 했는데 풀리지않는 의문점이 생겼습니다. 일단 제가 비동기 처리를 이해한 바로는 동기식 처리는 해당 코드의 실행이 끝나야(요청의 응답이 있어야) 다음 코드를 실행하고 비동기식 처리는 해당 코드의 실행이 끝나지 않아도(요청의 응답이 아직 안와도) 다음 코드를 실행하는 것으로 이해했습니다. 그리고 자바스크립트는 기본적으로 동기식으로 수행하는데 이를 비동기식 처리가 필요한 부분에 async를 쓰고 그 안에 await를 이용하여 작성하는 것입니다. 그런데 여기서 궁금증이 생겨 테스트를 하게되었습니다. 1. 기본 동기식 작성 function fetchUser() { var url = "https://jsonplaceholder.typicode.com/users/1"; return fetch(url).then(function (response) { return response.json(); }); } function fetchTodo() { var url = "https://jsonplaceholder.typicode.com/todos/1"; return fetch(url).then(function (response) { return response.json(); }); } function logTodoTitle() { console.log("START"); var user = fetchUser(); console.log("fetchUser DONE", user.id); if (user.id === 1) { var todo = fetchTodo(); console.log(todo.title); // delectus aut autem } console.log("END"); } logTodoTitle(); // START // fetchUser DONE undefined // END 2. async만 사용하여 작성 function fetchUser() { var url = "https://jsonplaceholder.typicode.com/users/1"; return fetch(url).then(function (response) { return response.json(); }); } function fetchTodo() { var url = "https://jsonplaceholder.typicode.com/todos/1"; return fetch(url).then(function (response) { return response.json(); }); } async function logTodoTitle() { console.log("START"); var user = fetchUser(); console.log("fetchUser DONE", user.id); if (user.id === 1) { var todo = fetchTodo(); console.log(todo.title); // delectus aut autem } console.log("END"); } logTodoTitle(); // START // fetchUser DONE undefined // END 3. async + await 사용하여 작성 function fetchUser() { var url = "https://jsonplaceholder.typicode.com/users/1"; return fetch(url).then(function (response) { return response.json(); }); } function fetchTodo() { var url = "https://jsonplaceholder.typicode.com/todos/1"; return fetch(url).then(function (response) { return response.json(); }); } async function logTodoTitle() { console.log("START"); var user = await fetchUser(); console.log("fetchUser DONE", user.id); if (user.id === 1) { var todo = await fetchTodo(); console.log(todo.title); // delectus aut autem } console.log("END"); } logTodoTitle(); // START // fetchUser DONE 1 // delectus aut autem // END 여기서 왜 1.동기식 처리가 왜 2.async만 작성한 코드의 결과와 같은 지 이해가 되지 않습니다 이러한 부분에 관하여 캡틴판교님의 의견을 듣고 싶은 마음이 가득합니다. 행여나 제가 어리석게 잘못 알고 있는 내용이나 문제점이 있다면 소중한 가르침을 부탁드립니다. 마지막으로 프로젝트를 하고 나면 코드가 직관적이지 않고 기능만 실행하기 위해 짜여진 코드 같아 고민이 있습니다. 그래서 로버트 C.마틴의 클린코드 책을 읽고 적용해볼까 고민을 해보았지만, 진유림님의 실무에서 바로 쓰는 Frontend Clean Code 를 보고 프론트엔드에 좀 더 적합한 학습 방법이 있지 않을까 싶어 더 찾아보았더니 캡틴판교님의 멀티캠퍼스에서 활동하신것 보고 (현재는 영상을 볼수없고 공고만 다른곳에서 발견) 캡틴판교님이 생각하시는 프론트엔드 클린코드는 어떤것이고 어떻게 학습하면 좋을 지 궁금하여 질문을 드립니다.
-
미해결스프링 배치
비동기식으로 jobLauncher 실행시키는 것 관련 질문 드립니다.
제목과 같이 비동기식으로 jobLauncher 실행시키는 것 관련 질문 드립니다. 비동기식으로 job 실행할 경우 basicBatchConfigurer 내에 있는 SimpleJobLauncher 실물을 불러와 비동기 설정을 해주기에 비동기식 실행이 가능해진다고 하셨는데요. 이 경우 비동기식으로 잡을 한 번 실행하게되면 빈으로 설정된 jobLauncher 가 다시 동기식으로 바꿔주지 않는 이상 비동기식으로 설정되어있어 비동기식 설정이 들어가지 않은 메서드를 별도 지정해서 돌려도 비동기식으로 돌아가는 듯 합니다. 혹시 제가 파악한게 맞을까요?!
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
블로킹 === 동기 , 논 블로킹 === 비동기 이 개념이 헷갈려서 질문드립니다.
안녕하세요~ 제로초님 "노드의 특성" 강좌에서 논 블로킹과 동기를 같은 개념으로 그리고 블로킹과 비동기를 같은 개념으로 생각해도 무방하다고 하셨는데요. 제가 볼 때도, 둘은 같은 개념 같은데... 왜 블로킹과 비동기 같이 다른 이름으로 불리는 지 혼란스럽습니다. 보통 다른 이름으로 불려진다는 것은 매우 유사하면서도, 둘을 구분 지을 수밖에 없는 차이점이 있기 때문일텐데... "블로킹 vs 동기" 의 차이점과 "논 블로킹 vs 비동기" 의 차이점은 무엇인가요?? 아 그리고 내일이면, 연말인데 행복한 연말 보내시고, 2022년 새해 복도 많이 받으시기 바랍니다 :)
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
비동기 방식에 대해 질문올려봅니다.
안녕하세요. 그랩님 그랩님 강좌를 잘 보고 있는 한 수강생입니다. 다름이아니라 강의 내용과는 별개의 내용이지만 그랩님을 통해 자바스크립트를 배우고 여러가지 배웠기 때문에 그랩님께 질문 남겨봅니다. const getData = async () => { try { const result = await axios.get( "https://b2ef45f8-e166-41d7-bd35-9ad159028fbf.mock.pstmn.io/test" ); const products = result.data.products; console.log(products); console.log(`status:(${result.status}) 통신을 성공했습니다!`); const data = JSON.stringify(products); return data; } catch (err) { console.error(err); console.log("결과를 가져오지 못했습니다."); return err; } }; console.log(getData()); 위에 코드는 프로미스 형식의 axios객체를 async, await을 이용해 then과 catch등을 축약해서 제가 만든 포스트맨 목서버의 데이터를 get메서드로 불러와서 결과값을 확인하는 코드입니다. 실행에는 문제가 전혀 없습니다. 그런데 제가 궁금한 것은 getData 함수 표현식이 async로 감싸져 promise객체를 받아 비동기 처리가 되어서 console.log(getData())가 먼저 실행된 뒤에 getData 함수가 실행된다는것은 알고있습니다. 허나 만약에 비동기 함수에서 리턴값을 받아 출력을 하고 싶을 때는 어떤 처리를 해야 하는지가 궁금합니다. 만약 코드가 실행되면 console.log(getData())가 실행될 때 Promise { <pending> }가 출력이 되었습니다.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
async & await 처리 관련 질문드립니다.
안녕하세요! vue.js 로 프론트 개발하다가 질문이 있어 남깁니다. 컴포넌트에서 props로 함수를 받아 처리하는 부분이 있는데요, 그동안 해당 props는 일반함수로 받고, 받은 props 함수를 처리하는 함수는 async로 처리하고 있었는데, props로 받는 함수도 Promise 처리해야하는 경우가 생겼습니다. 그래서 Promise로 받는 별도의 props를 추가하지 않고 해당 props를 await 처리만 해줘도 괜찮을지 싶은데요, 혹시 Promise가 아닌 일반 함수를 await 붙여준다고 해서 문제가 있을까요? 테스트를 해보니 오류나 순서상의 문제 없이 정상 동작하는 것 같아 질문드립니다. 문제가 될 경우 이유와 어떻게 처리하면 될지 좋은 예시도 함께 알려주시면 감사드리겠습니다. 다음은 현재 질문 상황에 대한 예시 코드입니다. // 일반 함수 const printNum = (number) => { console.log(number); }; // Promise const logPrintNum = async (number, delaySec) => { console.log(`Enter logPrintNum ${number}`); await printNum(number); // 일반 함수를 await 처리 console.log(`Exit logPrintNum ${number}`); }; // 호출부 logPrintNum(1, 0); // 출력 결과 Enter logPrintNum 1 1 Exit logPrintNum 1
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
비동기와 관련해서 궁금한점이 있습니다.
비동기 함수를 호출하면 다른 스레드에 의해 해당 코드가 실행되는 것으로 알고있습니다. 그런데 만약 main 스레드 쪽에서 다음과 같이 int ret = 비동기함수(); 이때, 비동기 함수가 반환한 값을 ret 변수에 넣어주는 행위는 main 스레드에서 해줘야 되는게 아닌가요 ? 그렇다면 main 스레드는 더 이상 진행하지 못하고 ret 에서 기다려야 되는게 맞는거 같은데... 다른 스레드에서 비동기 함수 처리 후 ret 변수에 넣어주는 거 까지 처리를 해주는건가요 ?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
비동기 방식 질문입니다
안녕하세요 수업 너무 잘 듣고있습니다!! 구글링 하다보니 feign이나 resttemplate은 동기방식이고 msa장점은 다음과 같다고 알고 있습니다. 서비스간 결합이 loose해서 하나 서비스가 고장 나도 다른 서비스 영향 없습니다. (ex. order에서 pay를 호출하는데 pay가 고장나도 응답이 나오긴나옵니다) 1. 강의에서는 kafka를 데이터 동기화로 사용했는데 리액티브 서비스에 맞게 service간 통신방법 비동기 방식으로 kafka나 rabbitMQ를 사용한다고 들었습니다. 제가 이해한게 맞는지 궁금하여 질문드립니다! 2. 그리고 다른 서비스 호출을 post방식이라면 비동기가 이해가는데, get방식으로 호출하면 다른 서비스 응답을 받고 그 다음 처리 해야하는데 어떻게 비동기 처리가 되는지 궁금합니다. 3. 비동기 방식으로 WebFlux 패턴도 사용하는데 메세지브로커를 이용한 비동기 방식이랑 어떠한 차이가 있는지도 궁금합니다.. 구글링 많이 해봤지만 확신이 들지 않아서 질문드립니다. 감사합니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용ㅇ해주세요.
-
해결됨웹 게임을 만들며 배우는 자바스크립트
안녕하세요 클로저 부분에서 질문 있습니다.
코드 function one() { for (var i = 0; i < 3; i++) { setTimeout(function () { console.log(i); }, i * i * 100); } } function two() { for (var i = 0; i < 3; i++) { closure(i); } } function closure(i) { setTimeout(() => { console.log(i); }, i * i * 100); }; one(); two(); 생각한 실행 결과 3 3 3 0 1 2 실제 결과 3 0 3 1 3 2 이렇게 나오는데 혹시 생각한 실행 결과처럼 나오게 하려면 어떻게 할 수 있나요?