Selena
受講者数
68
レビュー数
21
評価
5.0
저는 파이썬 기초부터 데이터 분석까지 다양한 강의를 진행하며, 10,000명 이상의 수강생을 온·오프라인에서 만나왔습니다.
수강생들의 어려움을 가까이에서 파악하며, 데이터를 더 쉽게 이해하고 실습할 수 있도록 고민한 경험을 강의에 녹여내고 있습니다.
이러한 경험을 바탕으로, 『파이썬 데이터 분석가 되기 + 챗GPT』라는 책을 집필했으며, 이 책이 누구나 부담 없이 데이터 분석을 시작할 수 있는 안내서가 되기를 바라며 강의를 진행하고 있습니다.
현재 패스트캠퍼스, 클래스101, 멀티캠퍼스, 메가스터디, 국비지원등 여러 플랫폼에서 데이터 분석 메인 강사로 강의를 진행하고 있습니다.
약력
현) 서강대학교 AI·SW대학원 인공지능전공 대우교수
현) 서울아산병원 빅데이터연구센터 데이터사이언티스트
머신러닝, 딥러닝, IT플랫폼 개발, SCI 논문 저자
서강대학교 AI·SW대학원 데이터사이언스 석사 졸업
숙명여자대학교 컴퓨터과학 학사 졸업
MIT IDSS Program 'Data Science and Machine Learning' 수료
저서
파이썬 데이터 분석가 되기 + 챗GPT
강의 및 컨설팅
패스트캠퍼스: 'AI 월드' - 프롬프트엔지니어링 '소크라테스', '아인슈타인' 강의 런칭
패스트캠퍼스: '실패 없이 완주하는 파이썬 데이터 분석 입문' 강의 런칭
클래스101: 'ChatGPT를 이용한 Python 데이터 분석 정복하기' 강의 런칭
패스트캠퍼스: '실습으로 끝장내는 파이썬 데이터 분석 입문' 기업 전용 강의 런칭
국비지원: '한 번에 따라하는 파이썬 데이터 분석 기초 완주반' 강의 런칭
메가스터디: '파이썬 프로그래밍 기초', '인공지능을 위한 파이썬 라이브러리 활용' 강의 런칭
멀티캠퍼스: '파이썬 데이터 분석 입문 with ChatGPT' 강의 런칭
삼성전자: Citizen Developer 양성 과정 '파이썬 프로그래밍 기초'
대한의료정보학회: '의료 데이터를 활용한 실전 분석' 튜토리얼
서강대학교, 숙명여자대학교, 한국외국어대학교, 아주대학교, 한국교통대학교, 울산대학교, 한국폴리텍대학교 : '파이썬 프로그래밍 기초', '파이썬을 활용한 머신러닝 및 데이터 분석 실습'
S-OIL, SK 플래닛, 현대오토에버, 대상 주식회사: '프롬프트 엔지니어링', '생성형 AI를 활용한 업무 자동화', '파이썬 오픈 API기반 웹 크롤링 강의', 'RNN을 활용한 주가 데이터 분석'
잡코리아: '인공지능 분야 취업 컨설팅'
講義
受講レビュー
- [超初心者] [累計5,000名+] Pythonプログラミング基礎完成ロードマップ
- [超初心者] [累計5,000名+] Pythonプログラミング基礎完成ロードマップ
- [超初心者] [累計5,000名+] Pythonプログラミング基礎完成ロードマップ
- [超初心者] [累計5,000名+] Pythonプログラミング基礎完成ロードマップ
- [超初心者] [累計5,000名+] Pythonプログラミング基礎完成ロードマップ
投稿
Q&A
변수 선언에 관련한 질문.
안녕하세요. 기연님!셀레나입니다. 🙂 a = 1처럼 = 앞뒤에 띄어쓰기(공백) 를 두는 것은 문법적으로 꼭 필요한 것은 아닙니다.즉, 아래 두 가지는 완전히 동일하게 동작합니다.a=1 a = 1질문 주신 것 처럼 띄어쓰기를 하는 이유는 가독성(코드의 읽기 쉬움) 때문입니다.파이썬은 코드의 일관성과 가독성을 매우 중요하게 생각하는 언어예요. # 권장하는 형태 (PEP 8 스타일) a = 1 b = 2 c = a + b # 권장하지 않는 형태 a=1 b=2 c=a+b 띄어쓰기를 해준다면, 코드를 읽을 때 시각적으로 구분이 쉽습니다. 또한 일관성을 유지할 수 있기 때문에 팀 작업 시 모두 같은 스타일을 따르면 유지보수가 쉬워집니다. 추가적으로 궁금한게 생기면 언제든 질문해주세요.그리고 꼭 복습과 완강까지 화이팅입니다!
- 1
- 2
- 31
Q&A
for-else는 언제 쓰나요?
안녕하세요. 셀레나입니다. 🙂 파이썬의 for-else에서 else는 반복이 break로 중단되지 않고 끝까지 다 돌았을 때만 실행되므로, 예를 들어 어떤 조건을 만족하는 항목을 찾으면 break로 종료하고 못 찾았을 때만else에서 “없음” 처리를 하거나(예: 검색 실패 메시지, 기본값 설정), 모든 원소가 검증 기준을 통과했을 때만 else에서 “전부 통과” 후속 동작을 실행하는 식으로 검색/검증의 성공·실패를 깔끔히 분기할 때 씁니다. 화이팅입니다!!
- 1
- 2
- 41
Q&A
코드에서 오류를 찾는 팁이 있을까요?
안녕하세요. 셀레나입니다. 🙂 저는 현업에서 오류를 찾을 때 가장 많이 활용하는 방식은 오류가 발생할 코드 공간에 print문을 찍는 겁니다. 이때는 무작정 찍기보다 계획적으로 찍는데, f-string으로 값+타입을 함께 남기고(print(f"[load] {len(data)=}, {type(data)=}")), 화이팅입니다! :)
- 2
- 2
- 30
Q&A
요즘 바이브코딩이 대세인데 파이썬을 배워야하는 이유가 뭘까요?
안녕하세요. 🙂요즘 바이브코딩이 뜨거워도 파이썬을 배우면 AI가 내놓은 코드를 읽고 판단하고 고칠 힘이 생깁니다. 프롬프트만 잘 써서는 결과의 정확도와 안정성을 담보하기 어려운데, 기본 문법과 라이브러리를 알면 문제 정의와 검증이 훨씬 탄탄해집니다. 에러 메시지나 성능 병목을 만났을 때도 언어 감각이 있어야 디버깅이 가능하고, AI와의 대화도 구체적인 가설로 더 생산적으로 이끌 수 있습니다. 🙂파이썬은 웹 자동화, 데이터 분석, 머신러닝/딥러닝, 스크립팅, 서버리스 등 다양한 도구를 붙여주는 글루 언어라서 한 번 익히면 활용 범위가 넓습니다. 팀 협업에서는 코드 리뷰와 품질 관리가 중요한데, 파이썬 기반의 테스트·형식화 도구를 이해하면 AI가 생성한 코드도 팀 기준에 맞춰 다듬을 수 있습니다! 학습 자원과 생태계가 방대해 문제를 해결할 레퍼런스를 찾기 쉽고, 경력 전환이나 사이드프로젝트에도 적용 범위가 넓어 기회 비용 대비 효용이 큽니다. 결국 “AI가 코드를 대신 쓰는 시대”일수록, 파이썬을 아는 사람은 더 빠르고, 더 안전하게, 더 멀리 갑니다. 그래서 배워두시면 정말 유용하실거라고 생각해요. 지오찬님 화이팅입니다! 꼭 완강하세요. 🙂
- 1
- 1
- 38
Q&A
순회 중 리스트 수정은 왜 위험한지 궁금합니다.
안녕하세요. 셀레나입니다. 좋은 질문이에요. :)for로 리스트를 도는 동안 요소를 지우거나 넣으면 인덱스가 밀려 다음 값을 건너뛰거나 중복·에러가 나므로, 원본은 건드리지 말고 새 리스트로 결과를 만들거나 사본을 돌리거나 뒤에서 앞으로 지우는 방식이 안전합니다. 아래의 예제는 2를 지우면 3이 2의 자리로 당겨지는데, 이미 다음으로 넘어가서 그 3을 못 봅니다. 그래서 기대와 달리 몇 개가 안 지워진 채 남을 수 있어요.a = [1, 2, 3, 4, 5, 6] for x in a: if x % 2 == 0: # 짝수 지우기 a.remove(x) print(a) 그래서 최대한 돌 때는 건드리지 말고, 결과를 새로 담아 만드는 걸 추천드립니다.아래 예제는 a를 돌면서 짝수만 result에 담고, 마지막에 a를 그걸로 바꿉니다.result = [] for x in a: if x % 2 == 0: # 짝수면 result.append(x) a = result
- 1
- 2
- 38
Q&A
range함수 관련
안녕하세요. 셀레나입니다!강의 13장의 반복문 관련 내용이네요. 😊 이 예제는 반복문의 기본 개념을 설명하기 위한 첫 번째 예제입니다. 처음 반복문을 접하시는 분들이 반복자(i) 개념을 익히도록 돕기 위해 편의상 i를 사용했으며, 이후에는 반복자를 활용하는 다양한 방식을 설명하고 있습니다.이후에는 반복자를 활용하는 다양한 방식을 설명하고 있습니다. 만약 클린 코드 관점에서 본다면, i 변수를 사용하지 않는 경우 _로 대체하는 것이 더 적절합니다.예를 들어, 아래처럼 작성하면 불필요한 변수 선언 없이 반복문을 실행할 수 있습니다.for _ in range(5): print('파이썬 프로그래밍') 이렇게 하면 반복 변수(i)를 사용하지 않는다는 의도를 명확히 드러낼 수 있습니다. 감사합니다. :)
- 2
- 1
- 65
Q&A
if 질문
안녕하세요! 셀레나입니다. 🙂 파이썬에서 가장 중요한 문법 중 하나는 '들여쓰기' 입니다!들여쓰기를 해줘야만 컴퓨터가 if 문과 실행할 코드를 같은 그룹으로 묶어 이해하고 실행할 수 있습니다. 예를 들어, 아래 코드에서:if 1: print('true') # ❌ 들여쓰기 없음 (오류 발생) 이렇게 작성하면 컴퓨터는 if 문 이후에 실행할 코드가 없다고 인식합니다.그래서 반드시 들여쓰기를 해줘야 합니다! if 1: print('true') # ✅ 올바른 들여쓰기 이렇게 하면 컴퓨터가 "if 문이 참이면 print('true')를 실행하면 되겠구나!" 라고 이해합니다. 💡들여쓰기는 파이썬에서 필수적인 문법 요소입니다. 다른 프로그래밍 언어에서는 들여쓰기가 선택 사항이지만, 파이썬에서는 들여쓰기를 하지 않으면 오류가 발생합니다. 꼭 기억해 주세요!
- 2
- 1
- 41
Q&A
포맷팅 질문
안녕하세요. 셀레나입니다. 포맷팅은 중요한 개념이죠! :) 열심히 복습도 하신다니 너무 멋지세요!! 언제나 응원합니다. 첫 번째 예제는 0번째 인덱스를 가지고 옵니다. print('나는 {}호선을 타고 학교를 가'.format(6)) print('나는 {0}호선을 타고 학교를 가'.format(6))두 줄 모두 "나는 6호선을 타고 학교를 가"를 출력합니다.{}는 자동 인덱스(0번),{0}은 명시적으로 0번 인덱스를 사용한 거예요. 두 번째 예제는 오류가 납니다. 같이 살펴보도록 하죠~! print('나는 {1}차를 타고 학교를 가'.format('우리집'))이건 에러가 납니다.왜냐하면?.format('우리집')은 인자 하나만 넘겼어요.그런데 {1}은 인덱스 1 를 참조하겠다는 의미예요.하지만 인자는 하나밖에 없어서 IndexError가 발생합니다.오류를 해결하기 위해서는 {0}은 인덱스 0 를 참조해주세요! print('나는 {1}호선을 타고 학교를 가'.format(643))이것도 마찬가지로 에러가 납니다. 643은 하나의 인자일 뿐이고, 1번째 인덱스는 없어요. 정리하면,format()에 넘긴 인자의 개수가 중괄호에서 참조하는 인덱스보다 적으면 에러가 납니다.숫자 하나를 넘기더라도 {1}은 1번째 인덱스를 찾으려고 하기 때문에, 문자열의 1번째 문자나 숫자의 1의 자릿수를 참조하는 게 아니에요.단순히 인덱스 기준으로 format() 함수의 인수 리스트를 참조하는 겁니다. 새로운 예제로 이해해보겠습니다! print('나는 {1}호선을 타고 학교를 가'.format('우리집', 2)) # 출력: 나는 2호선을 타고 학교를 가여기선 인자를 두 개 넘겼기 때문에 {1}은 2를 잘 참조할 수 있어요. 이해되실까요? :) 파이썬 공부 화이팅입니다!!!
- 2
- 1
- 30
Q&A
딕셔너리 반복자 질문
안녕하세요. 셀레나입니다. :)답변드립니다.딕셔너리에서 for 문을 사용할 때 기본적으로 반복 변수는 키 값을 받습니다. 하지만 .items(), .values() 메서드를 활용하면 값(value)이나 (키, 값) 쌍도 가져올 수 있습니다. 1. 기본적으로 키만 반복my_dict = {'a': 1, 'b': 2, 'c': 3} for key in my_dict: print(key) # a, b, c (키만 출력) 2. 키와 값을 함께 사용 (.items())for key, value in my_dict.items(): print(f"키: {key}, 값: {value}") 3. 값만 반복 (.values())for value in my_dict.values(): print(value) # 1, 2, 3 (값만 출력) 즉, 반복 변수는 키로 고정되지 않고, .items()나 .values()를 사용하면 값도 활용할 수 있습니다.
- 2
- 1
- 30
Q&A
set 질문
안녕하세요! 셀레나입니다. :) set1.update([11,13]) 코드에서 [11,13]이 리스트 자체로 추가될 것이라고 예상하셨지만, update() 함수는 리스트의 각 요소를 개별적으로 추가하는 함수입니다. 즉, {1,2,3,4,5,6,[11,13]}처럼 리스트 [11,13]이 통째로 추가되는 것이 아니라, 11과 13이 각각 추가됩니다. 🔹집합(set)은 변경 가능한(mutable) 객체를 요소로 가질 수 없습니다.따라서 리스트는 집합에 직접 추가할 수 없지만, 튜플(immutable 객체)은 추가할 수 있습니다. set1 = {1, 2, 3, 4, 5, 6} set1.add((11, 13)) # 리스트가 아닌 튜플로 추가 print(set1) # {1, 2, 3, 4, 5, 6, (11, 13)} ✔add() 함수를 사용하면 단일 요소만 추가할 수 있습니다.✔(11, 13)을 튜플로 감싸면 하나의 요소로 인식되어 집합에 추가됩니다.
- 2
- 2
- 44




