지식이 늘었다 68

Python의 @classmethod, @staticmethod, 데코레이터 @

0. 특정 인스턴스의 메소드를 수행하려고 한다면 어떻게 해야하는가? class ClassTest: def instance_method(self): print(f"Called instance_method of {self}")#1test = ClassTest()test.instance_method()ClassTest.instance_method(test)#Called instance_method of  test 인스턴스를 찍어낸뒤test.instance_method()로 메소드를 수행할 수도 있고ClassTest.instance_method(test)처럼 클래스에서 메소드를 호출하고test인스턴스를 전달해줘도 된다. 그렇기 때문에 인스턴스의 메소드는객체Object가 필요하다. (객체=Pyt..

Python의 Magic Method - __repr__()와 __str__()

0.(잡설)메타적이라는 말이 있다한국어로 번역하면 종종 형이상학적으로 번역이 된다.윤리학과 메타윤리학, 물리학과 메타물리학..앞에 메타라는 접두사가 붙는다면,그 대상자체에 대한 의미를 나타내게 된다. 해당 시스템의 존재방식, 그 시스템안에서 생기는 모순뭔가 증명불가능하고 뜬구름 잡는것 같은 그런 녀석들 가령 우리의 눈은 빨간색, 초록색, 파란색의 빛을 인식하는 세포들이 존재하고이를 통해 우리는 색을 구분하고 인식할 수 있다.. 라는 논의에서칸트가 '빨강'이라는 색은 물체의 본질적인 속성인가? 우리는 빨강을 인식하는가..?하는 인식하는 것은 무엇인가?하는 질문을 던지는 것처럼..어찌보면 중요한데 어찌보면 뜬구름 잡는 거 같은 기분을 유발한다. 처음 __init__ __str__ 같은 녀석들을 보았을 때 무..

Python의 *, ** 문법

0. 파이썬의 unpacking 문법인* 연산자에 대해서 알아보자. JS에서 배웠던 ... 처럼파이썬에서 *는정해지지 않은 입력값들을 pack해주거나,리스트, 튜플 같은 자료구조의 데이터를 쪼개어주는 unpacking해주는 연산자이다. SQL의 Select All에 사용되었던 *를 연상시키는 것도 괜찮다.  1. 기본적인 사용법 함수의 정의과정에서 전달받는 값들이 파라미터다.파라미터에서 * 연산자를 사용할 때, *는 여러 아규먼트를 하나의 튜플로 합치는 Packing 기능을 수행한다. 함수의 호출과정에서 실제로 전달하는 값들이 아규먼트이다.아규먼트에서 * 연산자를 사용할 때, *는 해당 파라미터를 여러개의 값으로 분할하는 Unpacking 기능을 수행한다.  def multiply(*args): p..

API와 REST API

0.이전 섹션에서 외부 서비스인 STRIPE를 이용하여신용카드 결제 기능을 웹사이트에 구현했었다. 이 강의의 첫 번재 강의 섹션인시작하기 섹션에서 우리는 웹 개발자로서웹사이트를 구축할 수 있고웹 서비스 또는 API도 구축할 수 있다고 언급했었다. 그리고 이제는 이 두 표현의 차이가 무엇인지 강조하고 싶다.우리가 웹사이트를 만들 때에는, 프론트엔드든 프+백엔드인든 HTML콘텐트를 방문자에게 최종적으로 전달하는 것이 목표이다.그렇기 때문에 Response에는 최종적으로 HTML 코드가 전달된다.그리고 이 HTML코드를 웹사이트가 방문자에게 시각적인 형태로 표시해준다. 반면에 Web Sevcies / APIs는 화면에 페이지를 보여주는 것이 최종적인 목표가 아니다.Stripe의 경우는 신용카드 거래라는 Act..

인증, 세션, 쿠키 개념정리

(이전글 : https://fashionking.tistory.com/398 ) 0. 이전 시간까지는 웹서버에서 유저정보와 비밀번호를 받아DB에 저장된 해싱된 비밀번호와 비교하여 Log in하는 과정까지를 알아보았다.사용자의 (1).회원가입SignUp과 (2).LogIn이 되었다면..이제 무엇을 해야할까?  1. (3)번째 단계는 Authentication이다. 권한이 있는 사람들만 접근할 수 있는 페이지와 리소스에 대해서 권한을 인가Grant해주는 과정을 거쳐야 한다. 2. 하지만, 웹 사이트의 특정 부분을 어떻게 잠그고(Lock down)특정 유저에게만 허가해줄까?그걸 백앤드 단에서 구현하여야 하고, User Auth Status, 사용자 인증 상태를 도입하고Ticketing 개념을 활용하 이러한 권..

인증, 보안 개념정리 - 계정만들기, 로그인 과정

0. 이쯤오면 여러분들은 이미 웹서비스의 많은 것들을 배웠을 것이다. 프론트 엔드단에서 HTML, CSS, 브라우저측 JS를 사용해서웹사이트를 만드는 법을 배웠을 것이고 백엔드 단에서 서버를 만들고 데이버테이스를 만든 뒤데이터와 파일을 주고받고 클라이언트에게 response를 되돌려 보내는 방법을 배웠을 것이다. 이를 통해서 CRUD 기능이 달린 단순한 게시판 정도는 만들어냈다고 가정을 하자.   1. 이 정도의 게시판을 이해하는 것도 훌륭하고,지금까지 배운 것만으로도 많은 웹서비스를 제공할 수 있지만 더 제대로 된 웹사이트들이 가지고 있는 사용자 인증과 쿠키, 세션에 대해서 배울 역량이 생겼다는 의미이기도 하다. 그래서 이러한 인증(Authentication)의 기능을 가진 Sginup(회원가입)&Lo..

AJAX 개념정리 - Urlencoded와 Multipart type 이후 AJAX

0. 잡설정보처리기사 24년 3회 실기에서 관련된 문제가 나왔었다. 네이버블로그나 티스토리블로그 등을 보면URL의 구조에 대해서 묻는 문제가 있었는데,순서대로프로토콜(Scheme) :// Host Address:포트번호 (Authority) / 리소스 디렉토리(Path) / 브라우저의 전달 파라미터 (Query) # html 내부 정보(fragment)이런 구조였다 아마? 1. urlencoded 이전 과정에서Express의 urlencoded 미들웨어를 이용하여  request를 처리하고 분석하는 과정을 배웠다. 2. applcation/x-www-form-urlencoded 타입 기본적으로 HTTP에서 클라이언트-서버 간의 데이터통신과정은application/x-www-form-urlencoded 라..

DB (5) MySQL 튜토리얼 (3) - 뷰와 조인

데이터베이스는 일반적으로 정규화 과정을 거쳐 여러 테이블로 나뉘어 구성된다.하지만 실제로 사용자들이 필요로 하는 데이터는 전체가 아닌,특정 조건에 맞는 일부 데이터만 필요한 경우가 대부분이다. 또 DB의 모든 자료에 사용자가 접근해버리면.. 그것도 문제가 된다.만약 테이블을 직접 수정할수 있는 악의적인 사용자가  DROP TABLE을 해버린다면.회사는 비상이 걸리게 될 것이고 서버관리자는 시말서를 작성해야할 것이다. 이 문제를 해결하기 위해여러 테이블의 데이터 중 특정 조건에 맞는 데이터만을 추출하여,사용자가 필요한 형태로 보여주는 가상의 테이블인 뷰(View)에 대해서 알아보자. 앞서 배운 SELECT도 이러한 뷰의 기본적인 기능을 수행하지만,더 유용한 뷰를 만들어주기 위해서 우리는 SQL의 Join문..

DB (4) MySQL 튜토리얼 (2) UPDATE, DELETE, 테이블 생성 및 데이터 삽입

(https://www.udemy.com/course/100-2022-web-development) ---  - Find online POSIX regex documentation  ---  저번시간까지MySQL workbench에서로컬DB에 연결해 스키마와 테이블을 만든 뒤Insert와 Select 명령어를 사용해보는 시간을 가졌다. 데이터베이스상에서 기본적으로 요구하는 기능은CRUD, Create Read, Update, Delete이고 SQL류의 문법에서는 Data Control Language에 해당하는 네가지 문법이 존재한다.C : INSERT INTO tablename VALUES (id, name, ...)R : SELECT * FROM tablename WHERE id >= 2U : UPD..