분류 전체보기

👩‍💻 Develope/Web

[Tornado] Tornado 알아보기

[Tornado] Tornado 알아보기 TornadoTornado는  FriendFeed 에서 개발된 Python 웹 프레임워크이자 비동기 네트워킹 라이브러리다.비차단 네트워크 I/O를 사용하여 Tornado는 수만 개의 개방형 연결로 확장이 가능하다. 따라서 long polling, WebSockets 및 각 사용자에 대해 같이 장기적인 연결 유지가 필요한 애플리케이션에 이상적이다. Threads and WSGI토네이도는 대부분의 Python의 웹프레임워크와 다르게 WSGI(Webserver Gateway Interface) 기반이 아니며, 일반적으로 프로세스 당 하나의 스레드로만 실행된다. 모듈에서 WSGI를 일부 지원하지만, 대부분의 애플리케이션은 WSGI를 사용하는 대신 토네이도 자체 인터페이스..

🐳 Container/K8S

[K8s][Security] Mutating, Validation Admission Controller

[K8s][Security] Mutating, Validating이전에 Admission Controller에 대해 포스팅 한 적이 있다. [K8s][CKS] Admission Controller[K8s][CKS] Admission Controller쿠버네티스의 접근제어에는 크게 3가지가 있다.Authentication접속한 사람의 신분을 시스템이 인증Authorization누가 어떤 권한을 가지고 어떤 행동을 할 수 있는지 확인Admissionheywantodo.tistory.com Admission 컨트롤러는 요청이 인증(Athentic)되고 승인된 후에 Kubernetes API 서버에 대한 요청을 가로채어,객체를 변형(Mutating)하고 검증(Validating)한다. Admission Cont..

💡 etc/Infra

[etc] STRIDE 위협 모델

[etc] STRIDE 위협 모델 개발자와 엔지니어가 개발 수명 주기(SDLC)에서 가능한 일찍 보안을 채택하도록 권장한다.그러한 보안 관행 중 하나가 바로 Treat Modeling(위협 모델링)이다. Threat Models(위협 모델)은 소프트웨어의 보안 위험을 식별하고 완화하는 체계적이고 구조화 된 방법이다.위협 모델을 만드는 다양한 방법과 방법론이 있지만, 그중 하나인 STRIDE라는 프로세스에 대해 알아보고자 한다. STRIDE란?Microsoft에서 대중화 한 프로세스로스푸핑(Spoofing), 변조(Tampering), 부인(Repudiation), 정보 공개(Information Disclosure), 서비스 거부(Denial of Service), 권한 승격(Elevation of Pr..

💽 CICD/Git

[Git] 폴더, 파일 이름 변경

[Git] 폴더, 파일 이름 변경git의 파일 이동 명령어인 mv를 사용하면 rename과 동일한 효과를 얻을 수 있다.이후 commit을 해주면 원격 저장소에 적용이 된다.git mv old_name new_namerename history를 확인하기 위해 log --patch 명령어를 실행할 수 있다. git log -p -1diff --git a/config.production.json b/config.production.json.examplesimilarity index 100%rename from old_name.txtrename to new_name.txt

👩‍💻 Develope/Python

[Python] pip freeze 명령어 사용 시 패키지 버전이 제대로 나오지 않을 때

[Python] pip freeze 명령어 사용 시 패키지 버전이 제대로 나오지 않을 때현재 서버의 패키지 버전을 확인하여 패키지의 취약점을 검사를 해야하는 일이 있었는데,pip freeze 명령어로 버전을 확인할 때 버전명이 다음과 같이 명시가 되는 경우가 있다.jsonpatch @ file:///home/conda/...찾아보니 pip 19.1 버전부터 일반 버전 지정자 대신 직접 참조를 사용하도록 허용을 한다고 한다.직접 참조는 위와 같이 지정자 @와 명시적 URL로 구성된다. PEP 440 – Version Identification and Dependency Specification | peps.python.orgThis PEP describes a scheme for identifying ve..

👩‍💻 Develope/Python

[Python][bs4] BeautifulSoup4에서 텍스트로 파싱하기

[Python][bs4] BeautifulSoup4에서 텍스트로 파싱하기저번에 파이썬으로 웹 크롤링을 할 수 있는 BeautifulSoup 라이브러리에 대해 간략하게 포스팅을 했었다. 이번에 BS4를 이용하여 HTML 문서를 파싱을 해야하는 일이 있었는데, 해당 문서가 tag만 있고 id값이나 class값이 없어 원하는 값을 파싱하기 매우 곤란한 상황이였다...😥 믿을건 태그값 내의 텍스트 밖에 없어서, 이번 포스팅에서 bs4를 이용해 텍스트 데이터를 파싱하는 방법에 대해 알아보고자 한다. BeautifulSoup4의 기본 사용법은 다음 포스팅을 참고하면 된다. [Python] Beautiful Soup(bs4)[Python] Beautiful Soup(bs4)파이썬(Python)에는 여러 웹 스크래핑..

👩‍💻 Develope/Python

[Python] glob

[Python] globglobglob 모듈은 파일 및 디렉토리 경로를 패턴으로 검색할 수 있도록 도와주는 파이썬의 기본 라이브러리다.이를 활용하면 특정 확장자나 이름을 가진 파일을 쉽게 찾아낼 수 있다. 모듈 사용법1. 기본 사용법먼저 모듈을 import 해준다.import globglob은 파일 경로 패턴을 매칭하여 해당하는 파일들의 리스트를 반환한다.간단한 예제로 현재 디렉토리에서 모든 파일을 검색해보자.files = glob.glob(*)print(files)## result['file1.txt', 'scripts.py', 'image.jpg'] 2. 특정 확장자의 파일 검색특정 확장자의 파일만 검색하고 싶다면, 파일명 뒤에 확장자를 명시하면 된다.예를 들어 .txt 파일만 검색해보자.txt_fi..

💾 Data/SQL

[MySQL] JSON_TABLE(), JSON_ARRAY()

[MySQL] JSON_TABLE(), JSON_ARRAY()MySQL은 JSON 데이터 타입을 지원하면서 더 강력하고 유연한 JSON 처리를 제공하고 있다.특히 JSON_TABLE 함수는 JSON 데이터를 SQL 테이블처럼 다룰 수 있는 매우 유용한 기능이다. JSON_TABLE과 JSON_ARRAY 함수의 사용법과 예제를 통해 어떻게 JSON 데이터를 더 쉽게 다룰 수 있는지 알아보자.JSON_ARRAY여러 값을 JSON 배열로 생성할 때 사용된다. 이 값은 인자로 들어온 값을 JSON 배열 형식으로 반환한다. 사용법JSON_ARRRAY([val1,[, val2, ...]]) 예시SELECT JSON_ARRAY(1, 'apple', true, NULL);위 쿼리의 결과는 다음과 같은 JSON 배열을 ..

💾 Data/SQL

[MySQL] 데이터를 구분자로 Split 하기

[MySQL] 데이터를 구분자로 Split 하기개요DB 테이블에 컬럼이 다음과 같은 형식으로 되어있는 데이터가 있었는데 구분자를 분리해서 개수가 몇개인지 카운트를 하고싶었다.test_columnsappleapple, bananabanana, pineapplepineapple MySQL에서 특정 문자를 기준으로 split 하는 함수에는 SUBSTRING_INDEX() 함수가 있는데,이 함수는 인덱스에 해당하는 라인만 뽑기 때문에 데이터가 많을 경우 원하는 결과를 얻기 위해선 프로시저를 사용해야 했다..😥 SELECT 문으로 데이터 하나 뽑자고 프로시저를 사용하는 건 너무 과한 것 같아 다른 방법을 알아보기로 했다. JSON_TABLE열심히 서칭한 결과 JSON_TABLE()이라는 아주 좋은 방법이 있었다..

💾 Data/SQL

[MySQL] INTERVAL

[MySQL] INTERVALINTERVALINTERVAL은 주로 날짜 또는 시간 데이터와 함께 사용되며, 다양한 시간 단위를 더하거나 빼는 역할을 한다.MySQL에서는 특정 날짜 필드에 연산을 수행할 때 매우 간단하게 사용할 수 있도록 지원하고 있다. 날짜 또는 시간에 값을 더하거나 빼기-- 특정 날짜에 값을 더함DATE_ADD(날짜, INTERVAL 값 단위)-- 특정 날짜에서 값을 뺌DATE_SUB(날짜, INTERVAL 값 단위)예를 들어, 다음과 같이 고객의 주문이 완료된 날짜에 3일을 더해 예상 배송일을 계산할 수 있다.SELECT DATE_ADD(order_date, INTERVAL 3 DAY) AS expected_deliveryFROM orders;또한 다음과 같이 주문일이 30일 이상 ..

💾 Data/SQL

[MySQL] EXISTS

[MySQL] EXISTSEXISTSEXISTS는 MySQL에서 서브쿼리의 결과가 존재하는지 여부를 확인하는데 사용하는 조건문이다. 주로 특정 조건에 맞는 데이터가 존재하는지 여부를 확인할 때 사용하며, 참 또는 거짓의 값을 반환한다.EXISTS는 보통 SELECT문과 함께 사용되며, 데이터의 유무에 따라 로직을 결정하는 데  유용하다. 기본 구조SELECT 칼럼명FROM 테이블명WHERE EXISTS ( 서브쿼리);위 구조에서 EXISTS 안의 서브쿼리가 실행되며, 서브쿼리의 결과에 한 개 이상의 레코드가 존재하면 참을 반환하고, 그렇지 않으면 거짓을 반환한다. 작동 방식EXISTS는 서브쿼리가 반환하는 데이터를 확인하지 않는다. 대신, 서브쿼리가 최소한 한 개의 행이라도 반환하면 TRUE를 반환..

🧾 Codetest/프로그래머스

[프로그래머스][SQL][Lv05] 멸종위기의 대장균 찾기

[프로그래머스][SQL][Lv05] 멸종위기의 대장균 찾기 풀이ecoli_data 테이블의 데이터를 재귀적으로 탐색하여, 각 id의 세대를 계산한 후, 마지막 세대에 속한 항목들을 세어 세대별로 출력하는 방식으로 진행했다. 1. WITE RECURSIVE 문재귀적 CTE(Common Table Expression)를 사용하여 데이터의 부모-자식 관계를 따라 세대를 계산하는 부분이다.SELECT id, parent_id, 1 AS gen FROM ecoli_dataWHERE parent_id IS NULLparent_id가 NULL인 데이터를 선택한다, 즉, parent_id가 없는 최상위 항목들이며, 이 항목들은 gen값이 1인, 즉 1세대다.SELECT e.id, ..

heywantodo
'분류 전체보기' 카테고리의 글 목록 (4 Page)