Re:제로부터 시작하는 갓생
[TIL.v1] 25/03/26 본문
< TIL 반드시 들어가야 할 내용 >
1. 문제: 어떤 문제가 있었는지
2. 시도: 내가 시도해 본 것들 (자세히 쓰기)
3. 해결: 어떻게 해결했는지
4. 배움: 뭘 새롭게 알았는지 (자세히 쓰기)

???: 자신 있게 Enter 눌러~~~
Me: 후들후들....
# 1.
출근한 뒤 오늘 하루를 돌아보자
* 오전
어제 코드 수정사항 재확인-> API동작여부 확인하며 코드 수정-> 결과리포트 파일 생성을 위한 코드 로직 짜기
* 오후
결과리포트 파일 생성을 위한 코드 구현, 테스트, 결과물 확인-> 스트림릿 코드 로직파악 및 구현->
Gilbert님과 Github공부 및 실습 잠깐-> streamlit 마저 진행하다가 저녁약속을 향해 ㅌㅌ....
계획했지만 오늘 하지 못한 일
API 코드 다시 점검 -> 일단 완료
API 동작 구현 및 응답결과 확인 -> API 응답 200 OK 완료!
결과내용 파일 다운로드를 위해 기능 구현 -> 어찌 되었든 결과파일 생성완료
가상환경 및 터미널 -> 친해지려고 조금씩 매일 가까이 가는 중...
github 초기세팅 마저하기 -> 기본 구조 및 관리 부분 배우고 실습 진행함
내일 해야 할 일
서버 이전 작업 이벤트 발생으로 모든 프로젝트가 2주씩 미뤄진 상태...
- 일단 그대로 업무 진행이 가능하다면..?
streamlit 코드 구현, API 연동을 위한 코드작업, 테스트 및 결과파일 확인
추가로 확인할 사항 있는지 재검토
팀내부 검토요청 -> 유관부서 최종 검토요청 -> 수정내용 반영 or 프로젝트1 마무리
아마 열심히 쉬지 않고 하면... 연동코드작업까지는 할 수 있지 않을까?
- 서버 이전 작업에 조인된다면..?
기존 업무 전면 홀드 -> 관련 업무 작업 진행..
이번 주에 확인해야 할 사항
3/4 | * 디지털 마케팅이란 무엇인가? * 무슨 직종인가? * 광고 마케팅이란 무엇인가? * 어떤 종류가 있는가? * 메타 API |
3/5 | * 크롤링 공부 * 유튜브 playwright python 공부, 구글링 등 |
3/10 | * API 읽는 법과 필요내용 찾는 법 |
3/14 | * API(REST, RESTFUL, FAST) |
3/17 | * Python 공부 꾸준히.... * 솔루션 개발요청이 들어올 때 어떤 문서를 보고 지표를 어떻게 써야하는지 생각 |
Me like 백엔드 개발자가 되....
배운 점
어제 공부하려 했던 개념 오늘 봤다...
* Python에서 self의 역할
- 정의: 클래스 내 메서드에서 현재 인스턴스를 참조하기 위해 사용하는 키워드
- 설명: 메서드가 호출된 객체 의미. 클래스 내부에서 인스턴스 변수와 메서드에 접근. 각 객체가 독립적인 데이터 유지하도록 도움
- 예시
class MyClass:
def __init__(self, name):
self.name = name # 인스턴스 변수 선언
def greet(self):
print(f"안녕하세요, {self.name}님!") # 인스턴스 변수 접근
# 객체 생성 및 사용
obj = MyClass("Joy")
obj.greet()
* class 함수 복습
- 정의: 클래스에 속한 메서드. 인스턴스와 클래스 메서드로 구분
- 특징
1) 인스턴스 메서드: self 사용해 호출한 객체의 데이터를 처리
2) 클래스 메서드: @classmethod와 cls 사용. 클래스 자체를 처리
3) 정적 메서드: @staticmethod 사용. 클래스나 인스턴스와 별개로 독립적으로 실행됨
- 예시
class Example:
counter = 0 # 클래스 변수
def __init__(self, name):
self.name = name # 인스턴스 변수
@classmethod
def increment_counter(cls):
cls.counter += 1 # 클래스 변수 증가
@staticmethod
def display_message():
print("정적 메서드에서 출력!") # 독립적 실행
# 클래스 메서드 호출
Example.increment_counter()
print(Example.counter)
# 정적 메서드 호출
Example.display_message()
* 클래스와 객체지향 프로그래밍(OOP=Object-Oriented Programming)
- 정의: 데이터를 중심으로 처리하는 메서드를 객체(object) 단위로 묶어 설계하는 프로그래밍 방식
- 개념
1) 객체(Object): 클래스를 기반으로 제작된 실제 데이터의 실체
2) 클래스(Class): 객체를 생성하기 위한 틀 or 설계도. 속성(데이터)과 메서드(작업)가 포함
3) 캡슐화(Encapsulation): 데이터와 메서드를 클래스 내부에서 보호하기위해 접근제한 or 메서드 통해 관리
4) 상속(Inheritance): 기존 클래스의 속성과 메서드를 물려받아 확장 or 수정하는 기능
5) 다형성(Polymorphism): 동일한 이름의 메서드가 서로 다른 클래스에서 다양한 형태로 작동
6) 추상화(Abstraction): 필요한 정보만 제공하고 세부 사항은 숨기는 기법
- 특징
1) 데이터와 메서드를 객체 단위로 묶어서 관리
2) 코드 재사용성이 높아지고 유지보수가 쉬워짐
3) 현실세계의 사물과 개념을 코드로 쉽게 모델링 가능
- 예시
class Animal: # 부모 클래스
def __init__(self, name):
self.name = name # 인스턴스 변수
def speak(self):
print("소리를 냅니다.")
class Dog(Animal): # 자식 클래스
def speak(self):
print(f"{self.name}가 멍멍 짖습니다.")
# 객체 생성 및 메서드 호출
dog = Dog("바둑이")
dog.speak()
# OOP 예시
# Car 클래스 정의: 자동차 브랜드와 모델을 속성으로 가짐
class Car:
def __init__(self, brand, model): #__init__: 객체 생성시 데이터 초기화에 사용
self.brand = brand # 브랜드 초기화
self.model = model # 모델 초기화
def start_engine(self):
print(f"{self.brand} {self.model}의 엔진이 켜졌습니다.")
# 객체 생성
my_car = Car("Hyundai", "Sonata") # 현대 소나타 객체 생성
my_car.start_engine() # start_engine 메서드 호출: 자동차 엔진 시작 기능 구현
* __init__ 의 역할
- 정의: 객체 생성 시 호출되는 초기화 메서드
- 설명: 객체의 초기상태를 설정하고 필요한 데이터를 전달받아 저장
- 특징: 중복제거, 선언. 사용 시 데이터 쉽게 초기화하고 관리 가능
- 예시
class Product:
def __init__(self, name, price):
self.name = name # 초기화
self.price = price
# 인스턴스 생성
item = Product("Laptop", 1500)
print(item.name, item.price)
* adsinfor
- 특징
1) print() 리스트 형식으로 출력됨
2) 리스트의 주요 메서드(append(), extend(), pop(), sort()등)를 활용해 효율적인 데이터 관리
- 예시
adsinfor = ["광고A", "광고B", "광고C"] # 리스트 형식 데이터
print(adsinfor)
# 출력결과
['광고A', '광고B', '광고C']
* sep = "_" 의미
- 정의: sep은 print() 함수에서 출력 요소 사이의 구분자를 설정하는 데 사용
- 특징: 다양한 구분자(ex. sep=", ", sep=" \ n"를 사용해 출력 형태 조정 가능
- 예시
print("Python", "Programming", "Language", sep="_")
# 출력결과
Python_Programming_Language
* Python 데이터 타입 변환
- 정의: 변수의 데이터 타입을 다른타입으로 변경하는 작업
- 설명: 숫자, 문자열, 리스트[], 튜플() 등 다양한 타입간 변환 가능
- 특징
1) 암시적 변환: Python이 자동으로 데이터 타입 변경
2) 명시적 변환: 개발자가 직접 데이터 타입 변경(ex. int(), str() 등)
- 예시
# 명시적 변환
num = 100 # 정수형
num_str = str(num) # 정수형 데이터를 문자열로 변환
print(type(num_str)) # 출력: <class 'str'>
# 암시적 변환
result = 10 + 10.5 # 정수+실수=실수, Python이 자동으로 실수형으로 암시적 변환
print(type(result)) # 출력: <class 'float'>
* 가상환경(enve)에서 데이터 가져올 때? 문자열(string type) 처리
- 데이터 읽기와 문자열 처리: 파일에서 데이터를 읽거나 API호출 시 데이터를 받을 때 유용
- 예시
# 가상환경에서 CSV 파일 읽기
import pandas as pd
# 문자열 데이터가 포함된 CSV 파일 읽기
df = pd.read_csv("data.csv", dtype=str) # 모든 데이터를 문자열로 처리
print(df.head())
오늘 메모했던 내용엔 뭐가 있었냐면?
* MME 타입 구조
-> 내일 다시 알아보자...
* 터미널 가상환경 사용 참고사항
- 정의: 프로젝트마다 독립적인 Python환경을 제공하는 도구
- 설명: 가상환경을 통해 프로젝트 간 라이브러리 충돌방지. 특정 프로젝트 요구사항에 맞는 환경 유지 가능
- 특징: 독립적으로 라이브러리와 패키지를 관리. 환경 간 간섭 없이 작업 가능
- 설치 및 사용
# 가상환경 생성 -> myenv라는 이름의 가상환경 생성
python -m venv myenv
# 가상환경 활성화 (Windows)
myenv\Scripts\activate
# 가상환경 비활성화
deactivate
# 패키지 설치
pip install pandas
* Github 환경설정 및 작동순서 (완전 기초)
# 터미널 기반 명령어
# 1. Git 설치 확인
git --version
# 2. 작업파일 올리기
git add 파일명
# 3. m: 메세지 명령어 의미
git commit -m
# 4. 코드 수정전
git push origin main
git push origin dev
# 5. 코드 수정후
git pull origin main
# b: 생성을 의미
git checkout -b dev
# 생성여부 확인방법
git branch
# main으로 이동
git check out main
# 코드 업데이트 발생시
git status 상태확인
# 파일 추가
git add 파일명
기타
* 처음으로 오전 8시 반 전에 출근했다. 아침이 길고 퇴근이 빨리 와서 오히려 좋아
평소보다 더 피곤한 것만 빼면...
* 점심 간만에 짬뽕 캬.... 요즘 너무 잘 먹고 다녀서... 살이 다시 올랐는데...
여름오기 전에 바짝 다시 체중조절을 해볼까나...(눈물)

* 저녁 랑&피치와 회와 파&김치전! 누가 봐도 안주메뉴였지만 음료수와 함껳ㅎㅎ그리고 마지막으로 닭꼬치까지 냠


'Daily > TIL' 카테고리의 다른 글
[TIL.v1] 25/03/31 (0) | 2025.04.01 |
---|---|
[TIL.v1] 25/03/28 (0) | 2025.03.29 |
[TIL.v1] 25/03/25 (1) | 2025.03.25 |
[TIL.v1] 25/03/24 (0) | 2025.03.24 |
[TIL.v1] 25/03/22~23 (0) | 2025.03.22 |