플레이데이터 부트캠프 데이터 엔지니어링 트랙 2주차 (6.12~.16)

안인균·2023년 6월 22일
0
post-thumbnail

드디어 부트 캠프의 2주차 과정이 끝났습니다. 아직 남은 시간 매우 많지만, 시간이 금방 흐르는 것 같습니다.
이번주에는 본격적인 프로그래밍 관련 수업이 시작되었습니다.

프로그래밍 언어 중 하나인 'Python'의 기초 문법, 자료형, 함수 등에 대한 학습을 하였습니다. 이번 회고에서는 지난 주차에서
진행했던 '4L' 회고가 아닌 '5F' 회고 방식으로 작성할 예정입니다. 현재 저의 회고는 누군가와 협업하는게 아닌 저 혼자, 개인이 경험한 내용들을 바탕으로한 회고이기 떄문에 개인이 한 활동을 회고하는데 유용하다는 '5F' 회고 방식을 사용하겠습니다.

플레이데이터 부트캠프 데이터 엔지니어링 2주차(6.12~.16)
✔ 5F 회고 방식 적용
" 5F 회고는 Fact, Feeling, Finding, Future action, Feedback, 5가지 키워드에 따라 순서대로 회고를 진행하는 방식입니다."


Fact (사실 : 무슨일이 있었는가?)

  • 지난 수업들의 복습과정을 했습니다.
  • 파이썬의 조건문(if문), 반복문(for문, while문), 리스트 자료형과 문자열 자료형의 응용, 함수, class, 예외 처리 등에 대한 학습을 하였습니다.
  • Streamlit 라이브러리를 이용한 웹 페이지를 만들었습니다.
  • 리스트 컴프리헨션, 람다 표현식, f-string 등의 다양한 파이썬 표현식을 알 수 있었습니다.

Feeling (느낌: 무슨 느낌이 들었나?)

  • 파이썬의 자료형의 개념을 잘 익힐 수 있었던 시간이었습니다.
  • 이전에 학습했던 파이썬의 개념이 '대강 이런식으로 흘러가는구나' 하는 것을 확실하게 정립할 수 있었습니다.
  • 백준과 프로그래머스 사이트를 활용해서 배운 개념을 쓸 수 있는 문제를 풀면서 성취감을 느낄 수 있었습니다.
  • 알고리즘 문제 푸는 재미를 느낄 수 있었습니다.
  • 아직까지 적응이 안된 생활이여서 오전 수업 중 졸림이 있었습니다.
  • 시간이 지나면서 진도가 앞으로 나가니 이전에 알지 못한 부분을 많이 알 수 있었고, 수업에 집중을 할 수 있는 계기가 생겨 좋았습니다.
  • 리스트와 문자열의 여러 가지 응용 메서드를 학습하는데 어렵다기 보다는 잘 사용하지 않았던 내용들이 있어서 당황스러웠습니다.
  • 집에 갈 때가 다 되가니 피곤을 느꼈습니다. 체력의 한계를 느낀 거 같습니다. (운동을 열심히 해야겠다.)
  • 매개변수의 다른 종류를 보고 처음 보는 내용과 활용 방법이어서 당황스러웠습니다.
  • 아직 완벽하게 이해되지 않은 부분이 있었지만, 앞으로 할 일이 생겨서 좋았습니다.
  • 람다 표현식 부분을 이전에 학습한 경험이 없어서, 새로웠고, 파이썬이여서 가능한 부분이었기에 - 신기하고 파이썬의 특징에 더 잘 알 수 있었습니다.
  • class 관련 수업 내용 중 상속 클래스 부분에서 연속적으로 상속하는 경우에 대해 학습할 때, 비슷한 글자들이 겹쳐서 순간 어지러웠습니다.
  • 오늘 수업 내용이 꽤 많은 양이었지만, 이전에 갖고 있던 궁금증에 대한 해답을 들을 수 있어서 흥미로웠습니다.
  • 아직, 완벽하게 이해하진 않았지만, 이후 회고 정리에서 더 자세히 다룰 예정입니다.
  • Streamlit에 대해 처음 알게 되었고, 간단하게 웹 페이지를 만들 수 있었던 경험이 매우 신기하였습니다.

Finding (배운 점: 어떤 인사이트를 얻었나?)

  • 이전에 파이썬 학습은 필요할 때마다 검색해서 학습해서 두서 없이 공부했는데 이번 기회에 파이썬의 자료형들에 대해 자세한 학습을 할 수 있었습니다.
  • 간단한 내용일 수 있었지만 여러 예시문을 통해서 개념 정립에 도움이 되었습니다.
  • 조건문과 반복문 활용에 대해 알 수 있었습니다.
  • 배열 뒤집기를 간단히 [ : : -1] 통해 할 수 있는 것을 알았고, 이를 활용해 간단한 문제도 풀 수 있었습니다.
  • 슬라이싱으로 문자열 뒤집기, [ : : -1] 을 통해서 팰린드롬 함수를 간단하게 만들 수 있었습니다.
  • 리스트의 내장된 메서드에 대해 학습하였고, 각각의 예시를 구현하여 이해를 도울 수 있었습니다.
  • 리스트 할당, 얕은 복사, 깊은 복사의 차이와 어떤 방식으로 나뉘어지는 지를 알 수 있었습니다.
  • 이전에 잘몰랐던 리스트 표현식, 컴프리헨션을 학습할 수 있는 좋은 기회였습니다.
  • 리스트 컴프리헨션과 조건부 표현식(삼항연산자)를 비교하며 학습할 수 있었습니다.
리스트 안에 리스트 -> import copy -> copy.deepcopy() 를 통해 깊은 복사를 할 수 있습니다.
'*'(애스터리스크) 마크를 통해 위치가변인자매개변수, 키워드가변인자매개변수를 설정하는 것을 배웠고,
각각의 활용 예시를 배웠습니다.

def 함수명(
            기본값이 없는 매개변수, 
            *위치가변인자매개변수 (*args), 
            기본값이 있는 매개변수=(기본값), 
            **키워드가변인자매개변수 (**kwargs)
                ):
    실행할 코드
    ...

함수 선언하고 if문을 사용할 떄, else 표현 없이 중간에 있는 return을 통해 함수가 탈출할 수 있는 것을 배웠습니다. 이것으로 if 문 작성시 별도의 else 문 작성없이 잘 작동하는 이유를 알 수 있었습니다.
당연시 사용되었던 int(), list(), dict()가 전부 클래스 였고, 이를 활용했던 방식처럼 우리가 임의로 정의한 클래스로 인스턴스를 만들고 메서드를 만들어 출력하는 예시를 실행 및 학습 하였습니다.

"인스턴스와 객체의 차이점" :
클래스는 객체를 표현하는 문법이라고 했는데, 클래스로 인스턴스를 만든다고 하니 좀 헷갈리죠? 사실 인스턴스와 객체는 같은 것을 뜻합니다. 보통 객체만 지칭할 때는 그냥 객체(object)라고 부릅니다. 하지만 클래스와 연관지어서 말할 때는 인스턴스(instance)라고 부릅니다. 그래서 다음과 같이 리스트 변수 a, b가 있으면 a, b는 객체입니다. 그리고 a와 b는 list 클래스의 인스턴스입니다. (수업 내용 중 주석 처리된 설명문을 일부 발췌한 내용입니다.)

  • 예외 처리에서 때때로 원하지 않는 값에 대한 결과에 대해 에러를 발생 시키고, 해당 하는 에러에 대한 메시지를 직접 설정할 수 있는 것을 학습하였습니다.
raise 예외('에러메시지')
  • Streamlit 라이브러리에 대해 알게 되었습니다.

https://streamlit.io/

  • 파이썬 환경에 Streamlit 을 설치해서 사용할 수 있게 했습니다.
# in Terminal
# pip install streamlit
# streamlit hello

import streamlit as st  # streamlit
st.title("나의 파이썬 웹 페이지")
st.header("수업 8일차에 만들었어요")
st.subheader("그래도 잘 만들었죠?")
st.write("내가 만든 페이지, 너를 위해 구웠지")

# streamlit run app.py
# 간단한 streamlit을 활용한 웹 페이지 생성 과정
  • Streamlit으로 만든 웹 페이지를 로컬에서만 아니라 배포를 할 수 있는 방법을 알 수 있었습니다.
    (무료 - 1주일 동안 미접속 시 비활성화 상태전환)

streamlit 공식 문서 참고
저작권 신경 안써도 되는 이미지 동영상 사이트

Future action (향후 행동: 앞으로 무엇을 해야 할까?)

  • 파이썬의 다른 문법에 대한 학습할 예정입니다.
  • 배운 개념들과 관련되어 알고리즘 문제 해결 공부를 할 예정입니다.
  • 파이썬과 알고리즘 공부를 할 예정입니다.
  • 이전에 구비한 '파이썬 알고리즘 인터뷰' 책을 활용할 예정입니다.
  • 이중 리스트 컴프리헨션을 학습할 것 입니다.
  • f-string 활용을 익힐 예정입니다.
  • 매개변수 args, kwargs 등의 활용 방법에 대해 학습할 것 입니다.
  • 람다 표현식을 조금 더 자유롭게 사용할 수 있도록 하고 싶습니다.
  • chatGPT를 활용해서 부족한 부분을 채울 것 입니다.

Feedback (피드백: 앞서 정한 향후 행동을 실천해본 뒤, 이에 대해 어떤 피드백을 받았나?)

  • 책 '파이썬 알고리즘 인터뷰'를 정독할 자신이 없다면, 백준의 새싹 문제, 프로그래머스의 기초, 입문 문제들을 풀고, 이후에 막히는 개념 부분을 참고해나가는 방식의 공부법을 알 수 있었습니다.
  • 리스트 컴프리헨션의 응용 방법이나 더 심도 있는 내용들은 코테 문제를 풀거나 학습할 때 더 자세히 알게 될 수 있다고 피드백 받았습니다.

2주차에 접어들면서, 배우는 양도 많아지고 매일 Github에 작성하는 TIL(Today I Learned)양도 많아지면서 이번 글의 내용이 많아졌습니다. 아무래도 많은 양을 작성하고 싶은 마음이 있어서 이번에는 무리 하면서 모든 내용을 다 적었는데 다음번 글에는 내용을 요약해서 짧게 작성하여 가독성을 올려보겠습니다.

0개의 댓글

관련 채용 정보