Development

문제부모 클래스를 상속받은 자식 클래스에서 부모의 메소드를 실행하고자 할 때.해결super()를 사용하여 쉽게 부모 클래스의 함수를 실행하자. 코드좋지 않은 예시. 상속 계층이 깊어질 때, 다중 상속일 경우일 때, 직계 부모 클래스를 지정하여 실행하면 불필요하게 메소드가 실행되는 것을 볼 수 있다. # Tricky initialization problem involving multiple inheritance.# Does NOT use super()class Base: def __init__(self): print('Base.__init__')class A(Base): def __init__(self): Base.__init__(self) print('A...
문제 함수에 인자가 너무 많을 때, 특정 파라미터를 고정하고 함수를 실행시켜야 할 때. 해결functions의 partial()를 써보자.정의된 함수에 인자를 고정한 새로운 함수를 선언하는 방법이다. 코드Sourcepartial 함수는 사용자가 정의한 인자들을 미리 받아놓는다newfunc가 선언될 때 *fargs와 **newkeywords가 override되어 newfunc를 반환한다.이때 newfunc는 callable한 객체를 리턴한다.def partial(func, /, *args, **keywords): # *args, **keywords: 미리 설정해 놓는 파라미터 def newfunc(*fargs, **fkeywords): # *fargs, **fkeywords: 나중에 설정할 파라미터..
pre-commit은 로컬에서 리모트 브랜치에 커밋을 할 때,특정한 룰에 의해 코드를 포맷팅하거나 기타 작업을 자동으로 적용시켜주는 기능이다.  예를 들어 내가 커밋한 코드가 black format을 따른다고 할 때,해당 포맷을 지키지 않은 채로 커밋을 하게되면 자동으로 black format을 적용시켜준다.# AS-IS : 들여쓰기와 공백이 지켜지지 않은 내 코드def add(a, b) :return a+b# TO-BE : pre-commit을 통해 black 스타일을 적용한 코드def add(a, b): return a + b> https://black.readthedocs.io/en/stable/ 가장 간단하게는 Extension을 써서 저장 시 마다 파일에 black format을 자동 적용하는..
디버그는 복잡한 개념이 아니다. 우리가 생각 없이 짠 코드를 교정해주는 작업일 뿐이다. 5를 0으로 나누거나, 변수를 잘못 할당하게 되면 다음 코드로 실행되지 않는다. 이러한 모순을 제거하는 것이 디버깅이다. 총 두 가지 방법을 말할건데, IDE 환경과, 노트북 환경에서 디버깅 방법을 보겠다. 디버깅을 아예 모르는 사람들이 보면 좋을 정도의 포스팅이다. VSCODE IDE 중 가장 대중적인 VSCODE를 기준으로 설명하겠다. 일단 일부러 에러를 내보는 코드를 만들어보자. 지금은 한 눈에 에러가 보이겠지만, 코드가 천줄 만줄이 넘어가면 이 에러가 어디에서부터 시작했는지, 일일이 보기가 까다롭다. 이렇게 파이썬 파일을 적어놓고 우리가 검사해보고 싶은 breakpoint를 지정하면 된다. breakpoint는..
LV.4 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 문제 CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로..
LV.3 헤비 유저가 소유한 장소문제이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요.해설추출해야할 것 id, name, host_id조건 공간을 2개 이상 소유한 호스트 건정렬 X 1. host_id로 GROUP BY HAVING으로 2건 이상인 건들만 가져온다2. 해당 절에서 host_id만 추출하여 서브쿼리로 만든다3. 메인쿼리에서 host_id에 해당하는 건들만 가져온다 이를 구현한 코드는 아래와 같다SELECT * FROM PlacesWHERE host_id in (SELECT host_id FROM PlacesGROUP BY host_idHAVING COUNT(id) >= 2) Goodht..
LV.2 중성화 여부 파악하기 문제 보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요. 해설 추출해야할 것 animal_id, name, 중성화 여부 조건 "Neutered"나 Spayed가 포함된 중성화 개체는 "O"표시 정렬 animal_id ASC 1. SELECT 절에 CASE WHEN 절을 쓰면된다 2. 조건을 걸 때 문자열 일치가 아닌 포함 여부이기 때문에 LIKE "%string%"을 쓰는 것을 잊지말자 3. animal..
LV.4 우유와 요거트가 담긴 장바구니 문제 데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다. 해설 추출해야할 것 cart_id 조건 한 카트에 우유와 요거트가 동시에 담긴 건 정렬 cart_id ASC 1. 예외를 먼저 생각해보자. 장바구니에 정직하게 Milk와 Yogurt가 하나씩 담겨있진 않을 것이다. - Milk, Milk, Yogurt의 조합이 충분히 가능하다 2. 어쨌든 우유와 요거트가 몇 건이든 담겨있기만 하면되니까 카트별로 중복 아이템 제거를 해도 문제가 없다 3. DISTINCT cart_..
bat_huni
'Development' 카테고리의 글 목록