블로그

윤선미

데이터리안 파이썬 기초 강의 오픈 🥳

안녕하세요 수강생 여러분 :)   데이터리안에서 <데이터 분석을 위한 파이썬: 입문부터 꿀팁까지> 라는 이름으로 파이썬 기초 강의를 런칭했습니다! 🥳 그리고 지금 오픈 할인 30%를 하고 있어서 후딱 알려드리려고 이렇게 새소식으로 찾아뵙습니다. (이제 인프런에서 지식공유자가 설정할 수 있는 최대 할인폭은 25%예요. 30% 할인은 강의 오픈이나 특별 행사에만 찾아오는 기회입니다!)   저희가 인프런에 첫 강의를 올린게 2020년 초였는데요. 그때부터 '파이썬 기초 강의는 언제쯤 올라오냐' 메일도 보내주시고 많은 분들이 요청해주셨어요. 파이썬 강의 진짜 내고 싶었는데 이게 워낙 범용 프로그래밍 언어다 보니까 어떻게 가르쳐야 수강생 분들이 더 효율적으로, 필요한 기능들을 쏙쏙 골라서 배울 수 있을까 고민이 많아지더라구요. 그래서 기획을 길게 하게 됐습니다. 이제야 인사를 드립니다... 지금까지는 저희 강의 말고 다른 분들이 쓰신 책이나 강의를 추천했었는데 이제는 당당하게 '파이썬 뭘로 공부하나요?' '데이터리안 강의로 공부하세요!'라고 말할 수 있게 되어서 기쁩니다.   이 강의는 '데이터 분석'을 목적으로 파이썬을 공부하시는 분들에게 딱 맞춰 구성한 강의이구요. 선수지식이 전혀 없는 분들도 쉽게 시작하실 수 있도록 설치 등 과정을 과감하게 생략하고 '프로그래밍 언어' 학습에 집중한 강의입니다. 강의 당 시간은 대부분 6분 ~ 15분 내외로 가볍게 들으실 수 있도록 했습니다.   코스의 마지막에는 테이블 데이터를 다루는 라이브러리인 '판다스'나, 가장 유명하고 많이 쓰이는 머신러닝 패키지 '사이킷런'을 맛보실 수 있도록 했습니다. 손으로 쓴 숫자 이미지를 자동으로 분류하는 분류 모델을 30분 튜토리얼안에 작성하실 수 있게 될거예요. 연습문제도 알차게 준비했습니다. 이론 강의 듣고 - 연습문제를 바로 풀어보면서 재밌게 수업내용 복습하고 응용해보실 수 있을거예요.   앞으로도 유익하고, '더 성장하고 싶다!', '더 잘하고 싶다!' 는 생각이 들게 하는 강의 많이 만들어볼게요!   데이터리안 파이썬 팀 드림

데이터 사이언스파이썬데이터분석파이썬입문데이터사이언스

윤선미

데이터 분석가 로드맵 🥳 & 데이터리안 강의 실제 학습 시간 공개

✨ 데이터리안에서 분석가 로드맵이 나왔습니다 ✨ 그리고 인프런 대시보드가 리뉴얼 되었어요. 이제 학생들이 이 강의를 학습하는데 실제로 얼마나 시간을 소요하고 있는지 볼 수 있게 되었습니다! (예시. 기초 SQL강의의 런타임은 1시간 36분, 실질 수강 기간은 3일!) 로드맵을 소개하면서, 데이터리안 강의를 학습하는데 우리 수강생 분들이 어떻게 시간을 쓰고 계시는지 같이 얘기해보겠습니다.    1. SQL 실무 활용 트랙 기획자, 마케터 등 SQL을 실무에서 활용해야 하는 모든 직군이 공통으로 들을 수 있는 구성입니다. 간단한 데이터를 추출하거나, 기존 쿼리를 이해하는 등 라이트하게 활용할 사용자들을 위한 트랙입니다. 강의의 순수 플레이 타임은 기초 SQL 1시간 36분, 중급 SQL 4시간 19분으로 5시간 55분이고, 중급 SQL 문제풀이 강의 2시간 12분을 포함해서 학습하신다면 8시간 7분입니다. 실제 학습에 소요되는 시간은 어느정도 될까요? 강의를 90% 이상 수강한 학생들이 '완강 수강생'이라고 생각하고, 이 수강생들의 상위 50% 평균을 계산한 값은 다음과 같습니다. 기초 SQL은 3일, 중급 SQL은 9일, 중급 SQL 문제풀이는 4일을 소요하여 강의를 완강합니다. 하루에 약 30분 정도 투자해서 공부를 하고 계시구요. 데이터리안의 모든 코스의 강의는 평균 10분 내외로 촬영하고 있으니까 하루에 약 3개 강의 정도 들으시는 것으로 예상해볼 수 있겠네요 😊 그런데 수강평을 보면 아시겠지만, 기초 SQL의 경우 런타임이 약 1시간 30분 정도라서 하루만에 몰아서 끝내시는 분들도 많아요. 이 강의를 활용해서 학생들을 가르쳐본 경험으로는 약 3시간, 길면 5시간 정도 집중하는 시간을 내면 기초 SQL 강의를 완강하실 수 있습니다. 본인 스타일에 맞게 하루에 몰아서 빡공! 또는 매일 30분씩 나누어서 공부하면 좋겠죠. 👉 데이터리안 수강평 모아보기    2. 데이터 분석가 트랙 현업에서 데이터 분석가로 일하고 계시는 분 또는 데이터 분석가로 입사하기 위해 코딩 테스트를 준비하는 분들을 위한 구성입니다. SQL로 데이터를 자유자재로 핸들링하고 분석에 활용할 분들을 위해 고급 SQL 강의가 들어가있고, 분석을 위한 추가 스킬로 파이썬이라는 프로그래밍 언어를 선택하신 분들을 위한 트랙입니다. 강의의 순수 플레이 타임은 SQL 실무 활용 트랙에 더해, 고급 SQL 5시간 16분 + 파이썬 입문 8시간 55분 + 판다스 6시간 30분으로 총 20시간 41분이 추가됩니다. 여기에 고급 SQL 문제풀이까지 학습하신다면 2시간 12분이 더해져 총 플레이타임은 22시간 53분이 됩니다. 실제로 수강하는데 걸리는 기간을 보면 고급 SQL은 16일, 고급 SQL 문제풀이는 4일, 파이썬 입문편은 4일, 판다스는 22일이 걸리고, 하루에 평균적으로 20분~30분 정도 투자하고 있어요. 파이썬 입문 강의는 특이하게 하루 평균 시청 시간이 2시간 30분이나 되는데요. 강의 러닝타임에 비해서 완강까지 걸리는 기간도 매우 짧구요. 아직 런칭한지 얼마 안 된 강의라서 그런 것인지... 정말 파이썬 입문 강의에는 🔥열혈 수강생🔥들만 있는 것인지 데이터 추이를 지켜보고 있습니다. 데잇걸즈 4기, 5기분들도 데이터리안의 SQL 강의를 수강하셨었는데요. 적절한 코칭이 함께 들어갔을 때 또는 스스로 꾸준히 학습할 때 기초 SQL부터 고급 SQL까지 학습하는데 걸리는 시간은 약 4주에서 8주정도 된다고 생각하시면 좋을 것 같아요. 개인차가 있지만 아무리 늦어도 8주안에 SQL 코딩테스트를 통과할 수 있는 정도의 실력은 길러진다고 보고 있습니다. 실제로 네이버, 리디 등의 데이터 분석가 코딩테스트에 합격하신 분들이 연락을 많이 주시구요. 데잇걸즈 같은 1년에 한 번 있는 프로그램이 아니더라도 함께 모여서 으쌰으쌰하며 공부할 수 있는 환경이 만들어지면 좋을 것 같다는 취지로 4주에서 8주짜리 SQL 캠프도 기획하고 있으니까 기대 많이 해주세요. 👉 데잇걸즈 4기 수강생 분들의 기술 블로그 보러가기 "SQL? 누구냐 너!!"    3. 데이터 사이언티스트 트랙 이 트랙은 파이썬이라는 프로그래밍 언어와 머신러닝🤖을 공부하고 싶은 분들을 위해 구성했습니다. 강의 런타임과 실질 수강 기간은 아래와 같아요. 데이터 분석을 위한 파이썬: 러닝타임 8시간 55분 / 4일 / 매일 2시간 33분 학습 데이터 분석을 위한 판다스: 러닝타임 6시간 30분 / 22일 / 매일 21분 학습 추천 시스템 입문편: 러닝타임 7시간 49분 / 12일 / 매일 41분 학습 총 러닝타임은 23시간 14분, 학습 기간은 38일이네요. 앞에서도 말했지만 파이썬 입문 강의의 일일 학습 시간, 학습 완료까지 걸리는 기간 데이터가 참 특이합니다 🤔 '데이터 분석을 위한 판다스' 강의의 런타임이 6시간 30분으로 훨씬 짧은데도 실질 수강 기간은 훨씬 길죠. 판다스 강의에 분석 프로젝트가 많아서일까요. 데이터를 눈여겨 봐야겠습니다. 👉 데이터 분석을 위한 파이썬: 입문부터 꿀팁까지 보러가기   4. 수강 완료 기간 데이터 데이터리안 강의들의 런타임, 실질 수강 기간, 1일 평균 시청 기간 데이터를 정리해보면 아래와 같습니다. 이 데이터는 고정된 데이터가 아니라 여러분들의 강의 수강 패턴대로 계속 업데이트 될거예요. 강의 완료기간은 더 짧아지도록, 1일 평균 시청 시간은 더 길어지도록, 그리고 완강하는 사람들의 비율이 더 늘어나도록 저희도 노력하겠습니다. 👉 데이터리안 전체 강의 보러가기👉 데이터리안 서비스 페이지 바로가기   (2021년 11월 5일 기준) 강의명 러닝타임 완료기간 1일 평균 시청 시간 로드맵 [백문이불여일타] 데이터 분석을 위한 기초 SQL 1시간 36분 3일 32분 SQL 실무 활용, 데이터 분석가 [백문이불여일타] 데이터 분석을 위한 중급 SQL 4시간 19분 9일 29분 SQL 실무 활용, 데이터 분석가 [백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이 2시간 12분 4일 33분 SQL 실무 활용, 데이터 분석가 [백문이불여일타] 데이터 분석을 위한 고급 SQL 5시간 16분 16일 20분 데이터 분석가 [백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이 2시간 55분 4일 44분 데이터 분석가 데이터 분석을 위한 파이썬: 입문부터 꿀팁까지 8시간 55분 4일 2시간 33분 데이터 분석가, 데이터 사이언티스트 데이터 분석을 위한 판다스: 기초부터 블로그 GA 데이터 분석까지 7시간 47분 22일 21분 데이터 분석가, 데이터 사이언티스트 [개념부터 실습까지] 추천 시스템 입문편 7시간 47분 12일 41분 데이터 사이언티스트  

데이터 사이언스데이터분석로드맵데이터리안SQL파이썬데이터사이언스분석가머신러닝추천시스템

일코

[pyhwpx] 한/글 자동화 문의 및 요청의 90%는 ㅇㅇ 관련이었어요.

안녕하세요? 일코입니다. 유튜브와 블로그를 운영하면서 받았던 문의 중 90%는바로 "표"에 관한 내용들이었습니다.표는 비단 행정뿐만 아니라,한/글을 통해 작성되는 문서에서 가장 많이 쓰이는 컨트롤이죠.그런데 기존의 한/글 오토메이션 API를 통해 표를 읽어오거나, 표를 작성하는 메서드는다소 큰 진입장벽이 있었습니다. 예를 들어 비교적 최근 만든 pyhwpx에서5행5열의 표를 만들고 "글자처럼 취급"을 적용하는 코드는아래 세 줄이면 되지만,from pyhwpx import Hwp hwp = Hwp() hwp.create_table(5, 5, treat_as_char=True) 그런데,기존 오토메이션API를 통해 동일한 표를 직접 생성하려면무려 아래의 코드를 작성해야 합니다.(한/글 오토메이션API에 관심있으신 분은, 차근차근 읽어보셔도 좋습니다.)import win32com.client as win32 hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") rows = 5 # 행 갯수 cols = 5 # 열 갯수 width_type = 0 # 너비: 단에 맞춤 height_type = 0 # 높이: 자동 height = 0 # height 기본값 초기화 treat_as_char = True # 글자처럼 취급 pset = hwp.HParameterSet.HTableCreation hwp.HAction.GetDefault("TableCreate", pset.HSet) # 표 생성 시작 pset.Rows = rows pset.Cols = cols pset.WidthType = width_type # 너비 지정(0:단에맞춤, 1:문단에맞춤, 2:임의값) pset.HeightType = height_type # 높이 지정(0:자동, 1:임의값) sec_def = hwp.HParameterSet.HSecDef hwp.HAction.GetDefault("PageSetup", sec_def.HSet) total_width = (sec_def.PageDef.PaperWidth - sec_def.PageDef.LeftMargin - sec_def.PageDef.RightMargin - sec_def.PageDef.GutterLen - hwp.MiliToHwpUnit(2)) pset.WidthValue = hwp.MiliToHwpUnit(total_width) # 표 너비 if height and height_type == 1: # 표높이가 정의되어 있으면 total_height = (sec_def.PageDef.PaperHeight - sec_def.PageDef.TopMargin - sec_def.PageDef.BottomMargin - sec_def.PageDef.HeaderLen - sec_def.PageDef.FooterLen - hwp.MiliToHwpUnit(2)) pset.HeightValue = hwp.MiliToHwpUnit(height) # 표 높이 pset.CreateItemArray("RowHeight", rows) # 행 m개 생성 each_row_height = total_height - hwp.MiliToHwpUnit(rows) for i in range(rows): pset.RowHeight.SetItem(i, each_row_height) # 1열 pset.TableProperties.Height = total_height pset.CreateItemArray("ColWidth", cols) # 열 n개 생성 each_col_width = total_width - hwp.MiliToHwpUnit(3.6 * cols) for i in range(cols): pset.ColWidth.SetItem(i, each_col_width) # 1열 # pset.TableProperties.TreatAsChar = treat_as_char # 글자처럼 취급 pset.TableProperties.Width = total_width # hwp.MiliToHwpUnit(148) # 표 너비 적용 hwp.HAction.Execute("TableCreate", pset.HSet) # 코드 실행 # 글자처럼 취급 여부 적용(treat_as_char) ctrl = hwp.CurSelectedCtrl or hwp.ParentCtrl pset = hwp.CreateSet("Table") pset.SetItem("TreatAsChar", treat_as_char) ctrl.Properties = pset결과는 위와 동일합니다 고작 표 하나를 만들기 위해질릴만큼 길고 복잡한 저 API코드를 작성해야 한다는 사실을 알게 되면(특히 회사원들) 어느 누가 한/글 자동화를 시도할까 싶었습니다.전부 언급할 수도 없는 상당한 분량의 백그라운드 지식을 알려주는 것도 큰 부담이었습니다.아래아한글 API의 구조와 실행방법, 파라미터셋 사용법,파라미터셋의 서브아이템셋을 정의해야 하는 경우와 정의방법,암호같은 API 문서를 읽는 방법..ㅜ 작년말에 금융감독원 연수원에서 아래아한글 자동화 강의요청을 해 주셨거든요.시간은 짧고, 할 말은 많고, 저런 무지막지한 API 코드 보여주면 재미가 없을 것 같아서현업에 쓰일 법한 함수들을 묶어서 시연 위주로 보여드렸는데,그게 계기가 되어,아래아한글 보고서작성 자동화를 위한pyhwpx라는 파이썬모듈을 개발하게 되었습니다.하여튼 이제는 나름의 버전업을 거듭해서0.8 근처까지 왔는데요. 아직 갈 길이 멉니다.그럼에도 create_table, table_to_df나,table_from_data, get_into_nth_table, 특히 put_field_text는한/글 보고서 취합 및 작성 자동화나 엑셀연동에 진심인 분들에게는정말 파워풀한 메서드일 거라고 자부합니다.개발기간도 아직 짧은 편이고, 다소 조악해 보일 수 있습니다.하지만, 정말 수백 건의 문의와 의뢰를 받고 일일이 회신을 드렸던 모든 경험을pyhwpx 모듈에 하나씩 녹여내고 있습니다.pyhwpx 사용법도 알려주세요! - 인프런현재는 블로그와 인프런 QnA에 pyhwpx 짧은 메서드 사용법 위주로 포스팅하고 있지만,오는 2월부터는 작은 프로젝트나, 의뢰 / 문의내용을 토대로pyhwpx의 활용방법도 차근차근 영상과 포스팅으로 풀어볼 예정입니다.업무자동화에 관심이 있는 파이썬 초보 분들, 특히 직장인 분들많은 관심 부탁드립니다^^ 감사합니다.행복한 하루 되세요!

업무 자동화pyhwpx아래아한글hwppython일상의코딩일코파이썬create_table한컴오피스업무자동화

Jason

파이썬 왈러스 연산자 소개(필요성, 사용 예시)

이번 글에서는 왈러스 연산자에 대해 알아보겠습니다.왈러스 연산자는 아무래도 새로운 기능을 위한 개념이라기 보다는 짧고 직관적인 코드 작성에 사용되는 개념이다보니 직접 예제를 보며 설명하겠습니다.왈러스 연산자는 비교적 최근인 3.8 버전에서 등장한 개념입니다.한 줄에서 변수에 값을 할당하면서 동시에 이 값을 표현식의 일부로 사용할 수 있습니다.바다코끼리 연산자를 통해 파이썬에서 할당 표현식을 가능하게 합니다.여러분이 오랜만에 소비를 좀 하려고 합니다. 우선 그래픽 카드도 좀 사고 싶고,,, 그 다음 순위로 책(2권 사야됨), 그 다음 순위로 키보드, 그 다음 순위로 만년필을 선호한다고 가정하겠습니다.이제 온라인 쇼핑몰 속을 돌아다니며 현재 예산에서 무엇을 살 수 있을 지 봅니다!예산 내에서 그래픽 카드를 살 수 있으면 사고, 아니면 책 2권 값을 낼 수 있는 지 확인합니다. 그래도 안 되면 순서대로 키보드, 만년필을 살 수 있는지 확인해야 합니다.능숙한 프로그래머인 여러분들은 이정도는 파이썬으로 자동화하실 수 있죠?my_budget = 1000000 gift_value = { # 그래픽 카드는 품절이랍니다 'gc': 1300000, 'book': 50000, 'keyboard': 55000, 'pen': 80000 } # 99999999 정도면 품절 상품도 구매할 수 있다고 칩시다. value = gift_value.get('gc', 99999999) if value <= my_budget: print('그래픽카드 구매') else: value = gift_value.get('book', 99999999) if value*2 <= my_budget: print('책 주문!') else: value = gift_value.get('keyboard', 99999999) if value <= my_budget: print('키보드 구매') else: value = gift_value.get('pen', 99999999) if value <= my_budget: print('만년필 구매') else: print('살 수 있는 게 없습니다.') print(f'{my_budget}에서 {value}만큼 사용하셨습니다.')의도대로 동작하지만;; 너무 복잡해보이는 코드입니다. 제가 코드를 잘못 짰다고요?elif 사용을 통해 직관적으로 보이게 만들 수 있지만, 그렇게 쉽게 줄여지지 않습니다. 항상 동일 환경 조건에서 비교를 하는 것이 아니며(book 같은 경우에는 *2 후 비교) 각 상품마다 나오는 메시지가 다르기 때문입니다.이제 왈러스 연산자가 나올 시간입니다. 이 코드에 왈러스 연산자를 적용해보겠습니다.my_budget = 1000000 gift_value = { # 그래픽 카드는 품절이랍니다 'gc': 1300000, 'book': 50000, 'keyboard': 55000, 'pen': 80000 } if (value := gift_value.get('gc', 99999999)) <= my_budget: print('그래픽카드 구매') elif (value := gift_value.get('book', 99999999) * 2) <= my_budget: print('책 주문!') elif (value := gift_value.get('keyboard', 99999999)) <= my_budget: print('키보드 구매') elif (value := gift_value.get('pen', 99999999)) <= my_budget: print('만년필 구매') else: print('살 수 있는 게 없습니다.') print(f'{my_budget}에서 {value}만큼 사용하셨습니다')위아래 코드의 차이가 잘 느껴지셨으면 좋겠습니다.지금 본 사례처럼 왈러스 연산자를 사용하면 코드를 더 직관적이게 만들 수 있습니다.조건문 내에서 값을 할당하고 바로 검사, 블록 안밖에서 사용까지 할 수 있으니 정말 편리하다고 느낍니다.다른 사용 예시를 보며 마무리하겠습니다.# 입력값을 받아서 검사하고 처리 if (n := int(input("Enter a number: "))) > 10: print("10보다 큰 수를 입력했군")# 튜플 언패킹을 사용한 예 a, b = (1, 2) print(a, b) # 출력: 1 2 # 튜플 타입에서 왈러스 연산자를 사용하려면 반드시 명시적으로 괄호를 해주거나 따로 언패킹, 패킹해야 됩니다. (a := 1, b := 2) print(a, b) # 출력: 1 2 원문: https://pinstella.com/writer/articles/7

프로그래밍 언어파이썬pythonwalruscleancode

모두의연구소

코딩 테스트 대비까지 완벽한 백엔드 기초 가이드

위니브, 제주코딩베이스캠프 대표 이호준 대표가 말하는 백엔드 개발자가 되기 위한 첫 걸음부터 완벽한 코딩 테스트 대비까지! 국가에서 지원하는 많은 부트캠프가 있습니다. 여러분도 비교 분석을 해보셨을 것이고요. 만약 비교 분석을 하지 않으셨다면 비교 분석을 해보시길 권해드립니다. 이 글에서는 이 과정이 어떠한 부분에서 특별한지를 설명해 드리고자 합니다. 1. 실무 경험 많은 강사진부트캠프마다 한 강사가 처음부터 끝까지 끌고 가는 강의가 있고, 챕터마다 강사가 나뉘는 강의도 있습니다. 둘 다 장단점이 있습니다. 저희는 각 분야의 전문성은 해당 분야 근무와 실무 경험이 있으신 분이 가장 잘 알고 있다고 판단했기 때문에 후자를 선택했습니다.파이썬과 인공지능은 국민은행 등에서 데이터 분석을 하셨던 김진환 님이, 프론트엔드는 다음 포털 검색 FE 개발 등을 하셨던 한재현 님이, 인프라는 반도체 회사에서 IT 담당하셨던 김승주 님이, 백엔드는 위니브의 대표인 제가(이호준) 이끌고 있습니다. 모두 위니브라는 조직에 속해있어 유기적으로 커뮤니케이션하고 있습니다. 자신이 맡은 분야 강의가 끝나도 채팅방을 나가거나 사라지지 않고요.또한 실무 경험과 더불어 가장 큰 것은 강의 경험이라고 생각합니다. 모두 아래 보이는 다양한 콘텐츠 제작과 대학, 대기업 등에 강의 경험, 출판 경험이 있는 분들입니다.저희는 다양한 콘텐츠 제작(책과 강의 제작) 경험과 다수의 부트캠프 운영 경험이 있습니다. 다양한 곳에 콘텐츠를 공급하고 있지만, 그중에서도 인프런에서는 57개 강의, 7만여 명 수강생, 평점 4.8점을 달성하고 있어요. 제주코딩베이스캠프라는 Django 부트캠프를 제주에서 진행하고 있기도 합니다. 카카오와 함께하는 알고리즘 산책 등 다양한 프로그램 운영 경험도 가지고 있습니다. 유튜브 채널은 제주코딩베이스캠프라는 채널을 운영하고 있고요.이렇게 쌓인 노하우를 통해 여러분의 드라마틱한 성장을 돕겠습니다.  2. 개별 학습 욕구에 맞춘 학습 방식많은 학생이 모여 수업을 듣는 만큼 다양한 학습 경험치를 가지고 있습니다. 컴퓨터공학과를 졸업한 분, 이제 막 시작하신 분, 이미 다른 기업에서 실무를 하다 오신 분 등이요. 다양한 분들이 들어오는 만큼 학습 방법에서도 차이가 있습니다.이제 막 시작하신 분은 모든 수업에 집중해서 들을 수 있도록 구성이 되어 있고, 관련 학과를 졸업하신 분들은 부족한 부분만 학습할 수 있도록 강의자료와 월별 영상 강의가 나갑니다. 이미 실무를 하신 분들은 책 출판이나 오픈소스 프로젝트 등 다양한 커리어를 쌓을 수 있도록 구성되어 있습니다. 이밖에도 수준별 스터디 그룹 구성, 개발 실무진의 멘토링 등을 통하여 가능하면 여러분의 다양한 학습 욕구가 해소될 수 있도록 진행하고 있습니다.공통 교육은 줌을 통한 온라인 라이브로 진행이 되고, 디스코드를 통해 실시간 질문을 받습니다. 진도는 중위 진도로 조정해가며 나가고, 어렵거나 쉬우신 분들을 위해 공부할 수 있는 학습자료나 자신의 실력을 가늠할 수 있는 과제를 드립니다.강사와 수강생의 시간이 꼭 동기화 될 필요는 없습니다. 이미 해당 과목이나 당일 나가는 진도에 대해 충분한 이해를 하고 있다면 더 높은 수준으로 넘어갈 수 있도록 학습 자료를 제공합니다. 부족한 부분 2%를 채우러 오신 분 같은 경우 과제로 바로 넘어가거나 오픈소스나 책 출판 프로젝트에 좀 더 몰입하는 분도 있으십니다.다만 이 경우에도 필수 과제는 꼭 해주셔야 합니다. 선택 과제와 필수 과제가 주어지는데요. 이 과제를 통해 여러분이 해당 과정에 꼭 필요한 학습 개념을 이해하고 있는지 판단합니다. 3. 책 출판과 오픈소스 프로젝트여러분을 좀 더 밀도 있는 개발자로 성장 시키고, 이력서에 한 줄 넣어 취업의 험난한 허들을 넘을 수 있도록 캠프 외 프로젝트로 책 출판 프로젝트와 오픈소스 프로젝트를 진행합니다.책 출판 프로젝트는 항상 무료책으로만 출판을 하고 있으며 반기나 분기별로 출판하고 있습니다. 이러한 프로젝트는 여러분의 이력서에 오랫동안 남을 것입니다. 지금 취업뿐만 아니라 여러분이 다음에 이직을 하실 때도 많은 도움이 될 것이고요.다만 이 프로젝트는 자율 프로젝트입니다. 출판이 쉬운 작업은 아니기 때문에 의지가 있어야 합니다. 책 출판은 의지가 있는 분들을 모으고, 브레인스토밍을 통해 주제를 선정한 다음 그 주제를 집필할 분들을 모아 팀끼리 집필하게 됩니다. 필수로 참여해야 하는 프로그램은 아닙니다. 한 권의 책을 출판한다는 것은 쉬운 일은 아닙니다. 쉽지 않기 때문에 가치가 있습니다. 이를 통해 여러분들은 좀 더 밀도 있는 개발자가 되실 수 있습니다.오늘 자(2023/11/22) 리디북스 컴퓨터/IT 전체 무료 책 인기순으로 보았을 때 첫 페이지에 있는 책 대부분이 저희가 집필한 책이거나 캠프에 참여한 학생들이 집필한 책입니다. 출판사 사도출판으로 확인하시면 됩니다.오픈소스 프로젝트는 관련된 주제가 있을 때 진행하고, 관련된 주제가 없을 경우 진행하지 않습니다. 보통 반기에 한 건씩 진행하고 있습니다. 대표적인 프로젝트로 제주특별자치도 상황판으로도 사용했었던 라이브 코로나(https://livecorona.co.kr/)가 있고, 스탑워(https://stopwar.co.kr/), 플랙스엔그리드(https://flexngrid.com/), 에스큐엘스쿨(https://sqlschool.co.kr/) 등을 진행했었습니다. 오픈소스 프로젝트는 실무에 계신 분 중 뜻이 있는 분들이 합류해 함께 개발합니다. 4. 반복학습과 코드 리뷰, 코딩 테스트처음 하는 분에게 가장 두렵고 힘든 것은 ‘익숙하지 않음’ 입니다. 12번의 반복을 통해 Django를 학습할 수 있도록 다양한 프로젝트가 준비되어 있고, 실무에 대한 막연한 두려움도 이겨내실 수 있도록 실제 실무에서 하는 것과 유사한 프로젝트가 준비되어 있습니다.각 프로젝트에는 발표회가 준비되어 있습니다. 이 발표회와 프로젝트 시트(sheet)를 통해 서로가 서로의 프로젝트를 공유할 수 있는 구성으로 동반성장 할 수 있도록 구성이 되어 있습니다. 발표마다 상장이 준비되어 있습니다. 발표가 있는 프로젝트는 총 3개이고 별개로 대상, 최우수상, 우수상이 나가게 됩니다.이러한 경험과 과제가 쌓여갈 때마다 할 수 있다는 자신감이 생기실 것입니다. 쉬우니까 할 수 있다는 자신감이 아니고 어렵지만 할 수 있다는 자신감입니다. 모두 구현하지 못하더라도, 일부라도 발표를 할 수 있도록 합니다. 부담감도 성장의 동력으로 쓸 수 있도록 여러분을 이끌겠습니다.또한 막연하게 여러분에게 어떤 결과물을 요구하는 것이 아니라 명확한 가이드를 통해 여러분이 갖춰야 될 구성 요소에 대해 예시를 통해 말씀드립니다. 예를 들어 발표는 대부분 Readme 파일로 진행을 하는데요. 아래 샘플 레포를 통해 어떤 식으로 구성하는지 감을 잡을 수 있습니다.링크 : https://github.com/weniv/project_sample_repo과제 발표와 동시에 코드 리뷰를 진행합니다. 실제 실무에서 받는 코드 리뷰 절차 등에 대해서도 설명해드리고 어떤 코드가 좋은 코드인지에 대해서도 여러 사례를 기반으로 얘기해드립니다. 코딩 테스트는 현재 출제되는 문제의 유형 분석, 문제의 출제 빈도, 기업별로 분석해둔 코딩 테스트 유형 등 다양한 데이터 기반 자료를 토대로 여러분들에게 명확한 가이드와 전략을 드리도록 하겠습니다.위니브에서는 그동안 여러 권의 알고리즘 책을 출판했으며, 제주 알고리즘 베이스캠프(https://jejualcam.co.kr/), 카카오와 함께하는 알고리즘 산책 등 다양한 행사를 진행해 왔습니다. 또한 알고리즘 테스트 서비스(https://pyalgo.co.kr/)도 운영하고 있는데요. 이러한 경험을 기반으로 여러분이 알고리즘에 보다 쉽게 다가갈 수 있도록 돕겠습니다.다만 코딩 테스트는 아쉽게도 왕도가 없습니다. 여러분이 매일매일 훈련하셔야 합니다.  4. 이력서 템플릿 제공과 리뷰, 코딩 테스트 대비저희가 한 해에 리뷰하는 이력서는 500건에서 700건 정도 됩니다. 이력서 검토 경험을 ‘신입개발자 이력서 작성 가이드’라는 책으로 집필하기도 했습니다.리뷰를 했던 데이터를 기반으로 희망 연봉에 따라 이력서를 검토해드립니다. 또한 희망 연봉에 따라 준비해야 하는 요건이 다를 수 있습니다. 예를 들어 고액 연봉을 희망한다면 코딩 테스트를 준비해야 하지만 연봉 3200 미만에서는 코딩 테스트가 거의 없습니다. 전략적으로 어떤 포지션을 취해야 하는지도 함께 알려드립니다.이력서를 노션으로 많이 작성하는데요. 실무자가 어떤 것을 선호하는지 모르기 때문에 다양한 양식을 준비해둘 필요가 있습니다. 생각보다 Notion 이력서를 좋아하지 않는 곳도 많습니다. 저희는 PDF양식과 노션 양식을 모두 제공해드립니다. PDF 양식은 아래 링크에서 무료로 확인하실 수 있습니다.https://paullabworkspace.notion.site/Figma-bfa32213fc244db9b31bb8486a479ee6?pvs=4 5. ICT 교육에 대한 치열한 고민캠프를 진행하게 되면 우리끼리 간혹 하는 얘기가 있습니다. ‘이 교육은 우리밖에 못한다’라는 얘기인데요. 이유는 우리는 ICT 교육에 대해, 한 과목 한 과목에 대해 치열하게 파고들고 회의하여 적재적소에 학습요소를 배치할 수 있는 그룹이기 때문입니다. 또한 단순히 교육의 퀄리티를 고민하는 것이 아니라 교육을 넘어 여러분에 이력에 무엇이 들어가야 좋을지, 이력서는 어떻게 써야 하는지 실질적인 컨설팅을 병행할 수 있는 그룹이기 때문에 그렇습니다. 우리는 여러분의 취업과 성장에 진심인 그룹입니다.우리의 방식이 모든 사람에게 맞는다는 생각은 가지고 있지 않습니다. 비교해보시고, 분석해보시고 선택해주시길 바랍니다.

백엔드백엔드웹개발파이썬장고PythonDjangoAI서비스인공지능머신러닝프레임워크

추천 시스템, 학계도 기업도 열광하는 이유는?

지금, 온라인 서비스의 성공은 어떤 요소에 좌우될까요? 추천 시스템에 바로 해답이 있습니다. 유튜브, 넷플릭스, 아마존, 스포티파이 등의 초대형 테크 기업에서 추천 시스템을 통해 사용자 맞춤 콘텐츠를 제공함으로써 폭발적인 성과를 거둔 바 있죠. 데이터를 효과적으로 분석하고 경영 전략에 활용하기 위해 전문가 채용 또한 활발해졌습니다.추천 시스템을 이루는 알고리즘을 구현하기 위해서는 파이썬(Python) 기반 머신러닝을 알아야 합니다. 현재 가장 인기 있는 프로그래밍 언어 중 하나인 파이썬은 여러 머신러닝 라이브러리를 통해 추천 시스템 구현에 필요한 기능을 지원합니다. Scikit-Learn(사이킷런) 같은 라이브러리가 대표로 꼽히죠.꼭 비즈니스가 아니더라도 파이썬 기반의 추천 알고리즘 구현 능력은 매우 중요합니다. 복잡한 데이터를 분석하고 예측하기 위해 그 활용 범위가 더욱 넓어지고 있기 때문인데요. 추천 시스템을 통해 보다 정확하고 효율적인 결과를 얻을 수 있도록 알고리즘을 고도화하고 핵심 라이브러리를 잘 활용하는지가 경쟁력으로 주목받고 있는 요즘입니다.•••추천 시스템에 필요한 파이썬과 선형대수, 머신러닝 라이브러리 활용 모두 알아보고 싶다면?지금 인프런 프리즘 [파이썬 머신러닝 추천 시스템 입문 로드맵]을 통해 학습해보세요. https://www.inflearn.com/roadmaps/704•••인프런 프리즘 브랜드 스토리 읽어보기 >>

데이터 사이언스머신러닝추천시스템추천알고리즘파이썬Python선형대수선형대수학Scikit-Learn인프런프리즘InflearnPrism

일코

[python+hwp] 글머리 기호의 모양만 수준별로 바꾸는 파이썬 코드

문단 글머리 기호를 추출하고자 합니다.원래 목적은 문단별 글머리 기호가 다르고 문단별로 각각 다른 폰트를 적용이 목적입니다.GetHeadingString()을 써보니코드를 적용해서 커서를 옮겨도 문서를 최초 불러온 커서의 위치의 글머리 기호를 불러오네요..이유를 몰겟습니다. ㅠㅠ아래는 테스트 코드입니다.(후략)https://www.inflearn.com/questions/809257이 문제는 예를 들어서 설명하는 게 여러모로 좋을 것 같습니다.아래는 제가 임의로 만들어본 예시문서입니다.위와 같은 문서에서 제1수준(숫자로 시작하고 "." 으로 끝나는 문단기호)에는 "진하게(Bold)"를 적용하고제4수준("가나다" 등 문자로 시작하고 ")" 으로 끝나는 문단기호)에는 "기울임(Italic)"을 적용해보겠습니다.import win32com.client as win32 def 한글_시작(): hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") # 한/글 실행 hwp.XHwpWindows.Item(0).Visible = True # 백그라운드 해제 hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") # 보안모듈 등록 return hwp def 진하게(): if not hwp.CharShape.Item("Bold"): # 진하게 적용되어 있지 않으면 hwp.Run("CharShapeBold") # 진하게 적용 def 이탤릭(): if not hwp.CharShape.Item("Italic"): # 이탤릭이 적용되어 있지 않으면 hwp.Run("CharShapeItalic") # 이탤릭 적용 if __name__ == '__main__': hwp = 한글_시작() hwp.Run("FileOpen") hwp.Run("MoveDocBegin") # 문서 시작점으로 이동해서 hwp.Run("MoveParaEnd") # 문단 끝으로 이동 para_num = 0 # 0번째 문단에서부터 while True: # 한문단씩 이동하면서 if hwp.GetPos() == (0,0,16): # 0번째 문단으로 돌아오면(!!) # 추가설명 : SetPos 입력시 문서범위를 벗어나서 이동을 시도하면 # 커서가 문서시작위치(0,0,16)로 돌아옵니다. # 이를 이용해 while 문 종료조건을 잡아보았습니다. break # while문 종료 hwp.SetPos(0, para_num, -1) # para_num번째 문단 끝(-1)으로 이동 para_head = hwp.GetHeadingString() # 글머리 추출 # 글머리가 숫자로 시작하고 "."으로 끝나면 if para_head[:-1].isdigit() and para_head.endswith("."): 진하게() # 글머리가 문자로 시작하고 ")"로 끝나면 elif para_head[:-1].isalpha() and para_head.endswith(")"): 이탤릭() # 글머리가 없거나 기타 글머리인 경우 else: pass # 넘어감 para_num += 1 # 다음 문단으로 이동해서 위의 코드 반복주석을 나름 꼼꼼히 달아보았는데,혹시 잘 납득이 안 가는 부분이 있으면댓글로 알려주시기 바랍니다^^실행화면은 아래와 같습니다.우리의 의도대로제1수준은 진하게, 제4수준은 이탤릭이 적용되는 것을 확인하실 수 있습니다.<부연>크게 어렵지 않고, 짧은 코드이긴 하지만..위와 같은 경우에는(여러 개의 한/글 파일을 변경하는 게 아니라면) 기왕이면 코딩을 사용하지 않고,Ctrl-K-N을 통해 문단번호의 글자모양 기본값을 통해문단수준별로 직접 변경하는 게 훨씬 안정적일 것 같기는 합니다^^; 

업무 자동화파이썬아래아한글업무자동화한컴오피스

Jason

파이참에서 새 프로젝트 만들기 (+줄 번호 옆 빨간 점)

파이참에서 새 파이썬 프로젝트를 만드는 방법에 대해 알아보자.   그전에 먼저, 프로젝트를 구분해야 하는 이유를 간단하게 알아보자. 흔히 a강의 실습, b강의 실습, 프로젝트c 등 다양하게 프로젝트를 만들어서 코딩을 한다. 이렇게 구분하는 이유는 가상환경 때문, 어떤 프로젝트에서 사용되는 패키지가 다른 프로젝트에서는 버전이 다르거나 필요없을 수 있다. 이름 구분 때문. 사실 가장 큰 이유이다. 다른 사람과 코드를 피드백, 전달, 협업할 때 유용하다. (프로젝트 파일을 통째로 넘기면 되니깐)   파이참에 접속하면 다음과 같은 화면이 뜬다. 혹시라도 안 뜬다면(기존의 프로젝트가 열린다면) 맨위에 파일 -> 새 프로젝트를 눌러주면 된다.   여기서 새 프로젝트를 눌러준다.       일단 프로젝트가 저장될 위치를 선택해야 한다. 바탕화면에 저장하는 것을 추천하다. 바탕화면에 hello 폴더(프로젝트 폴더)를 넣고 싶으면 윈도우는 사진처럼 적으면 된다. 그리고 바로 아래쪽에 다음을 이용한 새 환경을 체크한다. 이전에 구성된 인터프리터를 체크하는 것은, 다른 프로젝트의 버전, 패키지를 완전히 공유하겠다는 것이라서, 비추천한다, 다음을 이용한 새 환경을 체크하면, 자동적으로 프로젝트가 저장되는 폴더 안에 venv 폴더라고 지정되어 있을 것이다.   아래쪽에 main.py welcome script를 체크하는 개인의 기호에 맡긴다.   그리고 맨 아래쪽에서 오른쪽에 있는 생성 버튼을 누른다.   조금 더 기다리자.   모든 준비가 완료되면, main.py가 보일 것이다. (프로젝트 생성 시 체크박스를 체크하였다면)   가장 왼쪽에는 프로젝트 디렉토리 구조를 한 번에 볼 수 있다, 가운데부터 쭉 main.py 코드가 나와있다.   코드 가장 왼쪽에는 줄 번호가 나와있다. 그리고 실행조건이 나와있다. 여기서 빨간 점을 볼 수 있는데, 누르면 사라진다.(없앨 수 있다) 디버깅이라는 것을 할 때 사용되는 것이므로, 코드 실행에는 큰 영향을 주지 않는다.   코드를 실행하는 방법은 다양하다. main.py를 보고 있는 상태에서 Ctrl 키 + Shift 키 + 단축키F10을 동시에 눌러준다. main.py 코드 아무데서나 마우스 오른쪽을 누른 후 실행을 누른다. 파이참 화면 오른쪽 위에 실행버튼을 누른다.     다음은 디렉토리 구조가 나와있는 곳(파이참 화면에서 왼쪽)에서 파일이나 디렉토리를 생성하는 영상이다.   다음은 디렉토리 구조가 나와있는 곳에서 파일이나 디렉토리를 삭제하는 영상이다.

파이참pycharm파이썬python코딩프로그래밍인프런

DJANGO_1

※파이썬 가상환경을 구축한 상황이라 가정하고 진행하겠습니다 (가상환경 구축은 나중에 추가 정리해서 올리겠습니다.)   Visual Studio Code로 진행했으며 cmd 터미널 환경에서 Django-admin startproject config .  명령어를 사용해주면 장고가 시작됩니다. (config 옆에 있는 . 까지 포함해야 합니다.) 장고파일을 만든 후 python manage.py startapp [앱이름] 명령어를 사용하면 작업할 앱을 만들수 있습니다.    오늘 Django_1정리는 url분리와 template 분리에 대해 정리하겠습니다. 먼저 앱을 생성해준 후, django를 만들때 생성된 config파일로 이동해줍니다. 그럼 config파일 내부에 urls.py파일을 확인할 수 있을겁니다.  urls.py에서 경로를 설정해주면 됩니다. urlpattern설정하는 방법에는 절대경로와 상대경로의 방법이 있습니다. 절대경로는 /로 시작하면 /최상위폴더/하위폴더/하위폴더...순으로 작성해주며 되고 상대경로는 현재폴더/연결할 파일...순으로 찾아가는 경로입니다.  urlpatterns = [     path('admin/', admin.site.urls), ] 위 코드를 살펴보면 url코드가 '주소/admin'인 url에 접속하게 되면  admin.site.urls의 화면을 불러온다고 생각하면 될꺼 같습니다.  저는 아래와 같이 경로를 설정해주겠습니다. urlpatterns = [     path('admin/', admin.site.urls),     path('prac/',views.index) ] 위 경로를 설정해주기 위해서는  from prac import views 코드를 작성해줘서 prac파일의 views를 가져온다고 설정해주어야 합니다. 그럼 이와같이 작성이 끝나면 prac앱의 views파일로 이동해줍니다.  혹시 prac이 어디서 나왔냐하면, python manage.py startapp prac으로 prac이라는 앱을 생성해준겁니다. views로 이동하게 되면 처음 url경로를 설정해줄때 views.index 즉 views파일의 index를 호출하게 설정해주었는데 아마 아직 아무것도 작성해주지 않아 index함수가 없는 상태일껍니다.  그럼 def index로 함수를 만들어줍니다. def index(request):     return render(request, "prac/index.html") 저는 index함수를 이렇게 해줬습니다. 일단 설명하기 앞서 render에 대해 잠시 설명하셌습니다. render은 template 함수를 사용할 떄 사용하는 함수입니다. 그럼 또 template는 무엇이냐 하면,  재사용이 가능한 파일로써, views에서 데이터를 받아 동적으로 치환해서 사용합니다. (Django의 정리가 끝나면 마지막에 용어정리를 한번 하도록 하겠습니다.) template이라는 폴거를 만들어 앱과 똑같은 이름의 prac이라는 폴더를 template하위 폴더로 만들어주고 파일을 만들어줘서 관리해줍니다. 따라서 위에 작성한 코드를 다시 살펴보면 "prac/index.html"은 prac폴더의 index.html을 반환하라는 것을 의미합니다.   순서대로 프로젝트 작업 최상위 폴더에 template폴더를 생성하고 앱 이름과 똑같은 prac폴더를 순서대로 만듭니다. 만드는 방법은 그냥 아무폴더 클릭후 esc를 눌러준다음  2번째에 보이는 폴더만들기를 눌러주면 됩니다. 순서대로 만들어줬다면 prac폴더를 클릭후 index.html을 만들어줍니다. 이제는 다시 template을 사용하기 위해서는 다시 config파일의 settings.py를 수정해줘야 합니다. 약 53-54번째 줄을 확인해보면 TEMPLATES가 있는것을 확인할 수 있습니다. TEMAPLATES밑에 'DIRS':[]라고 되어 있을텐데 그 부분을  'DIRS': [BASE_DIR/'template'], 이렇게 수정해주면 됩니다. 쉽게 설명하자면 경로를 설정해준겁니다.    총 처음부터 어떻게 실행되는지 흐름을 정리하자면 모든 폴더와 파일이 세팅되었다는 가정하에 터미널에 서버 시작 명령어 python manage.py runserver을 쳐줍니다. (가상환경 상태에서 명령어를 사용해야되며 command 창에 입력해야됩니다. powershell에서는 안됩니다) 보면 빨간색으로 칠한 부분을 키보드의 ctrl을 누른채로 마우스 좌클릭을 해주면 창이 열립니다. /prac이라고 추가적으로 입력해주면  template/prac 폴더안에 생성한 index.html에 작성한 코드가 보이는 것을 확인할 수 있습니다.   처음에 이제 실행을 하게 되면, config폴더 안의 urls.py에 url주소를 맵핑해준것을 기억할 수 있습니다. prac/이라는 주소를 주었고 따라서 '주소/prac'이라는 url을 주게 되면 views.index를 호출하게 됩니다. 그럼 views.index는 어디에 있냐면 앱 생성 명령어로 통해 생성한 앱인 prac앱의 views로 이동하면 됩니다. 하지만 아직 index함수는 만들어주지 않았으니 새로이 만들어줘야합니다. def index...으로 생성해주고 render함수를 반환해줄수 있도록 합니다. 그러면 다시 views.index에서 prac/index.html로 보내게 됩니다. 그럼 다시 template/prac 순으로 만들어줬던 폴더에 있는 index.html이 호출이 됩니다. 따라서 최종적으로 사용자가 확인할 수 있는 화면은 index.html이며 사용자가             '주소/index'라는 url을 주게 되면 위의 순서대로 넘어와져 결국 index.html이 호출되는 것을 확인할 수 있습니다.    다음에는 테이블 생성으로 찾아뵙겠습니다.   ※제가 공부하면서 참고할려고 만든 블로그라 많이 미숙합니다. 혹시 제가 놓친부분이나 수정할 부분 댓글 남겨주시면 반영하겠습니다. 감사합니다.    

백엔드Djangopython파이썬장고

파이썬 및 라이브러리 특정 버전 설치를 위한 가상환경 세팅 방법

빌어먹을 강의들이 라이브러리 특정 버전 설치 안하면 제대로 들을 수 없게 만들어 놓고는 그 설치 방법에 대해서는 구체적으로 명시해 놓지 않았다. 라이브러리 간에도 호환이 잘 되는 버젼이 있으며, 파이썬 또한 해당 라이브러리들과 잘 맞는 버전이 있기 때문에 왠만하면 강의에 명시되어 있는 버전을 까는 것이 좋다.   1. 가상환경 만들기 conda create -n my_project python=3.4 my_project 는 가상 환경 이름, python=뒤에는 버전 쓰기   2. 가상환경 활성화 activate my_project   3. 라이브러리 설치 1) conda install 라이브러리==버전 혹은 pip install 라이브러리==버전 2) pip freeze 라고 치면 설치된 라이브러리 리스트가 나옴   4. 파이썬을 실행시키고 라이브러리 import가 되는지 확인하자   5. 라이브러리 설치 했음에도 import 안될 경우 Python shell 과 jupyter notebook 간의 라이브러리 경로를 확인   1) jupyter lab 실행 후         import sys       print(sys.executable)       입력하여 경로 확인   2) 나가서 cmd에서 python 실행시키고 똑같이 입력해서 경로 확인   3) 두개가 다를 경우 일치 시켜줘야 함   4) cmd에서 사용 가능한 커널 확인(base 상태에서 할 것)       jupyter kernelspec list   5) 가상환경 커널 추가(base 상태에서 할 것)       일단 가상환경 리스트 확인   6) 가상환경을 jupyter notebook 커널에 연결(base 상태에서 할 것)    pip install  ipykernel     python -m ipykernel install --user --name 가상환경이름 --display-name "커널이름"     7) 커널 리스트 다시 확인       jupyter kernelspec list   6. jupyter notebook 실행 후 커널 변경     https://jhryu1208.github.io/devlang/2021/04/04/modulerrorsolution/      

파이썬가상환경라이브러리