14일차
2025-01-19
1차 미니 프로젝트 발표 당일.
그나마 자신있는 파트일 때 발표자로 자원했다.
어떻게 발표를 마쳤는지 기억도 나지 않는다 ㅠ ... 손 덜덜 떨며 성공적으로(?) 발표 마무리 ..
▼ 자세한 내용은 깃헙으로 가기
GitHub - SKNETWORKS-FAMILY-AICAMP/sk25-1st-5team
Contribute to SKNETWORKS-FAMILY-AICAMP/sk25-1st-5team development by creating an account on GitHub.
github.com
Four F's of active revewing
Facts: '전국 자동차 등록 현황 및 FAQ를 조회'를 주제로 1차 미니 프로젝트를 진행하였다. 우리 팀은 대주제에서 세분화해서 '정비소'에 집중하기로 하였고, 전국 자동차 등록 현황 및 지역별 인구/차량 변화, 정비소 분포를 시각적으로 확인할 수 있는 대시보드를 구현하였다. FAQ도 컨셉에 맞춰서 기업별 정비 관련 FAQ만 추출하여 사용하였다.

로고는 제미나이랑 GPT의 합작으로 만들었는데, 귀여우니까 여기저기 자랑하기 ㅎ.ㅎ
주요기능과 기술스택은 깃헙에 잘 적혀있으니 참고!
📝 프로젝트 회고
Feelings:
1) 업무분장을 하며 팀원들이 모든 과정에 기여했으면 하는 바람이 있었다. 다들 의견이 같아 데이터 수집도, 페이지 구현도 한 명씩 나눠서 진행할 수 있었다. 이대로만 하면 무난하게 완성시킬 수 있겠다고 생각했다.
2) 초반에는 "일단 빨리 화면을 만들고 기능을 붙이자"는 생각에 마음이 급했다. 최종 결과물을 산출해야한다는 생각에 구현에만 집중했는데, 데이터 구조가 매칭이 되지 않아 데이터 표준화를 다시 해야하는 상황이 생겼다. 개발 속도에만 집중할 게 아니라 데이터 전처리를 잘 해둬야한다는 교훈을 얻었다.
3) 팀원들이 요구 기능을 적극적으로 반영해줘서 좋았다. 문제는 모두가 예스맨이었다(😇ㅎ..)
발표 당일까지 추가 기능 구현을 할까, 말까 고민했다. 기능이 추가됐다면 더 만족스러웠겠지만, 프로젝트 완성 측면에서는 일정 관리랑 범위 설정도 중요하다고 배우는 계기가 되었다.
Findings:
1) ERD 설계가 곧 분석의 질과 연결되는 걸 배웠다. 테이블을 독립적으로 사용하면 단순 화면 구현은 가능해도, 지표 간 연결이 약해서 인사이트를 단순 나열하는 것밖에 되지 않는다.
2) 다양한 공공데이터를 사용하는 경우 컬럼명을 표준화해 두어야 한다. 이에 따라 이후 작업 속도에 차이가 생긴다.
3) 다음부터는 Branch를 사용하자. 이번 프로젝트에서는 main에 바로 push를 했지만, 협업 과정에서 충돌없이 작업을 진행하려면 독립적인 branch가 필요하다.
Future: 다음 프로젝트부터 습관화할 목표들!
1) 관계가 있는 데이터 FK로 연결하고, 조인이 필요한 컬럼은 인덱스를 고려하여 ERD 설계하기
2) Git flow 준수하기. PR기반 협업을 기본으로, 커밋 단위 기준을 더 명확하게 설정하고 진행하기

15일차
2025-01-20
오늘의 메뉴는 ~ 지난 번 나주곰탕집에서 뚝불을 시켜먹었다.

맛있긴했는데, 역시 튜닝의 끝은 순정이라고 오리지널이 더 좋았다.
나주곰탕 추천 👍
Four F's of active revewing
Facts: 본격적으로 pandas를 배우기 시작했다. 그리고 데이터 분석의 기초가 되는 통계 이론을 배웠다.
분명 언젠가 들었던 내용이지만 통계는 볼 때마다 가물가물하다 ...
가물가물하다. 가물가물한
Feelings: groupby가 손에 익질 않는다. 자꾸 ()적었다가 []적었다가 눈물의 원맨쇼 중이다..

나도 강사님처럼 언젠가는 구글링없이 코드를 적는 [고-수]가 되면 좋겠다.지금은 절대 복습시간이 더(더더) 필요한 것 같다.
Findings: pandas로 데이터를 분석해보는 것에서 그치지 않고, 이걸 SQL로 복습해보면 SQL 실력도 함께 늘 것이라는 조언을 받았다.
Future: 복습해야 산다.. 집 가서 기절하지 말고 책을 펴자 ㅠㅠ. 마음을 다 잡고자 드디어(!) 알고리즘 공부용 깃 레포를 생성했다.
GitHub - yeony-park/Algorithm: 💡 알고리즘 공부를 시작합니다
💡 알고리즘 공부를 시작합니다. Contribute to yeony-park/Algorithm development by creating an account on GitHub.
github.com
오늘부터 나도 잔디, 심는다. 숲을 만들어주지.
16일차
2025-01-21
지난 번 한화시스템 실무 교육에서 certification 자격증보단 정처기나 코테 역량이 더 중요하다고 들었었지만,
엔코아에서 매달 무료로! PCCE, PCCP, PCSQL 시험을 치룰 수 있게 해준다.
결국 옆자리 럭키씨가 도전한다는 말에 솔깃해서 PCCE를 신청했다.

체력보충을 위한 오늘의 점심~~~
여기 쌀국수만 잘하는 줄 알았는데, 분짜도 잘 한다.채채님이 팟타이 시켜드셨는데 팟타이도 맛있다. 다음엔 팟타이 먹을 예정.

저녁도 야무지게 챙겨왔다.
김치 새우 볶음밥과 (아직 요거트를 넣기 전) 블루베리 그레놀라 요거트였는데,
저녁에 열어보니 요거트와 밥이 살짝 섞여서 비주얼이 .... (이하 생략)
Four F's of active revewing
Facts: pandas 교재 순서대로 예제 학습하기
Feelings: 행렬의 내적곱을 보니 수학 공부도 다시 해야할 것 같다.
# 내적
import numpy as np
np.arange(6).reshape(2,3)
np.dot(np.arange(6).reshape(2,3), np.arange(6).reshape(2,3).T)
# 2x3 행렬과 3x2 행렬의 내적은 2x2 행렬이 된다.
# 행렬 내적이란 벡터의 곱셈과 덧셈을 이용하여 두 행렬을 곱하는 연산이다.
# 행렬 A의 열의 개수와 행렬 B의 행의 개수가 같아야 내적이 가능하다.
# 결과 행렬의 크기는 A의 행의 개수와 B의 열의 개수로 결정된다.
# 예를 들어, A가 m x n 행렬이고 B가 n x p 행렬일 때, 결과 행렬 C는 m x p 행렬이 된다.
# 행렬 내적은 선형 변환, 데이터 분석, 머신 러닝 등 다양한 분야에서 활용된다.
# 행렬 내적의 계산 방법은 다음과 같다:
# 결과 행렬 C의 각 원소 C[i][j]는 행렬 A의 i번째 행과 행렬 B의 j번째 열의 원소들을 곱한 후 모두 더한 값이다.
# 즉, C[i][j] = Σ (A[i][k] * B[k][j]) for k = 1 to n
# 예를 들어, 두 행렬 A와 B가 다음과 같다고 가정해보자:
# A = [[1, 2, 3],
# [4, 5, 6]]
# B = [[7, 8],
# [9, 10],
# [11, 12]]
# 이 경우, 행렬 A는 2x3 크기이고, 행렬 B는 3x2 크기이다. 따라서, 행렬 A와 B의 내적은 2x2 크기의 행렬 C가 된다.
# 행렬 C의 각 원소는 다음과 같이 계산된다:
# C[0][0] = (1*7) + (2*9) + (3*11) = 58
# C[0][1] = (1*8) + (2*10) + (3*12) = 64
# C[1][0] = (4*7) + (5*9) + (6*11) = 139
# C[1][1] = (4*8) + (5*10) + (6*12) = 154
# 따라서, 결과 행렬 C는 다음과 같다:
# C = [[58, 64],
# [139, 154]]
Findings: 환율 정보를 크롤링해와서 '현찰로 살 때, 팔 때, 송금 할 때, 받을 때'가 컬럼명인 데이터프레임을 만들었다. 이제 스스로 실생활에 유용한 정보를 가공할 수 있게 되었다.
Future: 정처기와 알고리즘 스터디에 들어갔다. 정처기는 실기부터라서 3월까지는 시간 여유가 좀 있다. 알고리즘 공부랑 sql문 공부도 열심히 할 예정이다. 지난 번 지필시험 결과를 바탕으로 인프런 강의도 제공받았는데, 이걸 언제 다 듣지 ...? 🔥🔥
17일차
2025-01-22
오전에 전기 배관 공사가 있어서 오후에 수업이 시작했다.꿀잠자고 출근했더니 몸이 개운했다. 정말 행복했는데 이게 조삼모사라니 .. 🥲
Four F's of active revewing
Facts: 기초 통계 수업과 소상공인 공공데이터 zip파일 풀기, 히스토그램 그래프 그리기
Feelings: pyplot을 쓰면 쓸수록 그래프가 예쁘지 않아서 javascript로 구현하는 게 더 낫지 않을까 하는 상상을 한다. 백지에 하나하나 설정해주는 맛이 있는데 ... 흐린 눈으로 보면서 만족해보려고 노력 중이다 🙄
Findings: 이전에 다뤘던 KBO 데이터를 가져와서 랜덤하게 30명의 선수를 뽑고, 10만번 이상 시행했을 때 선수들의 평균 체중 값을 히스토그램으로 그려보았다. 데이터 양 자체가 많은 샘플이 아닌데도 랜덤하게 선택했다는 것만으로 정규분포와 비슷한 형태로 바뀌는 게 신기했다.
Future:

복습노트 (5) 4일차, 5일차 | Notion
데코레이터
daily-archduke-be2.notion.site
기분좋은 상태로 복습도 후다닥 끝냈다.
데코레이터가 이해가 안 가서 며칠 째 잡고 있는 중이다.
다음 주 안엔 반드시 이해하고만다.
18일차
2025-01-23
오늘의 메뉴는 매운 갈비찜

양도 많고 맛있는 소나기의 매운갈비찜.
반찬도 맛있고 다 좋은데, 나이가 들어서 그런가(?) 두 번째 먹었을 땐 좀 달다고 느꼈다.
다음 주부터는 다시 열심히 도시락을 싸올 거다 🦾
Four F's of active revewing
Facts: 판다스 데이터분석의 마지막 날. 강사님이 문제를 내주셨다. 일정 시간동안 그래프까지 구현을 하면 되는 거 였는데..
Feelings:

될 것 같은데 왜 안 될까.
빅분기 실기 준비하면서 막혔던 부분을 똑같이 겪었다.
groupby해둔 컬럼을 다시 어떻게 꺼내오는지 몰라서 한참 헤매고 ..결과를 내긴 했는데 다른 분들과 답이 다르고 ... 😭
Findings: 항상 데이터 전처리를 잘 해야 한다. 조건을 천천히 살펴보고 코드를 짜야하는데, 일단 적고나서 생각하자는 마인드로 접근하니까 나중에 결과값이 원하던 값이 아니었다. 오늘 다룬 데이터(2016년 전철 사용 데이터)의 경우 월별로 컬럼명도 다르고 컬럼 개수도 다르고, 심지어 같은 컬럼 내에서도 같은 역을 다르게 기재해둬서 중복값이 있었다. 이처럼 가공해야 할 부분이 많았는데 그 과정을 전부 스킵하고 합쳐버리는 바람에 원하는 결론 값을 얻을 수 없었다.
Future: 데이터 전처리는 한 단계, 한 단계 꼼꼼하게 살펴보면서 진행해야겠다. 만능 체크리스트를 만들어두는 것도 좋을 듯!
복습노트 (6) 6일차 & 18일차 | Notion
EDA를 위한 Pandas 문법들
daily-archduke-be2.notion.site
- 다음 주도 지치지 않게 체력관리 잘 하기!
- 아프지 말기! -> 빨리 낫기
댓글