inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

소리작은분들 - 크롬앱 사용해보세요.

미해결

자바 스프링 프레임워크(renew ver.) - 신입 프로그래머를 위한 강좌

소리작은분들 크롬에서 강의 들으시면 확장앱 설치후 들어보세요. https://chrome.google.com/webstore/detail/volume-amplifier/hgjaoeaobmnnefhjdphmodcnljkboglb?hl=ko

  • spring
  • java
여행자 댓글 3 좋아요 3 조회수 366

회귀 분석 질문입니다.

해결됨

[개정판] 파이썬 머신러닝 완벽 가이드

먼저 강의 감사합니다. 강좌와 책의 예제인 자전거 수요예측을 보고 몇가지 질문이 생겼습니다. 1. 만약 독립변수가 모두 범주형이면 전부 원-핫 인코딩을 하고 회귀분석하는 방법이 올바른지 궁금합니다. 2. 최적 하이퍼파라미터를 찾기위해 GridSearchCV를 사용하는데 데이터의 크기가 크면 시간이 오래 걸린다고 알고있습니다. 이때 먼저 설정하고 추후에 세부적인 하이퍼 파라미터값을 바꾸면 좋다고 질문/답변에서 보았는데 혹시 회귀분석 알고리즘별로 GridSerarchCV를 사용해 먼저 설정할 값과 추후에 세부적으로 설정할 파라미터 값을 알고싶습니다! 3. 하이퍼 파라미터의 최적값을 찾았다는 가정하에 랜덤포레스트보다 그래디언트부스트트리가 더 성능이 좋을까요? 4. 회귀분석에서 모델을 평가 하는 지표는 MSE, RMSE, R-squared, MAE 정도로 알고있습니다. 혹시 강사님께서 보실때 '성능이 좋은 모델'의 위 4개의 지표의 기준이 있을까요? 감사합니다.

  • 통계
  • 머신러닝 배워볼래요?
  • python
Heegee Park 댓글 2 좋아요 0 조회수 460

replace() 사용은 어떤가요?

해결됨

정말 쉽게 풀어보는 코딩 테스트 top 기본 문제 (with 자바)

안녕하세요. 선생님 보다가 궁금한게 있는대요. 저 같은 경우 String의 replace(), indexOf() 메소드를 이용하여 다음과 같이 구현했습니다. public static int numUniqueEmails ( String [] emails ) { Set < String > set = new HashSet <>() ; for ( String email : emails ) { String [] str = email . split ( "@" ) ; str [ 0 ] = str [ 0 ] . replace ( "." , "" ) ; int index = str [ 0 ] . indexOf ( "+" ) ; if ( index >= 0 ) { str [ 0 ] = str [ 0 ] . substring ( 0 , index ) ; } set . add ( str [ 0 ] + "@" + str [ 1 ]) ; } return set . size () ; } 단순 구현 방식의 차이인 건지 아니면 StringBuilder 를 이용하는 것이 더 이점이 있는 건지 궁금합니다.

  • java
  • 코테 준비 같이 해요!
퇴근후치맥 댓글 1 좋아요 2 조회수 200

IOS 사용중 입니다. 강의 백그라운드 재생 문의 건

미해결

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

안녕하세요 파이썬 강의를 백그라운드로 듣고싶은데 지원이 되나요? IOS 휴대폰 입니다

  • python
송준호 댓글 1 좋아요 1 조회수 257

3.2 example 1. det(A)구할때

미해결

선형대수학개론

det A 구할때 echelon form 구할때 row 3에서 -6 2를 -3 1로 약분해야 되는것 아닌가요? 약분하면 안된다면 왜 안될까요?

  • 선형대수학
syeen 댓글 1 좋아요 0 조회수 224

[수정, 삭제 벌크연산] subtract 메서드

해결됨

실전! Querydsl

안녕하세요 .강사님 작은 부분이지만, 다른 분들도 아시면 좋을 것 같아서 조심스럽게 적어 봅니다. [수정, 삭제 벌크연산] 강의 중 더하기는 add(1), 빼기는 add(-1)하면 된다고 알려주셨는데, 또한 subtract란 메서드로도 뺄셈 연산이 가능하여 전달 드립니다. 항상 좋은 강의 감사드립니다 ^^! 많은 도움 받고 있습니다. @Test public void bulkAdd (){ long count = queryFactory .update( member ) .set( member . age , member . age .add( 1 )) .execute() ; } @Test public void bulkSubtract (){ long count = queryFactory .update( member ) .set( member . age , member . age .subtract( 1 )) .execute() ; }

  • java
  • JPA
Bulbasaur 댓글 2 좋아요 1 조회수 1226

로그아웃 기능 테스트

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

화면에선 "로그인 후 이를 이용해 로그아웃해 보면...." 이라고 하셨는데 실제 Postman 설정을 어떻게 해야 로그아웃 테스트를 할 수 있나요?

  • react
  • nodejs
Seung Eon Kim 댓글 2 좋아요 0 조회수 412

5번째 강의 오류 [편집도구]

미해결

쉽게 따라하는 SketchUp Pro 2019 (한국어판)

스마트폰으로 보고있습니다. 그 앞 강의들은 다 괜찮았는데 그 강의만 슬로우모션한 것처럼 들립니다. 속도조절 버튼이 있길래 2배속 빠르게 설정해 보았으나 별 다를게 없었습니다. 어떻게 된 건가요? 저만 이런건가요?

  • SketchUp
J제이 댓글 0 좋아요 0 조회수 242

네이버 실시간 검색어 크롤링 질문드립니다.

미해결

R로 하는 웹 크롤링 - 입문편

네이버 메인에서 페이지 소스 보기를 해도 이제 더이상 실시간 검색어가 찾아지질 않습니다. 이 경우에 어떻게 크롤링해야 하는지 궁금합니다. 두번째 질문은 네이버 데이터랩 자료를 크롤링하려고 하는데, 자꾸 불완전한 마지막 행이 발견되었다는 에러메시지가 뜹니다. 소스 코드로는 url<-"https://datalab.naver.com/keyword/realtimeList.naver?where=main" b<-readLines(url,encoding="UTF-8") 를 입력하였는데, 이 경우 b의 값이 제가 아는 페이지 소스값과 너무 다르게 나와서 혼란스러운데 이 경우 데이터랩의 자료를 어떻게 가져와야 하나요?

  • 웹-크롤링
  • R
강선미 댓글 1 좋아요 0 조회수 279

Security Warning이 뜨는데 패스하고 넘어가도 될까요?

미해결

제발 도커 씁시다!

SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories. docker build시에 뜨는 경고문인데 그냥 넘어가도 될까요?

  • docker
Caesiumy 댓글 0 좋아요 0 조회수 312

36번 다소 헷갈려서 질문을 드립니다.

미해결

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

for(j = i-1; j>=0; j--){ // 1 if(a[j]>tmp) a[j+1] = a[j]; else break; } a[j+1]=tmp; // 2 처음 for문이 시행될 때에 j는 i가 1이기 때문에, j는 0으로 초기화가 된 상태에서 for문 안에 있는 일련의 if문을 거치고 난 뒤에 j--에 의해 j가 -1로 바뀐 상황에서, 이미 j>=0이라는 컨디션에 해당안하기에 바로 a[0]=tmp; 가 된다고 이해하였습니다. 이게 다른건 몰라도 삽입은 할 때마다 이상하게 상기 ㅈ주석으로 표시한 2코드의 의미가 이해가 안된다기보다는 오히려 확 와닿지를 않는다고 표현하는게 더 적절하네요ㅜㅜㅜ 그렇다면 for문 대신 while(j>=0&&a[j]>tmp){ if(a[j]>tmp){a[j+1] = a[j];} else break; j--; } a[j+1]=tmp; } 라고 표현해도 괜찮을까요? 늘 감사드립니다.

  • C++
  • 코테 준비 같이 해요!
celestial_ 댓글 1 좋아요 0 조회수 167

= 와 ==의 차이

해결됨

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

is(=)는 변수가 같은 Object(객체)를 가리키면 True, ==는 변수가 같은 Value(값)을 가지면 True로 알고 있습니다. 그런데 코딩을 하면 할 수록 둘의 차이가 계속 헛갈립니다. 이번 강의에서는 a = 'Park', if a == 'Kim' 으로 표현하셨는데 두 번째에 왜 ==가 오는 지 잘 모르겠습니다.

  • python
김보준 댓글 1 좋아요 0 조회수 295

pdf에 있는 Excercise 답은 없나요?

미해결

영리한 프로그래밍을 위한 알고리즘 강좌

답과 해설이 있으면 더 좋을것같은데요...

  • algorithm
cth5132 댓글 0 좋아요 4 조회수 267

예외와 에러의 차이

해결됨

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

강의 설명에서 예외와 에러를 혼동해서 사용하시는 것 같아요. "둘을 나누어 보기보다, 의도한대로 작동하지 않으면 예외로 생각하자"고 하셨는데, 강의의 설명에서 '에러'로 말씀하신걸 "예외'로 생각해도 될까요?

  • python
김보준 댓글 1 좋아요 0 조회수 672

chromedriver 라이브러리

미해결

초간단 초스피드 데이터 수집 (파이썬 크롤링)

프로젝트 왼쪽에 나온것처럼 chromedriver 추가하려면 어떻게 해야하나요?? 드라이버 설치하고 경로를 바탕화면으로 설정한 다음에 webdriver.Chrome('설치경로')로 했는데도 왼쪽에 추가가 안 됩니다 ㅠㅠ

  • 웹-크롤링
  • python
realbale 댓글 3 좋아요 2 조회수 338

35번 궁금합니다.

미해결

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

선생님, 선생님의 코드에 비해 저의 코드에 어떠한 불필요한 과정이 있는지 알려주시면 대단히 감사하겠씁니다. 많이 까주세요. 감사합니다. #include<iostream> #include<vector> using namespace std; void swap(int* a, int* b) { int tmp; tmp = *a; *a = *b; *b = tmp; } int main() { int N; int negative = 0; //입력받은 음수의 개수 int start = 0; //음수가 맨 앞으로 도달하면 그 다음으로 인덱스를 설정 int positive = 0; //양수의 시발점을 표현하기 위한 인덱스 cin >> N; vector<int>index(N); vector<int>arr(N); for (int i = 0; i < N; i++) { index[i] = i; } for (int i = 0; i < N; i++) { cin >> arr[i]; if (arr[i] < 0) { negative++; } } for (int i = 0; i < N; i++) { if (start == negative) { break; } if (arr[i] < 0) { swap(&arr[start], &arr[i]); swap(&index[start], &index[i]); start++; } } for (int i = 0; i < N; i++) { if (arr[i] < 0) { positive++; } } for (int i = positive; i < N; i++) { int min = index[i]; for (int j = i + 1; j < N; j++) { if (min > index[j]) { swap(&index[i], &index[j]); swap(&arr[i], &arr[j]); } } } for (int i = 0; i < N; i++) { printf("%d ", arr[i]); } }

  • C++
  • 코테 준비 같이 해요!
celestial_ 댓글 1 좋아요 0 조회수 257

이메일 입력하면 제출이 안됩니다..

미해결

Node.js - Express

var http = require ( 'http' ); var fs = require ( 'fs' ); var url = require ( 'url' ); var qs = require ( 'querystring' ); var template = require ( './lib/template.js' ); var path = require ( 'path' ); var sanitizeHtml = require ( 'sanitize-html' ); var app = http . createServer ( function ( request , response ){ var _url = request . url ; var queryData = url . parse ( _url , true ). query ; var pathname = url . parse ( _url , true ). pathname ; if ( pathname === '/' ){ if ( queryData . id === undefined ){ fs . readdir ( './data' , function ( error , filelist ){ var title = 'Welcome' ; var description = 'Hello, Node.js' ; var list = template . list ( filelist ); var html = template . HTML ( title , list , `<h2> ${ title } </h2> ${ description } ` , `<a href="/create">create</a>` ); response . writeHead ( 200 ); response . end ( html ); }); } else { fs . readdir ( './data' , function ( error , filelist ){ var filteredId = path . parse ( queryData . id ). base ; fs . readFile ( `data/ ${ filteredId } ` , 'utf8' , function ( err , description ){ var title = queryData . id ; var sanitizedTitle = sanitizeHtml ( title ); var sanitizedDescription = sanitizeHtml ( description , { allowedTags : [ 'h1' ] }); var list = template . list ( filelist ); var html = template . HTML ( sanitizedTitle , list , `<h2> ${ sanitizedTitle } </h2> ${ sanitizedDescription } ` , ` <a href="/create">create</a> <a href="/update?id= ${ sanitizedTitle } ">update</a> <form action="delete_process" method="post"> <input type="hidden" name="id" value=" ${ sanitizedTitle } "> <input type="submit" value="delete"> </form>` ); response . writeHead ( 200 ); response . end ( html ); }); }); } } else if ( pathname === '/create' ){ fs . readdir ( './data' , function ( error , filelist ){ var title = 'WEB - create' ; var list = template . list ( filelist ); var html = template . HTML ( title , list , ` <form action="/create_process" method="post"> <p><input type="text" name="title" placeholder="title"></p> <p> <textarea name="description" placeholder="description"></textarea> </p> <p> <input type="submit"> </p> </form> ` , '' ); response . writeHead ( 200 ); response . end ( html ); }); } else if ( pathname === '/create_process' ){ var body = '' ; request . on ( 'data' , function ( data ){ body = body + data ; }); request . on ( 'end' , function (){ var post = qs . parse ( body ); var title = post . title ; var description = post . description ; fs . writeFile ( `data/ ${ title } ` , description , 'utf8' , function ( err ){ response . writeHead ( 302 , { Location : `/?id= ${ title } ` }); response . end (); }) }); } else if ( pathname === '/update' ){ fs . readdir ( './data' , function ( error , filelist ){ var filteredId = path . parse ( queryData . id ). base ; fs . readFile ( `data/ ${ filteredId } ` , 'utf8' , function ( err , description ){ var title = queryData . id ; var list = template . list ( filelist ); var html = template . HTML ( title , list , ` <form action="/update_process" method="post"> <input type="hidden" name="id" value=" ${ title } "> <p><input type="text" name="title" placeholder="title" value=" ${ title } "></p> <p> <textarea name="description" placeholder="description"> ${ description } </textarea> </p> <p> <input type="submit"> </p> </form> ` , `<a href="/create">create</a> <a href="/update?id= ${ title } ">update</a>` ); response . writeHead ( 200 ); response . end ( html ); }); }); } else if ( pathname === '/update_process' ){ var body = '' ; request . on ( 'data' , function ( data ){ body = body + data ; }); request . on ( 'end' , function (){ var post = qs . parse ( body ); var id = post . id ; var title = post . title ; var description = post . description ; fs . rename ( `data/ ${ id } ` , `data/ ${ title } ` , function ( error ){ fs . writeFile ( `data/ ${ title } ` , description , 'utf8' , function ( err ){ response . writeHead ( 302 , { Location : `/?id= ${ title } ` }); response . end (); }) }); }); } else if ( pathname === '/delete_process' ){ var body = '' ; request . on ( 'data' , function ( data ){ body = body + data ; }); request . on ( 'end' , function (){ var post = qs . parse ( body ); var id = post . id ; var filteredId = path . parse ( id ). base ; fs . unlink ( `data/ ${ filteredId } ` , function ( error ){ response . writeHead ( 302 , { Location : `/` }); response . end (); }) }); // 로그인 } else if ( pathname === '/login' ){ fs . readdir ( './data' , function ( error , filelist ){ var title = 'Login' ; var list = template . list ( filelist ); var html = template . HTML ( title , list , ` <from action="login_process" method="post"> <p><input type="text" name="email" placeholder="email"></p> <p><input type="password" name="password" placeholder="password"></p> <p><input type="submit"></p> </from>` , `<a href="/create">create</a>` ); response . writeHead ( 200 ); response . end ( html ); }); // 로그인 받기 } else if ( pathname === '/login_process' ){ var body = '' ; request . on ( 'data' , function ( data ){ body = body + data ; }); request . on ( 'end' , function (){ var post = qs . parse ( body ); if ( post . email === 'fkxodbs@naver.com' && post . password === '111111' ){ response . writeHead ( 302 , { 'Set-Cookie' : [ `email= ${ post . email } ` , `password= ${ post . password } ` , `nickname=egoing` ], Location : `/` }); response . end (); } else { response . end ( 'who?' ); } }); } else { response . writeHead ( 404 ); response . end ( 'Not found' ); } }); app . listen ( 3000 ); --------- var http = require ( 'http' ); var cookie = require ( 'cookie' ); http . createServer ( function ( request , respone ){ console . log ( request . headers . cookie ) var cookies = {} if ( request . headers . cookie !== undefined ){ cookies = cookie . parse ( request . headers . cookie ) } console . log ( cookies . yummy_cookie ); console . log ( request . headers . cookie ); respone . writeHead ( 200 , { 'Set-Cookie' : [ 'yummy_cookie=choco' , 'tasty_cookie=strawberry' , `Permanent=cookies; Max-Age= ${ 60 * 60 * 24 * 30 } ` , // Max-Age= 현재 시점을 기준으로 얼마나 살아있을까 정한다 'Secure=Secure; Secure' , 'HttpOnly=HttpOnly; HttpOnly' , 'Path=Path; Path=/cookie' , 'Domain-Domain; Domain=02.org' ] }) respone . end ( 'cookie!!' ) }). listen ( 3000 );

  • express
jnty0715 댓글 1 좋아요 0 조회수 298

유투브로 수강하다 이제 인프런으로 건너왔습니다.

미해결

홍정모의 따라하며 배우는 C++

교수님의 유투브 [따배씨++]로 공부하다 인프런으로 건너왔습니다. 4.10 구조체 Structure까지 공부했습니다. * 저는 1987년부터 7년간 대한항공 시스템부에서 IBM Macro Assemble어로 프로그래밍, 설계, PM을 했고 PC가 처음 나왔을 때, Turbor-C와 DBase IV를 이용해 Mainframe-PC Interface Program을 1년간 했었습니다 이제 나이 많이 먹었지만, C++을 도전하고 싶습니다. 나이들어도 프로그래머가 되고 싶다는 젊은 시절의 꿈을 이루고 싶습니다. 다음은 파이선도 해보고 싶구요. 어셈블러->C->C++->Python 으로 이어지는 같은 계열의 프로그래밍으로 이어가고 싶군요. 앞으로 많은 가르침 받겠습니다.

  • C++
Dr. Unggyu KIM 댓글 1 좋아요 3 조회수 161

NameError와 AttributeError의 차이

미해결

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

예컨대 python이 print(time.time())에서 time이 변수인지, 모듈/클래스에 있는 속성인지 어떻게 알 수 있는지 궁금합니다. 구글링 결과, < 변수에 바로 접근할 때 오류가 있으면 이름 오류가 발생하고, 마침표(.)를 찍고 그 인스턴스의 속성에 접근할 때 오류가 있으면 속성 오류가 발생합니다.> 라는 설명이 있어 실험적으로 print(a.a())라 적었는데 NameError가 뜨네요. (time도 변수라 생각하면 a도 변수라 생각했습니다.) 두 개를 나누는 기준 혹은 어떤 걸 속성으로 인지하고 어떤 걸 변수로 인지하는지 궁금합니다.

  • python
김보준 댓글 1 좋아요 0 조회수 248

아트보드 질문드립니다!

미해결

스케치 뚝딱 끝내기! 입문자용 무료 강좌

제가 아트보드를 만들게 되면 일반적인 흰색의 사각형이 나옵니다. 그런데 강의영상을 보면 아이폰 아트보드가 노치디자인으로 구성되어있는 것으로 보이는데요. 이 노치디자인은 강사님께서 직접 만드신건가요??

  • 프로토타이핑
  • sketch
박준성 댓글 1 좋아요 0 조회수 256

인기 태그

인프런 TOP Writers

주간 인기글