inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

채팅을 인피니티 스크롤로 구현하려면 lastId 방식이 맞을까요?

해결됨

Slack 클론 코딩[실시간 채팅 with React]

인피니티 스크롤로 페이지 방식으로 구현했을때 새로운 채팅 입력시 게시글이 1~50개까지 있을 때 처음 1~10번을 가져왔는데 새로운 게시글이 추가되어서 11~20번을 가져오는 게 아니라 12~21번을 가져오는 문제가 발생해서 어찌어찌 페이지로 해결을 해보려고 해도 방법이 떠오르지 않네요.. 이걸해결하려면 채팅서비스의 경우 lastId 방식을 사용할 수 밖에 없는지 궁금합니다.

  • react
  • 웹팩
  • typescript
  • socket.io
  • babel
  • 클론코딩
qutuzm 댓글 1 좋아요 1 조회수 349

print 출력

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

선생님처럼 깔끔하게 괄호 안에 있는 부분만 뜨는 게 아니라 저 파란 줄로 길게 뜨는 건 왜 그런 건가요? 어떻게 하면 없앨 수 있나요?

  • python
hjy648012 댓글 2 좋아요 0 조회수 324

정적파일을 불러오는 방법 부탁드려요

미해결

Slack 클론 코딩[실시간 채팅 with React]

아이콘...등을 직접만든 이미지로 적용해보려 합니다. 프로젝트 루트폴더에 resource폴더 생성 후 여기에 이미지파일을 넣고 상대경로로 지정하거나 public폴더 생성 후 process.env.PUBLIC_URL로 불러오는 등의 방식을 써봤는데 정적리소스를 불러오지 못하네요. webpack.config.ts의 devServer에 static: { directory: path.resolve(__dirname) }는 추가 되어있습니다.

  • react
  • 웹팩
  • typescript
  • socket.io
  • babel
  • 클론코딩
sim jr 댓글 1 좋아요 0 조회수 265

async function을 생략하고 바로 await 하는 부분이 잘 이해가 안됩니다

해결됨

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지

async function ( if (){await 어쩌구} ) 여기서 if문 안에 await가 들어있으면 await가 있는 곳이 최상위 스코프가 아닌데 작동이 가능한가요? 최상위 스코프에서만 async function 생략 가능하다는 말은 async function(await 어쩌구) 이래야 바로 await 어쩌구 로 꺼낼 수 있고 if(){await 어쩌구} 는 async function 밖으로 꺼낼 수 없는 것으로 이해되어서요.. 제가 최상위 스코프가 뭔지 잘 모르는 것 같기도 합니다..ㅠㅠ [제로초 강좌 질문 필독 사항입니다] 질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다. 도움이 되는 질문을 하는 방법을 알려드립니다. https://www.youtube.com/watch?v=PUKOWrOuC0c 0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다. 1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다. 2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다. 3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요. 4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요. 5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다. 6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다.

  • node.js
  • mysql
  • mongodb
  • express
  • typescript
  • socket.io
  • jwt
윤소연 댓글 1 좋아요 0 조회수 353

local:host3095 사이트에 연결할 수 없음 문제

미해결

Slack 클론 코딩[실시간 채팅 with React]

안녕하세요. local:host3095 주소로 사이트가 열리지 않아 질문 남깁니다. (과정) db연결성공했고, 그 다음에 npx run dev 입력하고, 주소창에 local:host3095을 입력했더니 에러가 납니다. 포트번호가 잘못됐나 확인을 해봤는데 뭐가 문제인지 잘 모르겠습니다ㅠ 포트번호 확인 app.js에 3095라고 잘 적혀있는데 sql들어가서 server > serverstatus>test connection을 실행해보면 3306이라고 적혀있습니다. sql 종료했다 다시 실행하기

  • react
  • 웹팩
  • typescript
  • socket.io
  • babel
  • 클론코딩
바옹 댓글 1 좋아요 0 조회수 337

vanila-extract window 문제

해결됨

Next + React Query로 SNS 서비스 만들기

windows 에서 vanila-extract 의 문제점은 구체적으로 어떤 것일까요? https://github.com/vanilla-extract-css/vanilla-extract/issues/1086 해당 이슈가 맞는지 궁금합니다!

  • react
  • next.js
  • react-query
  • next-auth
  • msw
부드러운 펭귄 댓글 1 좋아요 0 조회수 1047

Access denied for user 'root'@'localhost' (using password: NO) 에러

미해결

Slack 클론 코딩[실시간 채팅 with React]

npx sequelize db:create을 설치하다가 오류가 나서 1. 최신 업데이트: npm install -g npx 2. npm install -g sequelize-cli 이렇게 해보았는데 Access denied for user 'root'@' localhost ' (using password: NO) 에러가 떴습니다. sql설치할때 패스워드 설정했고, 그 패스워드를 .env파일에 있는 MYSQL_PASSWORD에 적어뒀는데 에러가 고쳐지질 않습니다ㅠ

  • react
  • 웹팩
  • typescript
  • socket.io
  • babel
  • 클론코딩
댓글 1 좋아요 0 조회수 530

passport 미들웨어를 express-session 밑에다가 반드시 적어야하는 이유

해결됨

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지

[passport 세팅 및 회원가입 만들기] 강의 중 passport 미들웨어를 왜 express-session 밑에다가 반드시 적어야한다고 하셨는데 이유는 나오지 않았었습니다 이유는 무엇일까요? GPT도 써보았지만 생성형 AI라서 틀린 대답일 수 있으므로 강의자분께 질문드립니다.

  • node.js
  • mysql
  • mongodb
  • express
  • typescript
  • socket.io
  • jwt
진호 댓글 1 좋아요 0 조회수 366

0강 Win32 작업자 스레드 동기화 9:33~

해결됨

Windows 소켓 프로그래밍 입문에서 고성능 서버까지!

DWORD WINAPI ThreadFunction(LPVOID pParam) { puts("*** Begin Thread ****"); for (int i = 0; i < 5; ++i) { printf("[Worker thread] %d\n", i); ::Sleep(1); } //스레드가 끝나기 전에 이벤트를 세트한다. puts("종료 이벤트 세트 전"); //이 함수를 호출하면 _tmain() 함수의 //WaitForSingleObject() 함수가 반환한다! ::SetEvent((HANDLE)pParam); puts("종료 이벤트 세트 후"); puts("**** End Thread ****"); return 0; } for (int i = 0; i < 5; i++) { printf("[Main thread] %d\n", i); //i값이 3이면 이벤트가 세트되기를 무한정 기다린다! if (i == 3 && ::WaitForSingleObject(hEvent, INFINITE) == WAIT_OBJECT_0) { puts("종료 이벤트를 감지했습니다!"); ::CloseHandle(hEvent); hEvent = NULL; } } 3일 때 worker 스레드가 실행되는 조건문 하에서 Main함수가 2일 때도 반환되고 0일 때도 반환됩니다. 말씀해주신대로 3일 때 반환되는 경우도 있지만 보장되지 않고 빈번하게 아래 케이스처럼 반환되는 경우가 있습니다.(디버그 모드, 릴리즈 모드 모두에서) 이는 무슨 이유 때문인지 궁금합니다. case1 [Main thread] 0 [Main thread] 1 [Main thread] 2 *** Begin Thread **** [Worker thread] 0 [Main thread] 3 [Worker thread] 1 [Worker thread] 2 [Worker thread] 3 [Worker thread] 4 종료 이벤트 세트 전 종료 이벤트 세트 후 **** End Thread **** 종료 이벤트를 감지했습니다! [Main thread] 4 case2 [Main thread] 0 *** Begin Thread **** [Main thread] 1 [Main thread] 2 [Worker thread] 0 [Main thread] 3 [Worker thread] 1 [Worker thread] 2 [Worker thread] 3 [Worker thread] 4 종료 이벤트 세트 전 종료 이벤트 세트 후 **** End Thread **** 종료 이벤트를 감지했습니다! [Main thread] 4

  • socket.io
  • udp
  • iocp
  • tcpip
GOLD D 댓글 2 좋아요 0 조회수 334

reactQuery로 짜고있는데...

해결됨

Slack 클론 코딩[실시간 채팅 with React]

useQuery 나 mutation같은걸 통해 데이터를 가져오는데 데이터 렌더링이랑 훅스랑겹치지않게 가장 함수끝부분에 배치해야된다해서 그렇게 배치했는데 data 의 null 값여부를 젤 밑에서 하니까 그위에 훅스들은 수동으로 null 값을 체크해야되는데 이런경우는 어떤식으로 하는게 좋을까요? interface Props { children?: React.ReactNode } const Comp: FC<Props> = () => { const {p1, p2} = useParams() if (!p1|| !p2) { return <>loading error</>; } const {data} = useQuery({ queryKey: mykey, queryFn: () => myfunc1(userId, codeId) }); const {mutate} = useMutation({ mutationFn: async (data: CodeRequestEntity) => { await myfunc2(data) return true } }) if(!data){ return <>loading</> } const onClickConfirm = useCallback(() => { mutate(data) onClose() }, []) return ( <> <Button variant={"outlined"} onClick={onClickConfirm}>예 </Button> </> ); }; export default Comp; 이런식으로 하게되면 분기문을통해 데이터 null 처리를 해서 분기문 밑어부터는 null 처리를 안해도되는데 null 처리를 가장 밑에 렌더링부분에 넣으면 그위에 훅스에선 데이터쓸때마다 null 처리해줘야되서 혹시 다른 방법 있을까요?

  • react
  • 웹팩
  • typescript
  • socket.io
  • babel
  • 클론코딩
쵸잉 댓글 1 좋아요 1 조회수 286

'[섹션 8. Connection & Hook] Postgres 컨테이너 올리기' 강의에서 sudo docker compose up 명령어가 제대로 실행되지 않습니다.

미해결

Airflow 마스터 클래스

이전까지는 도커 서비스를 잘 수행이 됐었습니다. 이번 강의에서 docker-compose.yaml파일을 수정 후 서비스를 내렸다가 다시 올리려고 하니 사진처럼 해당 로그까지만 찍힌 후에 더 이상 진행이 되지 않고 있습니다. 계속 기다려봐도 상태가 그대로인 것을 보아하니 어딘가 문제가 생긴 것 같습니다. yaml파일은 올려주신 파일과 비교해봤을 때 오타나 다른 문제는 없는 것 같습니다. 원래의 docker-compose.yaml로 교체하면 잘 실행이 되는 상태입니다. 뭐가 문제일까요?

  • python
  • 데이터-엔지니어링
  • airflow
재윤 댓글 2 좋아요 0 조회수 464

9장 게시글 업로드하기 post 오류

미해결

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지

[제로초 강좌 질문 필독 사항입니다] 질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다. 도움이 되는 질문을 하는 방법을 알려드립니다. https://www.youtube.com/watch?v=PUKOWrOuC0c 0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다. 1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다. 2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다. 3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요. 4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요. 5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다. 6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다. 사진업로드를 하려할때 미리보기가 뜨지 않습니다. uploads에는 올린 사진들이 잘 뜹니다. 게시글을 업로드하려 짹짹을 누르면 post 라우터가 없다고 뜹니다. POST /post 라우터가 없습니다. 404 Error: POST /post 라우터가 없습니다. at C:\Users\jyoun\udr_node\lecture\ch9\app.js:53:18 at Layer.handle [as handle_request] (C:\Users\jyoun\udr_node\lecture\ch9\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\jyoun\udr_node\lecture\ch9\node_modules\express\lib\router\index.js:328:13) at C:\Users\jyoun\udr_node\lecture\ch9\node_modules\express\lib\router\index.js:286:9 at Function.process_params (C:\Users\jyoun\udr_node\lecture\ch9\node_modules\express\lib\router\index.js:346:12) at next (C:\Users\jyoun\udr_node\lecture\ch9\node_modules\express\lib\router\index.js:280:10) at C:\Users\jyoun\udr_node\lecture\ch9\node_modules\express\lib\router\index.js:646:15 at next (C:\Users\jyoun\udr_node\lecture\ch9\node_modules\express\lib\router\index.js:265:14) at C:\Users\jyoun\udr_node\lecture\ch9\routes\page.js:12:3 at Layer.handle [as handle_request] (C:\Users\jyoun\udr_node\lecture\ch9\node_modules\express\lib\router\layer.js:95:5) controllers/post.js const Post = require('../models/post'); const Hashtag = require('../models/hashtag'); exports.afterUploadImage = (req, res) => { console.log(req.file); res.json({ url: `/img/${req.file.filename}` }); }; exports.uploadPost = async (req, res, next) => { try { const post = await Post.create({ content: req.body.content, img: req.body.url, UserId: req.user.id, }); const hashtags = req.body.content.match(/#[^\s#]*/g); if (hashtags) { const result = await Promise.all(hashtags.map((tag) => { return Hashtag.findOrCreate({ where: { title: tag.slice(1).toLowerCase() } }); })); console.log('result', result); await post.addHashtags(result.map(r => r[0])); } res.redirect('/'); } catch (error) { console.error(error); next(error); } }; routes/post.js const express = require('express'); const multer = require('multer'); const path = require('path'); const fs = require('fs'); const { afterUploadImage, uploadPost } = require('../controllers/post'); const { isLoggedIn } = require('../middlewares'); const router = express.Router(); try { fs.readdirSync('uploads'); } catch (error) { console.error('uploads 폴더가 없어 uploads 폴더를 생성합니다.'); fs.mkdirSync('uploads'); } const upload = multer({ storage: multer.diskStorage({ destination(req, file, cb) { cb(null, '/uploads'); }, filename(req, file, cb) { const ext = path.extname(file.originalname); cb(null, path.basename(file.originalname, ext) + Date.now() + ext); }, }), limits: { fileSize: 5 * 1024 * 1024 }, }); // POST /post/img router.post('/img', isLoggedIn, upload.single('img'), afterUploadImage); // POST /post const upload2 = multer(); router.post('/', isLoggedIn, upload2.none(), uploadPost); module.exports = router; 개발자 도구로 보면 짹짹을 눌렀을때 갈곳이 없다는데 저는 깃헙 복사해서 똑같이 했는데 뭐가 문제인지 모르겠습니다. app.js const express = require('express'); const cookieParser = require('cookie-parser'); const morgan = require('morgan'); const path = require('path'); const session = require('express-session'); const nunjucks = require('nunjucks'); const dotenv = require('dotenv'); const passport = require('passport'); dotenv.config(); const pageRouter = require('./routes/page'); const authRouter = require('./routes/auth'); const { sequelize } = require('./models'); const passportConfig = require('./passport'); const app = express(); passportConfig(); // 패스포트 설정 app.set('port', process.env.PORT || 8001); app.set('view engine', 'html'); nunjucks.configure('views', { express: app, watch: true, }); sequelize.sync({ force: false }) .then(() => { console.log('데이터베이스 연결 성공'); }) .catch((err) => { console.error(err); }); app.use(morgan('dev')); app.use(express.static(path.join(__dirname, 'public'))); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser(process.env.COOKIE_SECRET)); app.use(session({ resave: false, saveUninitialized: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, }, })); app.use(passport.initialize()); app.use(passport.session()); app.use('/', pageRouter); app.use('/auth', authRouter); app.use((req, res, next) => { const error = new Error(`${req.method} ${req.url} 라우터가 없습니다.`); error.status = 404; next(error); }); app.use((err, req, res, next) => { res.locals.message = err.message; res.locals.error = process.env.NODE_ENV !== 'production' ? err : {}; res.status(err.status || 500); res.render('error'); }); app.listen(app.get('port'), () => { console.log(app.get('port'), '번 포트에서 대기중'); }); main.html {% extends 'layout.html' %} {% block content %} <div class="timeline"> {% if user %} <div> <form id="twit-form" action="/post" method="post" enctype="multipart/form-data"> <div class="input-group"> <textarea id="twit" name="content" maxlength="140"></textarea> </div> <div class="img-preview"> <img id="img-preview" src="" style="display: none;" width="250" alt="미리보기"> <input id="img-url" type="hidden" name="url"> </div> <div> <label id="img-label" for="img">사진 업로드</label> <input id="img" type="file" accept="image/*"> <button id="twit-btn" type="submit" class="btn">짹짹</button> </div> </form> </div> {% endif %} <div class="twits"> <form id="hashtag-form" action="/hashtag"> <input type="text" name="hashtag" placeholder="태그 검색"> <button class="btn">검색</button> </form> {% for twit in twits %} <div class="twit"> <input type="hidden" value="{{twit.User.id}}" class="twit-user-id"> <input type="hidden" value="{{twit.id}}" class="twit-id"> <div class="twit-author">{{twit.User.nick}}</div> {% if not followingIdList.includes(twit.User.id) and twit.User.id !== user.id %} <button class="twit-follow">팔로우하기</button> {% endif %} <div class="twit-content">{{twit.content}}</div> {% if twit.img %} <div class="twit-img"><img src="{{twit.img}}" alt="섬네일"></div> {% endif %} </div> {% endfor %} </div> </div> {% endblock %} {% block script %} <script> if (document.getElementById('img')) { document.getElementById('img').addEventListener('change', function(e) { const formData = new FormData(); console.log(this, this.files); formData.append('img', this.files[0]); axios.post('/post/img', formData) .then((res) => { document.getElementById('img-url').value = res.data.url; document.getElementById('img-preview').src = res.data.url; document.getElementById('img-preview').style.display = 'inline'; }) .catch((err) => { console.error(err); }); }); } document.querySelectorAll('.twit-follow').forEach(function(tag) { tag.addEventListener('click', function() { const myId = document.querySelector('#my-id'); if (myId) { const userId = tag.parentNode.querySelector('.twit-user-id').value; if (userId !== myId.value) { if (confirm('팔로잉하시겠습니까?')) { axios.post(`/user/${userId}/follow`) .then(() => { location.reload(); }) .catch((err) => { console.error(err); }); } } } }); }); </script> {% endblock %}

  • node.js
  • mysql
  • mongodb
  • express
  • typescript
  • socket.io
  • jwt
박예원[ 학부재학 / 컴퓨터융합 댓글 1 좋아요 0 조회수 294

wilcoxon 검정에 대한 질문입니다!

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

이전 단일 표본 검정에서 정규성 검증을 진행할 때 willcoxon 코드를 알려주실 때stats.wilcoxon(df[’무게‘]-120, alternative=’less’)와 같이 알려주셨는데 이번 대응표본 검정에서 정규성 검증을 진행할 때 willcoxon는 stats.wilcoxon(df[‘after’] ,df[‘before’], alternative = ‘greater’)와 같이 알려주셨습니다.또한 강의에서도 after와 before의 값을 빼서 넣은 값인 df['diff']를 그대로 사용해도 된다고 말씀하셨습니다.그래서 아래 사진과 같이 임의로 df[‘after’] - df[‘before’]를 넣어서 실행해봤는데 결과값이 똑같이 나왔습니다. 그럼 단일 표본 검정에서 알려주신대로 df[’무게‘]-120와 같이 df[‘after’] - df[‘before’]로 생각하고 넣어줘도 무방한 것인가요?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
김건우 댓글 1 좋아요 0 조회수 314

이벤트 기반 비동기 파일 입/출력 (예제 포함)

해결됨

Windows 소켓 프로그래밍 입문에서 고성능 서버까지!

안녕하세요 선생님 DWORD dwRead; OVERLAPPED aOl[3] = { 0 }; HANDLE aEvt[3] = { 0 }; //세 번의 비동기 쓰기 완료를 확인하기 위한 이벤트 객체를 생성한다. for (int i = 0; i < 3; ++i) { aEvt[i] = ::CreateEvent(NULL, FALSE, FALSE, NULL); aOl[i].hEvent = aEvt[i]; } //비동기 쓰기가 시작될 지점을 기술한다. //두 번째 쓰기는 세 번째 쓰기보다 나중에 이루어질 가능성이 높다. aOl[0].Offset = 0; //파일의 시작. aOl[1].Offset = 1024 * 1024 * 128; //5MB aOl[2].Offset = 16; //16바이트 //세 번의 비동기 쓰기를 순차적으로 수행한다. for (int i = 0; i < 3; ++i) { printf("%d번째 중첩된 쓰기 시도.\n", i); ::WriteFile(hFile, "0123456789", 10, &dwRead, &aOl[i]); //정상적인 경우 쓰기 시도는 지연(보류)된다! if (::GetLastError() != ERROR_IO_PENDING) exit(0); } 여기서 dwRead가 얼마나 쓰였는지 확인하는 바이트수를 나타낸다고 하는데 만약 쓰고 싶다면 //세 번의 비동기 쓰기가 완료되기를 대기한다. DWORD dwResult = 0; for (int i = 0; i < 3; ++i) { dwResult = ::WaitForMultipleObjects(3, aEvt, FALSE, INFINITE); printf("-> %d번째 쓰기 완료.\n", dwResult - WAIT_OBJECT_0); } sizeof("0123456789") == dwRead; 이런식으로 마지막에 비교할때 쓰이는건가요?

  • socket.io
  • udp
  • iocp
  • tcpip
dohyun_lim 댓글 1 좋아요 0 조회수 376

4-2 type 1 4 번 문제

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

형별로 합하기 위해 df = df.T 를 쓰셨는데 print(sum(df.sum(axis=1) > 3000)) 를 쓰면 안 될까요 ? 해보니 답은 동일 했습니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
paul1142 댓글 3 좋아요 1 조회수 400

파일 송수신 테스트

미해결

Windows 소켓 프로그래밍 입문에서 고성능 서버까지!

안녕하세요 선생님 질문이 있습니다. 4:17에서 client에서 File List를 요구한 다음 server에서 보내는 패킷에서 사이즈가 796인게 MYCMD cmd; cmd.nCode = CMD_SND_FILELIST; cmd.nSize = sizeof(g_flist)+sizeof(g_aFInfo); MYCMD의 사이즈가 맞나요....?

  • socket.io
  • udp
  • iocp
  • tcpip
dohyun_lim 댓글 3 좋아요 0 조회수 459

logit 이나 ols 사용할때 앞에 C( )를 붙이는 이유?

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

ANOVA를 배울때는 ols 사용할때 독립변수 앞에 C()를 붙이는것이 분산분석은 범주형 분석이기에 앞에 C를 붙인다고 생각했는데요~ 로지스틱 회귀분석은 독립변수가 수치형, 종속변수가 이산/명목형으로 알고있는데.. Gender 앞에 C를 붙이는 이유가 있을가요? 오히려 Gender은 수치로 바꿔줘야할것 같은데.. 혹시 C 의 의미가 수치형->범주형, 범주형->수치형으로 양쪽 모두 바꿔주는 역할인건지 궁금합니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
hello4298 댓글 1 좋아요 1 조회수 941

macro

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

다중분류에서 쓰는 average = 'macro'가 무슨 의미일까요??

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
apollon3110 댓글 1 좋아요 0 조회수 239

dbms의 기출문제를 보고싶습니다.

해결됨

윤파고의 정보처리기사 DB/프로그래밍 All-In-One

혹시 기출문제 올인원은 어디서 볼 수 있나요?

  • python
  • java
  • c
  • dbms/rdbms
  • 정보처리기사
댓글 2 좋아요 0 조회수 765

예시문제 작업형2(신 버전)

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 문제 지문에서알려주는 제출 CSV 파일 형식은 0, 1, 1, 0 ... 이런 predict 결과값인데 0.11385 와 같이 predict_proba 확률값으로 결과를 제출해도 괜찮은 이유가 궁금합니다! roc_auc가 predict_proba 로 해야한다면 predict_proba로 모형 성능테스트를 하고 제출은 predict로 해야하는 것이 아닌가... 라는 의문이 들어서 문의드립니다

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
댓글 2 좋아요 0 조회수 521

인기 태그

인프런 TOP Writers

주간 인기글