분류 전체보기
-
Python 개발자라면 파이프라인 이라는 용어를 들어보셨을 것입니다 . 파이프라인이란 정확히 무엇이며 왜 유용한지 개념, 작동 방식, 더 깔끔하고 효율적인 코드를 작성하는 데 어떻게 도움이 되는지 살펴보겠습니다. 파이프라인이란? 파이프라인은 메서드에 인자를 넣었을때 출력값을 바로 다음 메서드에 넣어서 출력값을 얻고 또 그 값을 여러 메서드를 거쳐 최종값을 얻는 방식입니다. 예를 들어, 숫자 목록이 있고 숫자 목록에 대해 다음 작업을 수행하려고 한다고 가정합니다. 홀수를 필터링하세요. 각 숫자에 10을 곱하세요. 각 숫자에 5를 더하세요. 결과 숫자의 평균을 계산합니다. 보통 위의 조건의 로직을 코딩할때 목록을 반복하고 각 작업을 하나씩 적용하여 중간 결과를 새 목록에 저장하는 루프를 작성합니다. code..
Python 파이프 | pipe 사용법!(How to use Pipeline in python)Python 개발자라면 파이프라인 이라는 용어를 들어보셨을 것입니다 . 파이프라인이란 정확히 무엇이며 왜 유용한지 개념, 작동 방식, 더 깔끔하고 효율적인 코드를 작성하는 데 어떻게 도움이 되는지 살펴보겠습니다. 파이프라인이란? 파이프라인은 메서드에 인자를 넣었을때 출력값을 바로 다음 메서드에 넣어서 출력값을 얻고 또 그 값을 여러 메서드를 거쳐 최종값을 얻는 방식입니다. 예를 들어, 숫자 목록이 있고 숫자 목록에 대해 다음 작업을 수행하려고 한다고 가정합니다. 홀수를 필터링하세요. 각 숫자에 10을 곱하세요. 각 숫자에 5를 더하세요. 결과 숫자의 평균을 계산합니다. 보통 위의 조건의 로직을 코딩할때 목록을 반복하고 각 작업을 하나씩 적용하여 중간 결과를 새 목록에 저장하는 루프를 작성합니다. code..
2024.03.17 -
JSON은 다목적 데이터 교환 형식이지만 특정 시나리오에서는 성능 제한으로 인해 더 빠른 대안을 모색하게 되었습니다. 이러한 대안 중 일부를 자세히 살펴보고 이를 선택할 수 있는 시기와 이유를 이해해 보겠습니다. 1. Protocol Buffer(protobuf) https://protobuf.dev/ protobuf 라고도 하는 프로토콜 버퍼는 Google 에서 개발한 바이너리 직렬화 형식입니다 . 효율성, 소형화 및 속도를 위해 설계되었습니다. Protobuf의 바이너리 특성으로 인해 직렬화 및 역직렬화 작업이 JSON보다 훨씬 빠릅니다. 채택 시기 : 특히 마이크로서비스 아키텍처, IoT 애플리케이션 또는 네트워크 대역폭이 제한된 시나리오에서 고성능 데이터 교환이 필요한 경우 protobuf를 고려..
JSON 대체재(성능 향상을 위한 대체재)JSON은 다목적 데이터 교환 형식이지만 특정 시나리오에서는 성능 제한으로 인해 더 빠른 대안을 모색하게 되었습니다. 이러한 대안 중 일부를 자세히 살펴보고 이를 선택할 수 있는 시기와 이유를 이해해 보겠습니다. 1. Protocol Buffer(protobuf) https://protobuf.dev/ protobuf 라고도 하는 프로토콜 버퍼는 Google 에서 개발한 바이너리 직렬화 형식입니다 . 효율성, 소형화 및 속도를 위해 설계되었습니다. Protobuf의 바이너리 특성으로 인해 직렬화 및 역직렬화 작업이 JSON보다 훨씬 빠릅니다. 채택 시기 : 특히 마이크로서비스 아키텍처, IoT 애플리케이션 또는 네트워크 대역폭이 제한된 시나리오에서 고성능 데이터 교환이 필요한 경우 protobuf를 고려..
2024.03.17 -
최적화 되지 않은 JSON 사용으로 인해 발생한 성능 병목 현상을 해결한 실제 사례를 알아보고 LinkedIn 및 Auth0과 같은 유명한 플랫폼부터 Uber와 같은 거대 기술 기업에 이르기까지 JSON을 활용하면서 속도와 응답성을 높이기 위해 어떤 전략이 사용되었는지 알아봅시다. 1. LinkedIn의 프로토콜 버퍼 통합: 문제 : LinkedIn은 JSON의 장황함과 이로 인한 네트워크 대역폭 사용량 증가로 인해 대기 시간이 길어지는 문제를 경험했습니다. 솔루션 : 마이크로서비스 통신에서 JSON을 대체하기 위해 바이너리 직렬화 형식인 프로토콜 버퍼를 채택했습니다. 결과 : 이 최적화를 통해 대기 시간이 최대 60% 까지 줄어들어 LinkedIn 서비스의 속도와 응답성이 향상되었습니다. 2. Uber..
JSON 속도 최적화 향상 사례(실화)최적화 되지 않은 JSON 사용으로 인해 발생한 성능 병목 현상을 해결한 실제 사례를 알아보고 LinkedIn 및 Auth0과 같은 유명한 플랫폼부터 Uber와 같은 거대 기술 기업에 이르기까지 JSON을 활용하면서 속도와 응답성을 높이기 위해 어떤 전략이 사용되었는지 알아봅시다. 1. LinkedIn의 프로토콜 버퍼 통합: 문제 : LinkedIn은 JSON의 장황함과 이로 인한 네트워크 대역폭 사용량 증가로 인해 대기 시간이 길어지는 문제를 경험했습니다. 솔루션 : 마이크로서비스 통신에서 JSON을 대체하기 위해 바이너리 직렬화 형식인 프로토콜 버퍼를 채택했습니다. 결과 : 이 최적화를 통해 대기 시간이 최대 60% 까지 줄어들어 LinkedIn 서비스의 속도와 응답성이 향상되었습니다. 2. Uber..
2024.03.17 -
JSON은 웹 개발에 널리 채택되고 있지만 속도 문제가 없는 것은 아닙니다. 이 형식은 사람이 읽을 수 있는 특성으로 인해 데이터 페이로드(전송되는 '순수한 데이터')가 커지고 처리 시간이 느려질 수 있습니다. 그럼 JSON을 더 빠르고 효율적으로 만들기 위해 어떻게 최적화할 수 있을까요? 이제 JSON이 애플리케이션의 속도와 효율성을 유지할 수 있도록 JSON의 성능 향상 방법을 알아봅시다. 1. 데이터 크기 최소화: 짧고 설명적인 키 사용: 간결하지만 의미 있는 키 이름을 선택하여 JSON 개체의 크기를 줄입니다. // 비효율적 { "customer_name_with_spaces" : "John Doe" } // 효율적 { "customerName" : "John Doe" } 가능한 경우 약어 사용:..
JSON 성능 최적화JSON은 웹 개발에 널리 채택되고 있지만 속도 문제가 없는 것은 아닙니다. 이 형식은 사람이 읽을 수 있는 특성으로 인해 데이터 페이로드(전송되는 '순수한 데이터')가 커지고 처리 시간이 느려질 수 있습니다. 그럼 JSON을 더 빠르고 효율적으로 만들기 위해 어떻게 최적화할 수 있을까요? 이제 JSON이 애플리케이션의 속도와 효율성을 유지할 수 있도록 JSON의 성능 향상 방법을 알아봅시다. 1. 데이터 크기 최소화: 짧고 설명적인 키 사용: 간결하지만 의미 있는 키 이름을 선택하여 JSON 개체의 크기를 줄입니다. // 비효율적 { "customer_name_with_spaces" : "John Doe" } // 효율적 { "customerName" : "John Doe" } 가능한 경우 약어 사용:..
2024.03.16 -
OWASP(The Open Web Application Security Project)는 오픈소스 웹 애플리케이션 보안 프로젝트로, 주로 웹에 관한 정보노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하며, 웹 애플리케이션의 취약점 중에서 빈도가 많이 발생하고, 보안상 영향을 크게 줄 수 있는 것들의 10대 취약점들을 발표합니다. 보통 3~4년을 주기로 Top 10 리스트를 발표합니다. A01 : Broken Access Control (접근 권한 취약점) 엑세스 제어는 사용자가 권한을 벗어나 행동할 수 없도록 정책을 시행합니다. 만약 엑세스 제어가 취약하면 사용자는 주어진 권한을 벗어나 모든 데이터를 무단으로 열람, 수정 혹은 삭제 등의 행위로 이어질 수 있습니다. → 사용자가 로그인을 했을 때 ..
Fast API기반 Backend Server OWASP 체크OWASP(The Open Web Application Security Project)는 오픈소스 웹 애플리케이션 보안 프로젝트로, 주로 웹에 관한 정보노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하며, 웹 애플리케이션의 취약점 중에서 빈도가 많이 발생하고, 보안상 영향을 크게 줄 수 있는 것들의 10대 취약점들을 발표합니다. 보통 3~4년을 주기로 Top 10 리스트를 발표합니다. A01 : Broken Access Control (접근 권한 취약점) 엑세스 제어는 사용자가 권한을 벗어나 행동할 수 없도록 정책을 시행합니다. 만약 엑세스 제어가 취약하면 사용자는 주어진 권한을 벗어나 모든 데이터를 무단으로 열람, 수정 혹은 삭제 등의 행위로 이어질 수 있습니다. → 사용자가 로그인을 했을 때 ..
2024.03.08 -
파이썬으로 자동화할때 죽지않고 계속 일정 간격으로 명령어를 실행하는 스크립트가 필요할때가 있다. 답은 daemon을 사용하면 된다. 코드부터 보자 import socket import subprocess import time import os import sys import daemon from daemon import pidfile from daemon import runner import argparse def runPortChecker(): while True: time.sleep(5) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) result = sock.connect_ex(('127.0.0.1', 8000)) # ip, port if res..
python 죽지않는 daemon 스크립트 짜기파이썬으로 자동화할때 죽지않고 계속 일정 간격으로 명령어를 실행하는 스크립트가 필요할때가 있다. 답은 daemon을 사용하면 된다. 코드부터 보자 import socket import subprocess import time import os import sys import daemon from daemon import pidfile from daemon import runner import argparse def runPortChecker(): while True: time.sleep(5) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) result = sock.connect_ex(('127.0.0.1', 8000)) # ip, port if res..
2024.03.07 -
웹 브라우저에서 컴퓨터를 켰을때나 특정 일을 반복할때 유용한 자동화 테크닉이다. 코드부터 보자 우선 열려 있는 브라우저를 찾아야한다 아래는 크롬 브라우저를 찾는 함수다. # Chrome 브라우저 창을 찾는 함수 def findChromeWindow(): try: # xdotool 명령어 실행하여 Chrome 브라우저 창의 ID 가져오기 cmd = "xdotool search --onlyvisible --class Chrome" chromeWindowId = os.popen(cmd).read().strip() print('chromeWindowId', chromeWindowId) return chromeWindowId except Exception as e: print(f"오류 발생: {e}") retur..
python으로 xdotool을 사용해서 크롬 브라우저를 찾아 특정 포인트를 클릭해보자웹 브라우저에서 컴퓨터를 켰을때나 특정 일을 반복할때 유용한 자동화 테크닉이다. 코드부터 보자 우선 열려 있는 브라우저를 찾아야한다 아래는 크롬 브라우저를 찾는 함수다. # Chrome 브라우저 창을 찾는 함수 def findChromeWindow(): try: # xdotool 명령어 실행하여 Chrome 브라우저 창의 ID 가져오기 cmd = "xdotool search --onlyvisible --class Chrome" chromeWindowId = os.popen(cmd).read().strip() print('chromeWindowId', chromeWindowId) return chromeWindowId except Exception as e: print(f"오류 발생: {e}") retur..
2024.03.07 -
밑에꺼 사용하시면 됩니다. ssh-keygen -R [서버 ip]
[SSH 접속시 에러] @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @밑에꺼 사용하시면 됩니다. ssh-keygen -R [서버 ip]
2024.03.07