Notice
Recent Posts
Recent Comments
Link
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발자가 될래요

[플레이데이터 SK네트웍스 Family AI 캠프 23기] 1주차 회고 본문

SKN_Family_AI

[플레이데이터 SK네트웍스 Family AI 캠프 23기] 1주차 회고

Youcan 2025. 11. 30. 12:54

회고 방식


The four Fs

  • FACTS(사실, 객관) : 이번 일주일 동안 있었던 일, 내가 한 일
  • FEELINGS(느낌, 주관) : 나의 감정적인 반응, 느낌
  • FINDINGS(배운 것) : 그 상황으로부터 내가 배운 것, 얻은 것
  • FUTURE(미래) : 배운 것을 미래에는 어떻게 적용할 지

  1. FACTS
    Python을 이용하기 위한 기초적인 공부를 진행했다. 자료형이나 함수, 클래스, 모듈을 배우고 5일 중에 하루는 추가적으로 남아서 이것저것 공부를 했다. 
    이것 저것 해야할 일이 있어서 많이 피곤하고 개인적으로 시간이 많이 부족하다고 느낀 한 주 였다.

  2.  FEELINGS
    기존에 Python을 알고 있던 상황에서 초반부의 수업 내용이 크게 새롭거나 어렵게 느껴지지는 않았다.
    하지만 클래스를 공부할 때는 조금은 어라?하는 순간이 있긴 했었다. Python으로 알고리즘만 풀어오면서 클래스는 딱히 사용하지 않았기 때문에 그 시간은 집중하려고 노력했던 것 같다.
  3. FINDINGS
    정보처리기사를 공부하면서 JAVA의 클래스에 대해 어렴풋이 공부했던 것이 큰 도움이 되었던 것 같다. 생성자나, 인스턴스, 메서드 오버라이딩 같은 개념을 조금이라도 알고 클래스 단원을 들어가니, 이해가 금방 될 수 있었다.
    거기에 추가적으로 교재를 이용하여 클래스 부분을 공부하였다. 아래는 가비지 컬렉터, 프라이빗 변수, 게터와 세터에 대해 공부하면서 작성해 본 예시 코드이다.
더보기
더보기
# 가비지 컬렉터
class Test:
    def __init__(self, name):
        self.name = name
        print(f'{self.name}이 생성')

    def __del__(self):
        print(f'{self.name}을 파괴')

Test('A')
Test('B')
Test('C')


'''
A이 생성
A을 파괴
B이 생성
B을 파괴
C이 생성
'''
# 프라이빗 변수
import math

class Circle:
    def __init__(self, radius):
        self.__radius = radius
    
    def get_circumference(self):
        return 2 * math.pi * self.__radius

    def get_area(self):
        return math.pi * (self.__radius ** 2)


circle = Circle(10)
print('원의 둘레 : ', circle.get_circumference())
print('원의 넓이 : ', circle.get_area())
# print(circle.__radius)        # Attribute 애러 -> radius 변수는 외부에서 접근 할 수 없다.


'''
원의 둘레 :  62.83185307179586
원의 넓이 :  314.1592653589793
'''
# 게터와 세터

import math

class Circle:
    def __init__(self, radius):
        self.__radius = radius

    def get_circumference(self):
        return 2 * math.pi * self.__radius

    def get_area(self):
        return math.pi * (self.__radius ** 2)


    # 게터와 세터 선언
    def get_radius(self):
        return self.__radius

    def set_radius(self, value):
        self.__radius = value
    
circle = Circle(10)
print('둘레 : ', circle.get_circumference())
print('넓이 : ', circle.get_area())

print('__radius 간접 접근 : ', circle.get_radius()    )
print('__radius 간접 수정: ', circle.set_radius(15))

print('둘레 : ', circle.get_circumference())
print('넓이 : ', circle.get_area())

'''
둘레 :  62.83185307179586
넓이 :  314.1592653589793
__radius 간접 접근 :  10
__radius 간접 수정:  None
둘레 :  94.24777960769379
넓이 :  706.8583470577034
'''
class Parents:

    def __init__(self, name, age, address, pay):
        self.name = name
        self.age = age
        self.address = address
        self.pay = pay


    def salary(self):
        return self.pay

    def __str__(self):
        return f"{self.name}, {self.age}세, {self.address}, {self.pay}원"

class Child(Parents):
    def __init__(self, name, age, address, pay):
        super().__init__(name, age, address, pay)
        self.bonus = 0
        

    def salary(self, vehicle=None, day=None):
        if vehicle != None:
            if vehicle == 'car':
                self.bonus += 100_000
            
            elif vehicle == 'bicycle':
                self.bonus +=  50_000

            elif vehicle == 'train' or vehicle == 'subway':
                self.bonus += 20_000
            
            elif vehicle == 'airplane':
                self.bonus += 200_000

            else:
                self.bonus += 10_000
        
        if day == False:
            self.bonus += 100_000

        elif day == True:
            self.bonus += 30_000

        else:
            return super().salary()
        

        return super().salary() + self.bonus

    def __str__(self):
        return f"{self.name}, {self.age}세, {self.address}, {self.pay}원, 보너스 {self.bonus if self.bonus else 0}원 "


p1 = Parents('홍길동', 23, '서울시', 100_000)
p1.salary()
print(p1)
print()
p2 = Child('김판숙', 46, '인천시', 300_000)
p2.salary('car')
print(p2)
print()
p3 = Child('강두식', 35, '제주시', 200_000)
p3.salary('airplane', False)
print(p3)
print()
p4 = Child('장판석', 27, '대전시', 300_000)
p4.salary()
print(p4)

 

4. FUTURE

    클래스나 모듈 등을 구성해서 이후 프로젝트에 사용하게 될텐데, 지금 알고 있는 개념을 혼동하지 말고 제대로 사용할 수 있기를 바란다. 그리고 이제 매일 추가적으로 학습을 할 예정이다.