이번 주로 SK네트웍스 Family AI 캠프에 입과한 지 2주라는 시간이 흘렀다. 평일 내내 9시간의 일과를 보내고 집에 돌아온 뒤에는 운동하고 복습하고 기절하는 일상을 보내고 있자니 시간이 쏜살같이 지나간다. 캠프 생활을 착실히 즐기고 있다는 방증이기도 하겠지만, 남은 약 다섯 달도 빠르게 흘러갈 것이고, 짧게 느껴질 그 시간 동안 무언가를 이루어 내야 한다는 약간의 긴장감이 머릿속을 채우기도 한다. 그래도 즐기는 자를 이길 수 없다는 말을 떠올리며, 계속해서 즐기다 보면 캠프의 끝에는 내가 만족할 만한 성과가 남아 있을 것이라는 믿음으로 이번 주말에도 지금까지 배웠던 것들을 곱씹어보고 있다.
💻 What?
- Python
지난주부터 배운 Python 기초가 수요일에 끝났다. 저번주에 마치지 못한 클래스 관련 내용 일부를 마저 다뤘고, 모듈과 패키지, 예외 처리, 입출력 시스템(I/O)에 대해 다뤘다. 후술하겠지만 일부 생소한 내용들이 있어, 일과가 끝난 뒤에 남아서 복습을 한 날도 있었다.
- Database: SQL
Python을 기초를 마무리한 날 오후, DB(Database) 강의가 시작되었다. 강의안을 통해 DB와 DBMS(DB Management System)의 의미와 기능, DBMS의 처리 흐름에 대해 간략히 다루었다. 이후 이번 주 내내 SQL에 대해 배웠다. 우리는 DBMS로써 Oracle 사의 MySQL을 채택했고, 당일에 다운로드 및 초기 설정을 한 뒤 계정을 생성했다. 이후에는 실습 데이터를 통해 SQL 기본 문법에 대해 배웠다. select문으로 단일 테이블에서 데이터를 다루는 법을 익혔고, 다음 주부터 서로 관계성을 가진 여러 테이블들을 다루는 기능인 join을 배울 것이라는 예고와 함께 이번 주 일정이 끝났다.
- 1st mini project
우리 캠프에서는 네 번의 미니 프로젝트와 파이널 프로젝트 하나, 총 다섯 번의 팀 프로젝트를 진행한다. 다음 주 수요일~목요일 이틀에 걸쳐 첫 번째 미니 프로젝트를 진행할 예정이고, 지난 목요일에 강사님이 대주제와 프로젝트 산출물에 대해 설명하는 짧은 오리엔테이션 및 팀 빌딩을 진행해 주셨다. 미니 프로젝트의 주제는 각 프로젝트마다 직전까지 배운 것들의 응용이고, 이번 프로젝트의 경우는 크롤링(차주 강의 범위)과 DB 구축, DB를 토대로 사용자의 입력을 처리하는 App 구현이다. 팀 구성은 매 프로젝트마다 바뀌는 모양이다.
- Group Study
그룹 스터디 희망자들끼리 그룹을 편성하는 시간을 가졌다. 자격증, 수업 예・복습, 코딩 테스트 등 여러 주제들이 나왔다. 지난 회고에도 밝혔듯이, 나는 알고리즘을 깊이 배워야 한다는 것을 뼈저리게 느꼈다. 그래서 코딩 테스트 스터디 그룹에 들어가게 되었고, 팀장님이 다섯 개의 문제를 주셨다. 쉬운 문제 네 개와, 어려운 문제 한 개의 구성인 듯하다.
😮 So What?
1. 우리 친해졌어요😆
저번주에 아직 거리감을 느꼈던 Python, 이제야 좀 많이 친해진 것 같은 느낌이 든다. 이번 주에 다뤘던 내용들이 특히 거리를 좁혀 주었던 것 같다.
- 모듈 & 패키지
데이터 분석, 모델링과 같은 작업을 수행한다면, 기계적으로 관련 서드 파티 라이브러리들을 import하고 있는 자기 자신을 발견할 수 있다.
import numpy as np
import pandas as pd
...
from sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_split
from tensorflow.keras.models import Sequential
...나도 그중 하나였다. 심지어 나는 모듈과 패키지라는 개념을 아예 몰랐었다. "pandas라는 것 필요하구나"라는 생각이 들면 그게 뭔지는 모르겠고 일단 import하고, "딥러닝할 때는 keras에서 Sequential이라는 모델 클래스를 가져와야 되는구나"라는 생각으로 일단 import했을 뿐이다. 이에 대해 이번 주에 명료하게 배웠던 것 같다.
Module: 재사용할 클래스, 함수 변수 등을 담은.py파일.Package: 그런 모듈들이 저장되어 있는dir.Library라고도 한다.
배우고 나니 모듈과 패키지라는 게 거창한 건 아니었고, 각각 Python에서 정의하지 않은 유용한 기능들을 담은 파일, 모듈들을 저장하는 디렉토리를 가리켰다. 그래서 서드 파티 라이브러리 개발자들이 개발했듯, 원한다면 나도 모듈과 라이브러리를 만들어서 필요할 때마다 import해서 개인적으로 사용하거나, 오픈 소스 라이브러리로써 배포할 수 있겠다(그럴 일이 있겠냐만)는 생각이 들었다. 아울러 앞으로 서드 파티 라이브러리를 불러올 때, 구조적인 개념을 제대로 이해하고 불러올 수 있을 것 같다. 이를 테면:
내가 어떤 라이브러리에서 어떤 하위 라이브러리를 불러오고 있구나.
내가 어떤 라이브러리에서 어떤 모듈과 어떤 클래스를 불러오고 있구나.
2. SQL은 처음이라
재미있다.
아직 기초 부분을 배우고 있어서 그런 건지 모르겠지만, 복습을 조금만 해주면 손에 금방 익는다. SQL은 처음이라 걱정했던 것과 다르게 정말 할 만하다.
-- select문 알아보기. 각 구문 별 작업 순서와 작업 내용을 주석으로 달았습니다.
-- 4. (지역, 성별, )평균 나이를 조회해요.
select
region,
case gender
when 1 then 'male'
else 'female'
end as "gender",
avg(age) as "average of age"
-- 1. db_name.table_name 이라는 테이블에서,
from db_name.table_name
-- 2. 나이 30 이상이고,서울 경기 인천 지역에 사는 사람들을,
where age > 30
and region in ("서울", "경기", "인천")
-- 3. 각 지역별, 그리고 남녀별로,
group by region, gender
-- having 절은 생략
-- 5. 조회한 뒤 평균나이가 가장 높은 것 부터 차례대로 보여주세요.
order by 3 desc;강사님이 샘플 테이블과 예제를 수업마다 내주시는데, 위와 같은 방식으로 코드를 작성해서 실행한 뒤 내가 의도했던 결과가 조회되는 과정에서 Python과 데이터 분석을 처음 배웠을 때 느꼈던 짜릿함을 느낄 수 있었다. 다음 주에 배울 join문은 얼핏 봤을 때 어려워 보이긴 했지만, 또 그만큼 즐거울 것 같다는 생각이다.
3. 우당탕탕 프로젝트 도전기
미니 프로젝트 대주제와 산출물, 그리고 팀 구성이 발표된 이후, 여러 팀들이 쉬는 시간이나 일과가 끝난 뒤에 각자 모여서 이야기를 나누었다. 처음 실시하는 프로젝트이다 보니 방향성에 대해 신중하게 의논하는 모양이다. 우리 팀도 그랬다. 우리 팀은 먼저 주어진 대주제에서 주제를 좁혀 나갔다. 이후에는 기술 역할 분배, 기술 외 요소들에 대한 역할 분배 등을 진행할까 싶었지만, 비전공자가 많은 우리 팀은 먼저 프로젝트에 필요한 모든 기술들을 제대로 익히는 것이 우선이라고 생각해서, 일단 각자 공부해 보고 도움 되는 자료들도 찾아서 공유하는 시간을 갖기로 했다. 다들 어떨지 모르겠지만 비전공 문과생인 나는 크롤링, 개발 분야는 내가 무엇을 모르는지도 모르는 수준이기에, 그만큼 더 치열하게 준비해야 할 것이다. 한편으로는 불과 얼마 전까지는 서로 다른 것들을 배워 온 다섯 명이 모여 어떤 결과물을 만들어 낼지 기대되기도 한다.
🎈 Now What?
1. 당장
이번에는 이름 그대로 회고를 마친 뒤 당장 무엇을 할 건지에 대해 써보고자 한다. 프로젝트에 사용할 기술을 예습하고 살짝 다뤄보는 시간을 가져야겠다. 어제인 토요일에 잠깐 보면서 크롤링은 HTML과 같은 마크업 언어에 대한 이해가 뒷받침해 주어야 제대로 다룰 수 있겠다는 생각이 들었다. 회고를 다 쓰면 바로 짐을 싸서 집 앞 도서관에 가야겠다. 마크업 언어의 기초적인 부분, 크롤링 기초와 여러 관련 라이브러리 공부, 주제 관련하여 도움이 될 만한 데이터를 탐색해 보는 시간이 필요하겠다.
2. +α
시간이 남는다면 오늘 스터디 문제도 조금 풀어보고 싶다. 당장 저번 주만 해도 시간이 남았었는데, 무언가가 닥치니 언제 그랬냐는 듯 시간이 빠듯하게 느껴진다. 그래서 주어진 시간을 효율적으로 보내서 스터디를 위한 시간도 충분히 확보하고 싶은 마음이다. 오늘 잠들기 전에 최소 한 문제는 꼭 풀어보리라.
이렇게 주말도 효율적인 시간을 보내려면 평일처럼 보내는 것이 중요한 것 같다. 쉬는 것도 좋지만, 평일처럼은 아니더라도 일찍 일어나서 하루를 일찍 시작하는 것이 중요하겠다. 이번 주말은 바른생활 어른이 모드이다. 알람 없이 8시 30분에 눈이 떠져서 소소하게 아침을 챙겨 먹고 10시부터는 활동을 하고 있다. 아주 칭찬해...🙃
여담
- 내가 저번 주 내내 나름 일찍 도착할 수 있었던 것은 순전히 운이었다는 것을 깨달았다. 나는 구로역까지 버스로 이동한 뒤, 구로에서는 1호선을 타고 독산역까지 이동하는데, 이 1호선의 난이도가 극악이다. 서울 끝자락에서부터 사람들을 다 태워 오면 구로에서는 이미 급행 9호선처럼 꽉 차있어, 열차 하나씩은 꼭 보내게 된다. 그리고 역마다 많은 사람들이 타고 내리고, 열차 문을 열었다 닫았다 하면서 대개 열차 시간이 지연된다. 그렇게 고난과 역경을 이겨내고 열차에 탑승하고 나면, 두 개 역을 이동하는 동안 정말 소소한 것들에게 감사하는 시간을 갖게 된다.

아직 오락가락하지만 날이 조금씩 풀리고 있는 것 같다. 캠퍼스 근처에는 안양천이 있는데, 벚꽃, 개나리를 비롯하여 여러 🌸이 개화하고 있다. 다음 주에는 만개하지 않을까 싶다. 그래서 한 번은 점심 식사를 일찍 마치고 남은 시간에 HW님이랑 안양천으로 마실을 나갔다. 강바람이 불어 조금은 쌀쌀했지만 조금씩 피기 시작한 꽃들을 옆에 두고 바람을 쐬니 기분이 굉장히 좋았다. 또 한 번은 안양천 트랙을 따라 따릉이를 타고 집으로 돌아간 적이 있다. 흐르는 물을 보면서 가는 길도 예쁘고, 바람도 시원하고 다 좋았지만, 맞바람이 불어 다리가 터지는 듯했다. 바람 부는 날에는 따릉이를 피하도록 하자...

'SKN_13th' 카테고리의 다른 글
| [플레이데이터 SK네트웍스 Family AI 캠프 13기] 6주차 후기 (0) | 2025.05.04 |
|---|---|
| [플레이데이터 SK네트웍스 Family AI 캠프 13기] 월간 회고: 4월 (1) | 2025.04.27 |
| [플레이데이터 SK네트웍스 Family AI 캠프 13기] 4주차 회고 (1) | 2025.04.20 |
| [플레이데이터 SK네트웍스 Family AI 캠프 13기] 3주차 회고 (0) | 2025.04.13 |
| [플레이데이터 SK네트웍스 Family AI 캠프 13기] 1주차 회고 (0) | 2025.03.30 |