[해당 버젼은 new oracle cloud console 에서 작성되었습니다] 오라클 instance에 접속하기 위해서 임시 ip를 고정시켜야 합니다. 해당 과정을 처리하기 위해 instacne 항목으로 들어 간 후 네트워킹 항목으로 들어가 관리하는 인스턴스로 또 접속합니다 그 뒤 편집을 들어간 후 퍼블릭 없음으로 업데이트다시 예약 된 퍼블릭 새 예약된 ip 주소 생성을 통해서 고정 ip를 설정 가능합니다 이후 고정 ip를 바탕으로 putty나 ssh를 통해서 접속이 가능합니다
파이썬의 메모리 관리 방식은 참조 카운팅과 가비지 컬렉션 두 가지 주요 메커니즘 1. 참조 카운팅(Reference Counting):Python은 참조 카운팅 방식으로 메모리를 관리 객체가 몇 번 참조되는지 추척, 참조 카운트가 0이 되면 해당 객체를 메모리에서 자동으로 해제참조가 사라지거나 del로 객체를 삭제할 때 참조 카운트가 감소참조 카운트가 0이 되면 객체는 자동으로 메모리에서 해제 한계:Circular Refereces(순환 참조): 객체들이 서로를 참조하는 구조일 때, 참조 카운트만으로는 이를 해결x예를 들어 두 객체가 서로를 참조하는 경우, 각각의 참조 카운트 1, 실제로 객체들 사용x 메모리에서 해제되야 함 2. 가비지 컬렉션(GC)순환 참조 문제를 해결하고 사용되지 않는 객체를 주기적..
Python에서 다중 상속(Multiple Inheritance)은 한 클래스가 여러 클래스를 상속받을 수 있는 기능을 제공합니다. 다중 상속은 코드의 재사용성을 높이고 다양한 기능을 결합할 수 있는 유용한 방법이지만, 여러 부모 클래스에서 동일한 메서드를 정의할 때 메서드 해석 순서(Method Resolution Order, MRO)에 대한 이해가 중요합니다. MRO는 다중 상속에서 메서드나 속성을 호출할 때, 호출할 부모 클래스가 어떤 순서로 결정되는지를 정의합니다. 다중 상속 (Multiple Inheritance)다중 상속은 하나의 클래스가 여러 부모 클래스를 상속받는 것을 의미합니다. Python에서는 여러 부모 클래스를 상속받는 것이 가능합니다. 이때 중요한 점은 각 부모 클래스에서 동일한 ..
모두 클래스나 인스턴스의 메서드나 속성을 다룰 때 사용하는 데코레이터 @staticmethod (정적 메서드)목적: 클래스의 인스턴스나 클래스 자체와는 관계없이 독립적인 함수처럼 동작하는 메서드를 정의할 때 사용됩니다.특징:@staticmethod는 클래스나 인스턴스의 상태(속성이나 메서드)에 접근하지 않습니다.첫 번째 인자 self나 cls가 필요하지 않습니다.일반적으로 클래스에 관련된 독립적인 작업을 수행할 때 사용됩니다.@staticmethod는 클래스의 상태를 변경하지 않으며, 클래스의 인스턴스화 없이 호출할 수 있습니다.class MyClass: @staticmethod def greet(name): return f"Hello, {name}!"print(MyClass.gr..
둘 다 Python에서 객체를 생성할 때 호출되는 특별한 메서드입니다.__new__new는 새로운 객체를 생성하는 메서드클래스의 인스턴스가 생성되기 전 호출, 새로운 객체를 반환보통 immutable 객체에서 객체 생성 방식을 제어할 때 사용 됩니다.class MyClass: def __new__(cls, *args, **kwargs): print('New 객체 생성') instance = super().__new__(cls) return instance def __init__(self, value): print('Init 호출') self.value = value ojb = MyClass(1) # New 객체 생성# Init 호출 __n..
🟢 Python 기초 및 언어적 특징Python의 GIL(Global Interpreter Lock)이란 무엇이며, 어떤 영향을 미치는가?deepcopy와 shallow copy의 차이는?Python에서 is와 ==의 차이는?__new__와 __init__의 차이는?Python의 메모리 관리 방식(Garbage Collection 포함)을 설명하라.@staticmethod, @classmethod, @property의 차이는?Python의 데이터 구조(리스트, 튜플, 딕셔너리, 셋)의 내부 동작 방식은?Python의 언패킹(*args, **kwargs)과 활용 예시는?Python의 다중 상속과 MRO(Method Resolution Order)의 동작 방식은?Python에서 예외 처리의 원리와 rais..
본 블로그 글은 Effective Python의 글을 참조하였습니다. 파이썬은 리스트[시작:끝:증가값] 으로 일정한 간격을 두고 슬라이싱을 할 수 있는 특별한 구문을 제공하는데 이를 stride라고 한다.문자열을 뒤집는 -1 같은 경우가 유명한데 이미 알고 있으니 -2의 경우도 동작하는 지 확인해본다x = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']x[::2] # ['a', 'c', 'e', 'g']x[::-2] # ['h', 'f', 'd', 'b'] 여기서 -2::-2, -2:2:-2, 2:2:-2에는 어떠한 차이가 있는지 궁금하다x[2::2] #['c', 'e', 'g']x[-2::-2] #['g', 'e', 'c', 'a']x[-2:2:-2] #['g', 'e']x[2..
왈러스 연산자 (:=) - Python 3.8의 새로운 할당 표현식Python 3.8에서 도입된 왈러스 연산자 (:=)는 할당 표현식(assignment expression) 연산자로, 변수에 값을 할당하면서 그 값을 동시에 사용할 수 있게 해주는 강력한 기능입니다.이 연산자는 특히 조건문에서 유용하며, 중복된 코드 작성 없이 더 간결하게 만들 수 있습니다. 아래 예시를 통해 살펴보겠습니다.기존 코드 (변수 할당 강조)기존의 코드에서는 변수를 할당하고 그 값을 사용하는 부분이 분리되어 있었고, 코드가 약간 길어졌습니다:count = fresh_fruit.get('lemon', 0)if count: make_lemonade(count)else: out_of_stock()단점: count를 먼저 ..