이번 주차는 시간이 빠르게 지나간 느낌이었다. 운동을 조금씩 시작하긴 했지만, 아직 체력이 붙지를 않아서 힘들기는 하지만 버티고 있다. 본격적으로 토이 프로젝트를 시작해서 여기에 집중도 해야 하고, 22일에 PCCP 시험도 있고, ADsP 시험도 신청할 예정이어서 해야 할 것이 많아졌다. 그래도 열심히 하다 보면 잘 해낼 수 있을 거라고 생각한다.
2주 차 학습
Python
1. 함수
- 함수(Function)
- 반복되는 코드의 작성을 최소화하고, 코드의 재사용성을 높이기 위해 사용함
- 입력 변수와 출력 변수의 유무에 따라 함수의 유형을 4가지로 나눌 수 있음
- 범위에 따라 전역 변수와 지역 변수로 나뉨
- 전역 변수: 함수 외부에서 선언. 함수 내/외부에서 모두 사용 가능
- 전역 변수를 함수 내부에서 사용하고 싶을 경우, 지역 변수에 값을 저장하여 사용하는 것이 좋음
- 지역 변수: 함수 내부에서 선언. 함수 내부에서만 사용 가능
- 전역 변수: 함수 외부에서 선언. 함수 내/외부에서 모두 사용 가능
- 매개변수: 함수에 입력으로 전달된 값을 받는 변수 / 인수: 함수를 호출할 때 전달하는 입력값
- 가변 매개변수: 인수의 개수를 모를 때 사용. 리스트 형태로 변환(ex. *args)
- 키워드 매개변수: 딕셔너리(key=value) 형태로 인수를 전달할 때 사용(ex. **kwargs)
- 람다(Lambda)
- 함수를 한 줄로 간결하게 만들 때 사용함
- lambda 매개변수: 매개변수를 사용한 표현식
- 클로저(Closure)
- 내부 함수가 외부 함수의 지역 변수를 참조할 때 사용함
- 콜백 함수(Callback Function)
- 함수의 매개변수로 사용되는 함수
- 데코레이터(Decorator)
- 기존 함수를 수정하지 않고 추가 기능을 구현할 때 사용함
- ex. 함수 실행 시간 계산
2. 클래스
- 클래스(Class)
- 메소드(함수)와 속성(변수)의 집합. 동일한 속성을 가지는 여러 객체를 만들 때 사용함
- 클래스를 객체화한 것을 인스턴스라고 함
- 메소드는 첫 번째 매개변수로 self 매개변수를 가짐
- 상속(Inheritance)
- 기존 클래스를 확장하고 재사용할 때 사용함
- 부모 클래스: 기반이 되는 클래스 / 자식 클래스: 상속을 받은 클래스
- public: 클래스 내/외부에서 모두 접근 가능 / private: 클래스 내부에서만 접근 가능
- 매직 메소드(Magic Method)
- 이미 정의되어 있는 메소드로, 클래스 내부에서 사용할 수 있음
- 정해진 규칙에 따라 호출되어 사용함
3. 라이브러리
- Collections
- Counter: 시퀀스 자료형의 데이터 값 개수를 딕셔너리 형태로 반환함
- Math
- datetime: 날짜와 시간에 관련된 모듈
- timedelta: 두 날짜의 차이를 구할 때 사용함
- Time
- 시간과 관련된 모듈
- dateutil: timedelta에서 더 나아가 년, 월의 차이를 구할 때 사용함
- pip install을 통해 설치함
- tz: timezone을 이용하여 날짜와 시간을 구할 때 사용함
4. 데이터베이스
- 데이터(Data)
- 스키마 데이터의 구조와 제약 조건에 대한 것들을 정의함
- 데이터의 형태에 따라 정형 데이터 / 반정형 데이터 / 비정형 데이터로 나뉨
- 데이터베이스(Database)
- 데이터의 집합
- 특징: 실시간 접근성 / 계속적인 진화 / 동시 공유 / 내용에 의한 참조 / 데이터 논리적 독립성
- 데이터베이스 관리 시스템(DBMS; Database Management System)
- 데이터베이스를 조작하는 별도의 소프트웨어
- 기능: 정의 / 구축 / 조작 / 공유 / 보호 / 유지보수
- 유형: 관계형 데이터베이스 관리 시스템(RDBMS; Relational DBMS) / NoSQL DBMS
- 데이터 모델링
- 정보 시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현함
- 업무 파악 → 개념적 데이터 모델링 → 논리적 데이터 모델링 → 물리적 데이터 모델링
- ERD(Entity Relationship Diagram)
- 개체(Entity)와 관계(Relationship)를 중점적으로 표시하여 데이터베이스 구조를 한눈에 알아보기 위해 그린 다이어그램
5. DDL(Data Definition Language)
- 데이터베이스를 구축하거나 수정할 목적으로 사용하는 언어
- CREATE: 스키마 / 도메인 / 테이블 / 뷰 / 인덱스 생성
- ALTER: 테이블 수정
- DROP: 스키마 / 도메인 / 테이블 / 뷰 / 인덱스 삭제
6. DCL(Data Control Language)
- 데이터의 보안 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어
- GRANT: 권한 부여
- REVOKE: 권한 취소
- COMMIT: 변경된 내용을 데이터베이스에 반영
- ROLLBACK: COMMIT 되지 않은 변경된 모든 내용을 취소하고 데이터베이스를 이전 상태로 되돌림
- SAVEPOINT: ROLLBACK 위치 지정
7. DML(Data Manipulation Language)
- 데이터를 실질적으로 관리하는 데 사용하는 언어
- INSERT: 새로운 튜플 삽입
- SELECT: 튜플 조회
- AS: 별칭 지정
- FROM: 검색 테이블 지정
- WHERE: 조건 지정
- ORDER BY: ASC(오름차순) / DESC(내림차순)
- DELETE: 튜플 삭제
- UPDATE: 튜플 변경
Keep
규칙적인 생활 패턴
매일 규칙적으로 아침 6시에 일어나, 7시 40분에 출발하여 8시 30분쯤에 도착하게 되었다. 하루를 기분 좋게 시작할 수 있어서, 계속 꾸준히 유지할 수 있었으면 좋겠다.
꾸준한 블로그 작성
매일 수업을 들으며 배운 내용을 블로그에 정리하며 다시 공부할 수 있었다. 내가 아는 내용은 더 잘 흡수하고, 내가 미처 몰랐던 내용은 정리를 통해 더 잘 이해할 수 있었다. 이를 다음날에 복습하며 내가 잊은 내용은 다시 확인할 수 있어서 꾸준히 블로그를 통해 내가 배운 내용을 정리할 예정이다.
토이 프로젝트 진행
프로젝트 관리 서비스를 주제로 토이 프로젝트를 진행하게 되었다. 다들 처음이라 미숙하지만 그래도 이번 기회를 통해서 많이 성장할 수 있을 것 같다.
Problem
일정 관리 문제
토이 프로젝트뿐만 아니라 다음 주에 있을 PCCP 시험과 다음 달에 있을 ADsP 시험을 준비해야 하는데 일정을 잘 관리해야 할 것이다. 잘못하면 이도저도 아니게 될 수 있을 것 같아서 걱정이 된다.
Git & Github
대학교를 다니는 동안 프로젝트를 진행하며 git을 사용하긴 했었지만, commit 관련하여 문제가 생긴 적이 있어서 이번에도 문제가 생길까 봐 걱정이 된다.
Try
일정 관리
하루에 내가 쓸 수 있는 시간이 어느 정도인지 파악하고, 이를 바탕으로 계획을 세워서 프로젝트와 시험 모두 열심히 해볼 예정이다.
Git & Github 추가 공부
아직 사전학습으로 받은 강의를 다 듣지 못해서 일단 강의를 먼저 들으며 사용법을 다시 익히도록 해야겠다. 이를 토이 프로젝트에서 적용해 보며 사용법을 더 잘 익힐 수 있을 것이다.
'SK네트웍스 Family AI캠프 10기 > Weekly 회고' 카테고리의 다른 글
| [플레이데이터 SK네트웍스 Family AI 캠프 10기] 6주차 회고 (0) | 2025.02.17 |
|---|---|
| [플레이데이터 SK네트웍스 Family AI 캠프 10기] 5주차 회고 (0) | 2025.02.09 |
| [플레이데이터 SK네트웍스 Family AI 캠프 10기] 4주차 회고 (0) | 2025.02.02 |
| [플레이데이터 SK네트웍스 Family AI 캠프 10기] 3주차 회고 (0) | 2025.01.26 |
| [플레이데이터 SK네트웍스 Family AI 캠프 10기] 1주차 회고 (0) | 2025.01.12 |