【 To-do list 】
- 파이썬 코딩 테스트
【 In progress 】
- 방통대 프라임칼리지 AI학과 기말고사 대비
- 커널 아카데미 AI 부트캠프 1주차 / 32주
- NIPA google 딥러닝 3주차 / 8주
【 Done 】
- 방통대 프라임 칼리지 AI학과 12강 대학기초 수학 삼각함수(2) 강의 80%
- 방통대 프라임 칼리지 AI학과 12강 소프트웨어 개발방법론 Aglie 개발방법론(1) 강의 80%
- 방통대 프라임 칼리지 AI학과 12강 파이썬 다양한 자료구조 강의 80%
- 커널 아카데미 AI 부트캠프 파이썬을 활용한 정형데이터 분석과 시각화
- NIPA google 딥러닝 자연어 처리 Seq2Seq, 어텐션
【 Reflect 】
요즘은 7월 초까지 참여해야 할 일들이 많다. 특히 방통대는 곧 기말고사 기간이 다가온다. 그 전에 모든 강의를 수강 완료하고 과제도 마무리하자. 미루지 말고, 지금 할 수 있을 때 끝내자.
앞으로 나에게 주어진 시간은 약 7개월. 이 시간을 어떻게 보내느냐에 따라 결과는 완전히 달라질 것이다. 나는 지금 압축성장이 필요한 시기다. 하지만 두렵지 않다. 이미 실무에서 어느 정도 경험을 쌓았고, 그동안 꾸준히 공부해온 덕분에 기본적인 배경지식은 갖추고 있다고 생각한다.
물론 수학이나 통계, 확률 같은 분야는 새롭게 배워야 하는 부분이지만, 지금처럼 집중해서 공부한다면 충분히 따라갈 수 있을 것이다. 나는 가능성을 믿는다. 내가 할 수 있다는 것도 알고 있다.
7월부터는 상대적으로 시간이 더 확보될 예정이니, 그 시점부터는 취업을 위한 코딩테스트 준비와 포트폴리오 구성에 본격적으로 집중하자. 지금은 기초를 다지는 시기, 그다음을 위한 도약을 준비하는 시기다.
나 자신을 믿고, 흔들림 없이 계속 나아가자.
대학기초 수학 삼각함수(2)
1. 삼각함수 간의 관계
- 삼각함수 sinθ,cosθ,tanθ\sin\theta, \cos\theta, \tan\theta는 단위원 또는 원의 방정식 (x−a)2+(y−b)2=r2(x - a)^2 + (y - b)^2 = r^2 위의 점을 통해 정의할 수 있다.
- 역수 관계:
- cscθ=1sinθ\csc\theta = \frac{1}{\sin\theta}
- secθ=1cosθ\sec\theta = \frac{1}{\cos\theta}
- cotθ=1tanθ\cot\theta = \frac{1}{\tan\theta}
- 제곱관계:
- sin2θ+cos2θ=1\sin^2\theta + \cos^2\theta = 1
- 1+tan2θ=sec2θ1 + \tan^2\theta = \sec^2\theta
- 1+cot2θ=csc2θ1 + \cot^2\theta = \csc^2\theta
2. 삼각함수의 공식
- 덧셈정리: 각의 합 또는 차에 대한 삼각함수 식
예: sin(A±B)=sinAcosB±cosAsinB\sin(A \pm B) = \sin A \cos B \pm \cos A \sin B - 합성: asinx+bcosxa\sin x + b\cos x 형태를 하나의 삼각함수로 표현
- 배각공식: 각의 두 배에 대한 삼각함수 공식
- 반각공식: 각의 절반에 대한 삼각함수 공식
- 합과 곱의 변환: 덧셈/뺄셈을 곱으로, 곱을 덧셈/뺄셈으로 변환
3. 삼각법칙
- 사인 법칙:asinA=bsinB=csinC=2R\frac{a}{\sin A} = \frac{b}{\sin B} = \frac{c}{\sin C} = 2R외접원의 반지름 RR을 포함한 각과 변의 비례 관계
- 코사인 법칙:
- 제1법칙: c2=a2+b2−2abcosCc^2 = a^2 + b^2 - 2ab\cos C
- 제2법칙: 각을 구하는 형태로 변형 가능
주요 개념 정리
덧셈정리 | 일반 각을 특수각의 합/차로 표현하여 계산하는 공식 |
삼각함수의 합성 | 두 삼각함수의 합을 하나의 삼각함수로 표현하는 방식 |
소프트웨어 개발방법론 Aglie 개발방법론(1)
1. Agile 개발 방법론의 개요
- Agile(애자일)은 전체 계획을 미리 수립하지 않고, 일정한 주기를 통해 점진적이고 반복적으로 개발하는 소프트웨어 개발 방법론이다.
- 지속적인 검토와 피드백을 통해 요구사항을 유연하게 반영한다.
2. Agile 선언문의 철학
- 최우선 가치는 가치 있는 소프트웨어를 빠르게, 그리고 지속적으로 제공하여 고객을 만족시키는 것이다.
- 이를 위해 자주 산출물을 공유하고, 피드백을 반영하는 과정을 강조한다.
3. Scrum 방법론의 이해
- Scrum은 Agile의 대표적인 실행 방법으로, 반복적이고 점진적인 프로젝트 관리 프레임워크이다.
- 주요 구성 요소:
- 제품 백로그(Product Backlog): 사용자 관점에서 정의된 요구사항(사용자 스토리)들의 목록
- 스프린트 계획(Sprint Planning)
- 스프린트(Sprint): 일정 기간 동안 실행되는 개발 단위
- 데일리 스크럼(Daily Scrum): 매일 진행 상황을 공유하는 짧은 회의
- 회고(Retrospective): 스프린트 종료 후 개선점을 논의하는 회의
4. 제품 백로그 작성
- 제품 백로그는 개발할 제품의 요구사항을 사용자 스토리 형태로 정리한 목록이다.
- 사용자 스토리는 사용자 입장에서 제품이 어떻게 작동해야 하는지를 기술한 항목이다.
학습 목표 정리
- Agile 방법론과 그 철학을 이해한다.
- Scrum 방법론의 개념과 구성 요소를 익힌다.
- 제품 백로그의 개념과 작성 방법을 이해한다.
파이썬 다양한 자료구조
1. 자료구조의 개요
- 자료구조(Data Structure)란 데이터를 효율적으로 저장하고 활용할 수 있도록 구성한 구조이다.
- 파이썬에서는 리스트, 투플, 세트, 딕셔너리와 같은 다양한 내장 자료구조를 제공한다.
- 자료구조는 데이터의 성격과 처리 목적에 맞게 선택하여 사용해야 한다.
2. 파이썬의 주요 자료구조
투플 (tuple) | 고정된 시퀀스 타입 객체 | 생성 후 변경 불가 (불변), 리스트보다 메모리 효율적 |
세트 (set) | 중복 없는 집합형 객체 | 순서 없음, 중복 허용하지 않음, 합·교·차·대칭차 연산 가능 |
딕셔너리 (dictionary) | 키-값 쌍 저장용 객체 | 키로 값 접근, 순서 보장(Python 3.7 이상) |
3. 각 자료구조의 고유 기능
- 투플: 변경 불가능한 리스트. 안정성이 필요한 고정된 데이터에 적합.
- 세트:
- 중복 제거에 유용
- union(), intersection(), difference(), symmetric_difference() 등 집합 연산 가능
- 딕셔너리:
- 키를 통해 빠르게 값 조회 가능
- JSON 형태의 데이터 처리에 적합
4. 공통 기능
- for 루프를 통해 모든 자료구조의 원소를 순회할 수 있음
학습 목표 정리
- 자료구조의 개념을 이해한다.
- 파이썬에서 지원하는 자료구조를 구분할 수 있다.
- 각 자료구조의 특징과 용도에 맞게 사용할 수 있다.
파이썬을 활용한 정형데이터 분석과 시각화
1. 정형 데이터 분석 개요
- 정형 데이터는 표 형식(행/열)으로 구성된 구조화된 데이터.
- 공공 데이터 포털, 통계청, Kaggle, AIHub 등 다양한 소스에서 수집 가능.
- 데이터 전처리 → 분석 → 시각화 → 인사이트 도출의 순으로 진행됨.
2. 필수 라이브러리
- pandas: 데이터 조작 및 분석용 핵심 라이브러리 (DataFrame 사용)
- matplotlib: 기초 시각화 도구
- seaborn: 통계 기반 시각화 도구
- numpy: 수치 계산용
- scipy: 과학 계산 및 통계 기능 제공
3. 데이터 전처리
- 결측치 처리, 이상치 탐지, 형변환, 데이터 통합 등이 포함됨.
- isnull(), dropna(), fillna() 등을 활용해 결측치 처리
- 문자열 처리: .str 속성을 사용한 전처리
4. EDA (Exploratory Data Analysis)
- describe(), info(), value_counts() 등을 통해 데이터 분포 파악
- 시각화를 통해 패턴, 이상치, 상관관계 확인
- 히스토그램, 박스플롯, 산점도, 막대그래프 등 사용
5. 데이터 시각화
- matplotlib.pyplot: 기초 그래프 구현 (plot, bar, scatter, hist 등)
- seaborn: 고급 그래프 (heatmap, pairplot, catplot 등)
- 시각화는 데이터 이해 및 인사이트 전달에 매우 중요함
6. 실습 예시 및 출처
- 다양한 오픈데이터 출처 제공 (공공 데이터 포털, KOSIS, Kaggle 등)
- GitHub 및 공식 문서 활용 권장
1. Seq2Seq (Sequence-to-Sequence) 모델
개념
- 시퀀스를 입력으로 받아 다른 시퀀스로 출력하는 구조 (예: 번역, 요약)
- 일반적으로 RNN 또는 LSTM 기반 인코더-디코더 구조 사용
- 구성 요소:
- 인코더 (Encoder): 입력 문장을 벡터로 압축 (컨텍스트 벡터 생성)
- 디코더 (Decoder): 압축된 벡터를 기반으로 출력 시퀀스를 생성
작동 방식
- 인코더는 입력 문장의 모든 정보를 하나의 벡터(=컨텍스트 벡터)로 요약
- 디코더는 이 벡터를 사용해 문장을 생성
- 실제 구현에는 LSTM 계열 사용, 입력 토큰화와 임베딩, return_state=True, return_sequences=True 등 설정 필요
한계점
- 긴 문장에서는 정보 손실이 발생할 수 있음
- 단일 벡터로 모든 입력 정보를 압축하므로 성능 저하가 발생하기 쉬움
2. Attention (어텐션) 메커니즘
도입 배경
- Seq2Seq 모델의 성능 한계를 극복하기 위해 고안
- 모든 입력 단어를 동일하게 보지 않고 더 중요한 단어에 집중하도록 설계
핵심 아이디어
- 디코더가 출력을 생성할 때, 인코더의 모든 출력에 주목함
- Query(Q), Key(K), Value(V) 벡터를 사용하여 중요도를 계산
동작 방식
- 디코더의 현재 상태 (Query)와 인코더의 출력들 (Key) 간 유사도(내적) 계산
- Softmax를 통해 어텐션 가중치 생성 (Attention Distribution)
- 가중치를 인코더 출력들(Value)에 곱해 어텐션 벡터(Weighted Sum) 생성
- 어텐션 벡터를 디코더의 현재 은닉 상태와 결합해 출력 생성
효과
- 각 출력 단어를 생성할 때, 입력 문장의 어떤 단어에 집중할지 학습함
- 긴 문장 처리에 효과적
- 번역, 요약, 질의응답 등 다양한 NLP 작업에서 성능 향상
'개발💻 > 개발일지' 카테고리의 다른 글
[개발 일지] 25. 06. 02 Mon (0) | 2025.06.03 |
---|---|
[개발 일지] 25. 05. 30 Fri (2) | 2025.06.01 |
[개발 일지] 25. 05. 28 Wed (0) | 2025.05.29 |
[개발 일지] 25. 05. 27 Tue (0) | 2025.05.28 |
[개발 일지] 25. 05. 26 Mon (1) | 2025.05.27 |