목록Tech (35)
포도가게의 개발일지
리액트 앱은 컴포넌트로 구성됩니다. 컴포넌트는 고유한 로직과 모양을 가진 UI의 일부, 컴포넌트는 버튼만큼 작을 수도 있고, 전체 페이지만큼 클 수 있습니다.리액트 컴포넌트는 마크업을 반환하는 자바스크립트 함수입니다. 리액트 컴포넌트의 이름은 항상 대문자로 시작해야하고, html tag는 소문자로 시작해야합니다.export default 키워드는 파일의 기본 컴포넌트를 지정합니다. 위에서 본 마크업 분법을 jsx라고 합니다.. 대부분의 리액트 프로젝트는 편의성을 위해 jsx를 사용합니다. jsx에서는과 같이 태그를 닫아야합니다. 또한 컴포넌트를 여러 개의 jsx tag를 반환할 수 없습니다. 반환하기 위해서는 랩핑한, ... 부모로 감싸야 합니다.react에서는 className으로 CSS class를 ..
컨텍스트 관리자with block컨텍스트 관리자 객체는 with 문을 제어하기 위해 존재동시성 처리파이썬 코루틴과 스레드는 cpu 위주의 작업에 적합하지 않다.코루틴멈췄다가 나중에 다시 실행을 재개할수있는 함수. 파이썬에서는 제너레이터가 고전적 코루틴을 만들고, async def로 네이티브 코루틴을 정의할 수 있다.일반적으로 이벤트 루프의 관리하에 하나의스레드 안에서 작동한다. 코루틴과 이벤트 루프는 동일한 스레드에서 실행된다.asyncio, Curio, Trio등 비동기 프로그래밍 프레임워크는 논 블로킹 코루틴 기반 io를 지원하는 이벤트 루프와 지원 라이브러리를 제공한다.코루틴은 협업형 멀티태스킹을 지원한다.각 코루틴은 yield, await을 통해 제어권을 양보해야 다른 코루틴이 진행할수있다.GIL..

Chrome extension?크롬 확장 프로그램은 구글 크롬 브라우저의 기능을 확장하거나 사용자 경험을 개선하는 작은 소프트웨어예요. HTML, CSS, JavaScript 같은 웹 기술로 만들어지며, 브라우저에 설치하면 광고 차단, 탭 관리, 웹페이지 수정 같은 일을 할 수 있습니다.확장 프로그램은 HTML, CSS, JS 파일을 압축한 번들로, 브라우저 UI를 커스터마이징하거나 이벤트 감지, 웹 수정 등을 할 수 있습니다.스마트폰에 앱을 설치하는 것처럼 브라우저에 추가 기능을 더하는 것이라고 간단히 생각 할 수 있습니다.개발단계파일들을 하나의 디렉토리에 두고, chrome://extensions 페이지에서 load unpacked를 통해 번들링 없이 여러 파일로 테스트 가능합니다.배포시chrome ..
파이썬 제어 흐름Iter는 프로그래밍에서 데이터 구조를 순차적으로 접근할 수 있게 하는 객체로, 반복 가능한 객체(iterable)에서 요소를 차례로 가져올 수 있는 객체를 의미.yield from은 서브 제너레이터나 반복 가능한 객체에서 값을 직접 전달받아 호출한 제너레이터로 다시 값을 전달하는 역할을 함.Iterable: 반복 가능한 객체.Iterator: 반복자를 통해 요소를 차례로 접근.Generator: 제너레이터는 이터레이터를 생성하며, yield를 사용하여 값을 순차적으로 생성.iter() 함수를 사용해 반복 가능한 객체를 이터레이터로 변환.next()로 다음 요소를 가져옴.단어의 시퀀스파이썬이 객체 x를 반복해야할때 언제나 iter()를 자동으로 호출한다.iter()는 iter구현을 확인후..
시퀀스기본 시퀀스 프로토콜, len, __getitem여러 항목이 있는 객체를 안전하게 표현슬라이싱 지원포함된 요소 고려한 집합 해싱프로토콜?객체지향 프로그래밍에서 프로토콜은 문서에만 정의되고 실제 콛에서는 정의되지 않는 비공식 인터페이스예를들어 시퀀스 프로토콜은 len, getitem 메서드를 동반할 뿐이다.추상 베이스 클래스(ABC)파이썬은 형식적인 인터페이스가 없지만, 프로토콜(특정 메서드 집합)을 통해 객체의 동작을 정의합니다.정적 타이핑(PEP 484 이후 typing 모듈)을 도입해 런타임 오류를 사전에 방지하는 방향으로 진화한 점을 강조구스타이핑덕 타이핑의 확장으로, ABC(Abstract Base Classes)를 통해 명시적 타입 체크(isinstance/issubclass)를 추가해 안..
일급함수 디자인 패턴파이썬을 이용하여 GoF(Gang of Four)의 고전 디자인 패턴을 Python의 일급 함수(first-class functions) 특성을 활용해 더 간단하고 Pythonic하게 재해석하는 내용 → 코드 간결, 유연.Python의 일급 함수(first-class functions)를 활용해 더 간단하게 strategy patter을 구사할 수 있다.클래스 계층(Promotion 추상 클래스 + 구체 클래스들)을 없애고, 단순한 함수로 할인 로직을 정의해. 이 접근은 코드가 더 짧아지고, 동적으로 프로모션을 추가/제거하기 쉽다는 장점이 있어.클래스 vs. 함수: 클래스는 상태/상속 필요 시 좋지만, 단순 로직엔 함수가 가볍다.메타전략과 모듈 자동 로드확장성: 프로모션 100개? 리..
Decorator and Clousure클로저는 자신의 본체 바깥에서 정의된 변수를 함수가 포착해서 가져오는 기능데코레이터는 다른 함수를 인수로 받는 콜러블이다.함수를 반환하거나, 함수를 다른 함수나 콜러블 객체로 대체한다.데코레이터는 모듈이 로딩될 때 바로 실행된다.파이썬이 데코레이터를 실행하는 시점.파이썬에서는 임포트 시에 실행됨.함수 내에서 변수 스콥파이썬 인터프리터는 함수를 실행하기 전, 코드를 컴파일하는 시점에 해당 함수에서 사용될 변수가 지역 변수인지 전역 변수인지 미리 판단합니다.함수 본문 어디에서든 특정 변수에 값을 할당하는 구문(=)이 있다면, 그 변수는 해당 함수의 지역 변수(local variable)로 간주됩니다.global b 선언은 컴파일러에게 "b = 9 할당문이 있더라도 b를..
일급 객체런타임에 생성가능데이터 구조체를 변수나 요소에 할당 가능함수로 parameter로 전달 가능함수 결과로 반환 가능함수 객체 내부함수도 하나의 객체(object)이며, 이 객체의 속성을 분석하여 함수의 매개변수(parameter) 정보를 알아내는 방법파이썬에서 함수는 단순히 코드를 실행하는 묶음이 아니라, 그 자체로 하나의 객체입니다. 객체이므로 여러 속성(attribute)을 가집니다.__doc__: 함수의 설명문(docstring)을 담고 있습니다. (help(함수명) 실행 시 보입니다.)**dict**: 사용자 정의 속성을 추가할 수 있는 딕셔너리입니다.**name**: 함수의 이름을 담고 있습니다.매개변수 정보 가져오기: 왜 필요한가?import bobo@bobo.query('/') de..