-
[Python] 파이썬 예외 처리
UNIT 38 예외 처리 사용하기 def ten_div(x): y = 10 / x print(f"10 / {x} = {y}") return ten_div(2) # 10 / 2 = 5.0 ten_div(0) # 10 / x 에서 Error 발생하여 스크립트 실행이 중단되고 print 문 실행되지 않음 # ZeroDivisionError: division by zero 예외란 코드를 실행하는 중에 발생한 에러를 뜻합니다. 예외가 발생하면 스크립트의 실행이 중단됩니다. 예외가 발생했을 때도 스크립트 실행을 중단하지 않고 계속 실행하게 해주는 예외 처리 방법에 대해 알아... Read More
-
[Algorithm] 조합
문제 : 리트코드 조합 전체 수 n을 입력받아 k개의 조합을 리턴 Ex. Input: n = 4, k = 2 Output: [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]] dfs 이용한 풀이 첫 시도 def combineDirty(self, n: int, k: int) -> List[List[int]]: answer = [] def dfs(elements, rest): for r in rest : elements.append(r) if len(elements) == k : answ... Read More
-
[Algorithm] 조합의 합
문제: 리트코드 조합의 합 숫자 집합 candidates를 조합하여 합이 target이 되는 원소를 나열. 각 원소는 중복으로 나열 가능함. Ex. Input: candidates = [2,3,6,7], target = 7 Output: [[2,2,3],[7]] dfs 이용한 풀이 첫 시도 def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]: answer=[] def dfs(elements:List[int], start:int) : if sum(elements) == target ... Read More
-
[Python] 파이썬 클래스 상속
UNIT 36 클래스 상속하기 클래스에서 상속(inheritance)이란, 기반 클래스(Parent Class, Super class)의 내용(속성과 메소드)을 파생 클래스(Child class, sub class)에게 물려주는 것입니다. 기본적인 사용법은 아래와 같습니다. class ParentClass : pass class ChildClass(ParentClass): pass 상속 관계 확인하기 클래스의 상속 관계를 확인하고 싶을 땐, issubclass 함수를 사용합니다. issubclass(ChildClass, ParentClass) # True 36.3 기반 클래... Read More
-
[Python] 파이썬 클래스 속성과 정적, 클래스 메서드
UNIT35 클래스 속성과 정적, 클래스 메서드 35.1 클래스 속성과 인스턴스 속성 클래스 속성은 클래스 안에 바로 할당하는 데이터입니다. 인스턴스를 통해(self.속성 으로) 접근해야하는 인스턴스 속성과 달리 클래스는 클래스 이름으로 바로 접근 가능합니다. 물론 클래스로 생성한 인스턴스는 클래스의 모든 속성을 가지고 있으므로 클래스 속성은 인스턴스를 통해서도 접근가능합니다. 따라서 클래스 속성은 여러 객체, 즉 클래스로 생성한 모든 인스턴스가 공유한다는 것을 유의해야합니다. 예시를 보며 확인해봅시다. class Cls : attr = [] def put_stuff(self, stuff): ... Read More
-
[Python] 파이썬 클래스 사용하기
UNIT34 클래스 사용하기 클래스 : 객체를 표현하기 위한 문법 클래스 속성 : 클래스 내의 데이터 클래스 메서드 : 클래스 내의 함수 34.3 비공개 속성 사용하기 클래스의 비공개 속성은 클래스 안에서만 사용할 수 있는 클래스 속성입니다. __속성 과 같이 이름이 밑줄 두 개로 시작해야합니다. class Person : def __init__(self, name, wallet): slef.name = name # __wallet : 비공개 속성 self.__wallet = wallet def pay(self, amount): if amount > self._... Read More
-
[Python] 파이썬 클로저
UNIT33 클로저 변수의 사용범위 & 함수를 클로저 형태로 만드는 방법을 알아봅시다. 전역 변수(global) : 스크립트 전체에서 접근할 수 있는 변수, 전역 변수에 접근할 수 있는 범위를 전역 범위라고 한다. 지역 변수(local) : 함수 내부에서 만든 변수, 변수를 만든 함수 안에서만 접근할 수 있다. 지역 변수에 접근할 수 있는 범위를 지역 범위라고 한다. 함수 안에서 전역 변수 변경하기 x = 10 def foo(): x = 20 print(x) foo() # 20 : foo의 지역 변수 출력 print(x) # 10 :... Read More
-
[Database] Connection Pool이란 무엇일까?
Connection Pool 이란? 웹 애플리케이션 서버(WAS)가 실행되면서 DB와 미리 connection(연결)을 해놓은 객체들을 pool에 저장해두었다가 클라이언트 요청이 오면 connection을 빌려주고, 처리가 끝나면 다시 connection을 반납받아 pool에 저장하는 방식이다. Connection 객체를 생성하는 과정을 한 번 살펴보자! 애플리케이션에서 DB 드라이버를 통해 커넥션을 조회한다. DB 드라이버는 DB와 TCP/IP 커넥션을 연결한다. (3 way handshake와 같은 네트워크 연결 동작 발생) DB 드라이버는 TCP/IP 커넥션이 연결되면 아이디와 패스워드, 기타 ... Read More
-
[Python] 가변형, 불변형 객체에 따른 동작 방식
Call by value ? Call by reference ? 파이썬의 Call by object reference에 대해 알아보자. 파이썬 Tutorial 에는 파이썬은 Call by object reference하게 동작한다고 소개한다. Call by object reference 는 무엇일까? 먼저 Call by value, Call by reference에 대해 간단히 알아보자. Call by value는 인자로 받은 값을 복사하여 처리하고 Call by reference는 인자로 받은 값의 주소를 참조하여 값에 영양을 주는 것으로 처리하는 방식을 말한다. 값을 복사해서 처리하는지, 직접 참조를 하는지의... Read More
-
[DRF] Django Rest Framework란?
Django안에서 Restful API 서버를 쉽게 구축할 수 있도록 도와주는 오픈소스 라이브러리 (REST: HTTP의 URL과 HTTP method(GET, POST, PUT, DELETE)를 사용하여 API 사용 가독성을 높인 구조화된 시스템 아키텍쳐(프레임워크)) 스마트폰의 탄생 이전 많은 IT 기업들은 웹 페이지를 사용자에게 렌더하기 위한 웹 서버만을 필요로 했다. 그 웹 서버에서 DB 서버의 데이터를 읽어오거나(GET), DB 서버에 데이터를 저장, 수정, 삭제하는(POST, PUT, DELETE) 기능을 모두 담당했다. 하지만 스마트폰 출시 이후 어플리케이션의 등장으로 더 이상 웹으로만은 서비... Read More