CS

    [fluent python]함수 데코레이터와 클로저

    데코레이터 데코레이터란? 파이썬 데코레이터 decorator라는 단어처럼 기존의 코드에 여러가지 기능을 추가하는 "장식"역할을 해주는 파이썬 구문 데코레이터는 다른 함수를 인수로 받는 콜러블(데코레이트된 함수) 함수를 반환하거나 함수를 다른 함수나 콜러블 객체로 대체합니다. def deco(func): def inner(): print('running inner()') return inner @deco def target(): print('running target()') target() -> 출력: running inner() print(target) -> 출력: 데커레이터는 다른 함수를 인수로 전달해서 호출하는 일반적인 콜러블과 동일하며 편리 구문(syntactic sugar)일 뿐입니다. 데코레이터..

    [python] 일급 함수 디자인 패턴

    요즘 [전문가를 위한 파이썬] 기술서적으로 파이썬 스터디를 하고 있습니다. 발표 회차에 다가와서...이번 포스트에서는 함수 객체를 이용해 Strategy 패턴을 리팩토링하는 내용을 다루겠습니다. 일급 함수란? 파이썬 함수는 일급 객체입니다. 일급 객체는 다음 작업을 수행할 수 있는 프로그램 개체입니다. - 런타임에 생성할 수 있다 - 데이터 구조체의 변수나 요소에 할당할 수 있다 - 함수 결과로 반환할 수 있다 전략(Strategy) 패턴 리팩토링 Strategy 패턴? 모든 프로그램은 문제를 해결하기 특정 알고리즘이 구현되어 있다. Strategy 패턴에서는 그 알고리즘을 구현한 부분을 모두 교환할 수 있다. 즉 알고리즘을 빈틈없이 교체해서 같은 문제를 다른 방법으로도 쉽게 해결할 수 있도록 도와주는 ..

    utf8

    배경데이터베이스 테이블에서 emoji등 문자열을 저장해야하는 컬럼은 대부분 utf8mb4로 타입을 명시했다. utf8mb3는 emoji를 저장할 수 없기때문에 4바이트까지 저장할 수 있는 변수형을 사용해야한다는 것이다.그렇다면 utf8은 어떻게 3바이트를 저장하고 utf8mb4는 4바이트인걸까?이모지를 사용하기 위해서는 4바이트가 필요하다고 한다. 이모지가 4바이트를 차지하는지 어떻게 아는가?문자열과 이모지를 저장하기 위해 컬럼 타입을 utf-8mb4로 설정하고 간단하게 끝내는 것은 마치 이야기의 엔딩만 고치고 끝난거 같아서 이전까지 '알았다고 생각했던' 문자 인코딩에 대해서 한번 더 짚고 넘어가고 싶었다. ASCIIAmerican Standard Code for Information Interchang..

    Cookie

    [이 글은 기존 github 블로그에서 2022.08.12에 작성된 글입니다.] 🍪 쿠키란? 사용자를 식별하고 세션을 유지하는 방식. 쿠키는 캐시와 충돌할 수 있기때문에 대부분 쿠키에 있는 내용을 캐싱하지 않는다. 쿠키 타입 세션 쿠키: 사용자가 사이트를 탐색할 때, 관련한 설정과 선호 사항들을 저장하는 임시 쿠키. 사용자가 브라우저를 닫으면 삭제된다. 지속 쿠키: 사용자가 주기적으로 방문하는 사이트에 대한 설정 정보나 로그인 이름을 유지하려고 사용. 디스크에 저장되어 브라우저를 닫거나 컴퓨터를 재시작하더라도 남아있다. 동작 방식 웹 서버는 처음 사용자에 대해서 아무것도 모르는 상태이지만 사용자가 다시 돌아왔을 때, 해당 사용자를 식별하기 위한 유일한 값을 쿠키에 할당한다. 쿠키는 어떤 정보든 포함할 수..

    정규화

    [이 글은 기존 github 블로그에서 작성해 티스토리로 옮긴 글입니다.] 정규화 normalization 이상현상이 발생하는 릴레이션을 분해하여 이를 없애는 과정. 이상현상을 일으키는 함수 종속성의 유형에 따라 등급을 구분할 수 있다. 제 1 정규형 A relation in which the intersection of each row and column contains one and only one value. 릴레이션의 모든 속성 값이 원자값을 가지면 제 1 정규형이라고 한다. 🛠 정규형 변환 제 2 정규형 A relation that is in first normal form and every non-primary key attribute is fully functionally dependent ..

    데이터베이스 이상현상

    [이 글은 기존 github 블로그에서 작성해 티스토리로 옮긴 글입니다.] 이상현상 Anomaly 💡 잘못 설계된 테이블로 데이터 조작(삽입, 삭제, 수정)을 하면 일어난다. 😈 삭제이상 튜플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상 😈 삽입이상 튜플 삽입 시 특정 속성에 해당하는 값이 없어 NULL값을 입력해야하는 현상 😈 수정이상 튜플 수정 시 조건을 잘못 주어서 중복된 데이터의 일부만 수정되어 데이터의 불일치 문제가 일어나는 현상 함수 종속성 어떤 속성A의 값을 알면 다른 속성 B의 값이 유일하게 정해지는 의존 관계 A→B: A는 B의 결정자. ⚠️ 결정자는 단일 속성일 수도, 복합 속성일 수도 있다! 표현) x → y : y는 x의 함수 = y는 x에 함수적으로 종속 = y는 ..

    데이터베이스 개념, 데이터 무결성

    데이터베이스 프로젝트에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것 - 데이터베이스 개론 개념 integrated data: 중복을 최소화함으로써 데이터 불일치 현상을 없앤다 stored data: 컴퓨터 저장장치에 저장된 데이터 operationl data: 프로젝트의 목적을 위해 사용되는 데이터 shared data: 여러 사람이 동시에 사용할 수 있다 특징 real time accessibility: 사용자가 요청하는 순간에 실제 데이터를 서비스 continuous change: 삽입, 삭제, 수정등으로 바뀐 데이터값 저장 concurrent sharing: 동시에 여러 사용자가 데이터 요청가능 reference by content 데이터 구조 외부 단계- 외..