GraphQL API란?
·
Development
웹 사이트들을 확인하다보면, html 데이터 속 태그에 window.__STATE__=[] {} 와 같은 형식이 들어있고, JSON 데이터가 들어있는 경우가 종종 있는데 이게 뭔지 궁금해서 찾아보게 되었다. 이는 서버 측 렌더링 및 클라이언트 측 SPA (Single Page Application)에서 사용되는 Apollo Client에 대한 상태 정보를 초기 설정하기 위한 JSON 데이터라고 한다. GraphQL API에서 데이터를 가져와서 애플리케이션에 사용한다. 이 상태 정보는 Apollo Client가 애플리케이션을 처음으로 렌더링 할 때 사용되며 초기 데이터를 가져온다. 이를 통해 초기 렌더링이 더 빠르게 이루어지고 필요한 데이터를 서버에서 가져온 다음 페이지가 로드 될 때 적절한 데이터로 업데..
멀티 스레딩(Multi Thread)
·
Development
멀티 스레딩(Multi Thread) 한 번에 여러 작업을 동시에 처리하기 위해 사용되는 프로그래밍 기법이다. 멀티 스레딩을 통해 여러 작업을 병렬로 실행하여 시스템 자원을 효율적으로 활용할 수 있다. 스레드(Thread) 프로세스 내에서 실행되는 작은 실행 단위. 하나의 프로세스는 여러 개의 스레드를 가질 수 있으며, 각각의 스레드는 독립적으로 실행될 수 있다. 스레드는 프로세스 내의 자원을 공유하면서 동시에 실행될 수 있으므로, 여러 작업을 동시에 처리할 수 있게 된다. 프로세스(Process) 운영체제에서 실행 중인 프로그램을 의미한다. 각 프로세스는 독립적인 메모리 공간을 가지며, 운영체제에 의해 관리된다. 프로세스는 하나 이상의 스레드를 포함할 수 있다. 프로세스는 프로그램의 실행 인스턴스로써,..
[Python] base64 디코드
·
Development/Python
base64란? : 데이터를 텍스트로 표현하는 인코딩 방식 중 하나이다. 이진 데이터를 64개의 ASCII문자로 이루어진 문자열로 변환한다. 데이터 크기를 약간 늘리는 단점이 있지만, 데이터의 무결성을 보존하고 다양한 시스템 간에 이진 데이터를 안전하게 전송할 수 있는 장점이 있다. import base64 encoded_url = '6dQgMANO9qsfWFmshg0wEv///w==' decoded_url = base64.b64decode(encoded_url).decode('utf-8') `base64.b64decode()` 함수를 사용하여 해당 문자열을 디코드하고 `decode('utf-8')`를 사용하여 바이너리 데이터를 문자열로 변환한다.
[Python] logging 모듈
·
Development/Python
파이썬 개발 시 로그를 확인하려는 경우, 로깅을 사용할 수 있다. 로깅(logging)이란 `logging` 모듈은 Python에서 로깅 기능을 제공하는 표준 라이브러리로, 애플리케이션의 실행 동안 발생하는 이벤트와 정보를 기록하는 도구 Python에서는 logging 모듈을 사용하여 로깅을 구현할 수 있다. 사용방법 import logging # 로깅 설정 logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') data = "logging test" # 로그 출력 logging.info("데이터: %s", data) `logging` 모듈의 주요 클래스 1. `Logger`: 로그 메시지를 생성..
[PHP] '?' 조건부(ternary) 연산자
·
Development/PHP
'?' 조건부 연산자 조건식의 결과에 따라 참과 거짓의 값 중 하나를 반환한다. =>조건식이 참일 경우 : 앞의 값을, 거짓일 경우 뒤의 값을 반환한다. 문법 조건식 ? 참일때의 값 : 거짓일때의 값 예제 $age = 18; $message = ($age >= 20) ? "성인입니다" : "미성년자입니다"; echo $message; // "미성년자입니다" 출력 age가 조건식인 20보다 작으므로, 거짓이되어 : 뒤의 값인 "미성년자입니다"를 출력하게 된다. PHP '?' 연산자는 5.3 버전 이상 부터 모두 사용할 수 있다. PHP 버전이 5.2라면 if-else구문을 사용해야 한다.
[Linux] 프로세스 확인 명령어
·
Development/Linux
ps -ef | grep python와 ps aux | grep python의 차이 ps -ef와 ps aux는 모두 현재 실행 중인 프로세스를 출력하는 명령어이지만, 출력되는 형식이 조금 다르다. ps -ef: BSD 스타일 출력 형식. UID, PID, PPID, C, STIME, TTY, TIME, CMD 등의 필드가 표시된다. (Linux와 macOS에서 사용) ps aux: SYSV 스타일 출력 형식. USER, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND 등의 필드가 표시됩니다. 이 출력 형식은 Linux에서 사용된다. 실행 중인 python 프로세스를 찾기 위해 해당 명령어를 사용하였는데, ps -ef | grep python과 p..
[PHP] 비동기 실행 라이브러리 "ReactPHP"
·
Development/PHP
비동기 실행 라이브러리 비동기 실행을 가능하게 하는 라이브러리가 몇 가지 있는데, 그 중 하나는 "ReactPHP"다. ReactPHP는 이벤트 기반 비동기 프로그래밍을 지원하는 PHP 라이브러리다. 이를 사용하면 새로운 파일 실행 요청을 즉시 처리하고, 실행이 완료될 때까지 다른 요청을 처리할 수 있다. PHP5에서는 비동기 프로그래밍을 지원하지 않아서 비동기 라이브러리를 직접 구현해야 한다. 멀티 프로세스나 멀티 스레드를 사용하여 비동기 작업을 처리하는 방법이 있다. 하지만 구현이 복잡하고 안정성 문제가 있을 수 있기 때문에 권장되는 방법은 아니다. PHP7부터는 비동기 프로그래밍을 지원하는 Swoole(https://www.swoole.com/)라는 라이브러리가 나왔다. 해당 라이브러리는 비동기 I..
[Python] instaloader 라이브러리
·
Development/Python
instaloader 설치 pip install instaloader 예제 코드1 import instaloader # 인스타그램 로그인 정보 입력 ig_username = '인스타그램ID' ig_password = '인스타그램PW' L = instaloader.Instaloader() try: # 인스타그램 로그인 L.context.log("인스타그램 로그인 중...") L.load_session_from_file(ig_username) if not L.context.is_logged_in: raise Exception("로그인 실패") L.context.log("로그인 성공") except Exception as e: L.context.log("로그인 실패") L.context.log(str(e)) ..