1. Redis란?- Remote Dictionary Server, 오픈 소스 인메모리 데이터 저장소- 주로 캐싱, 세션 관리, 실시간 데이터 처리 등에 사용된다- 키-값(key-Value) 구조를 기반으로 하며, 빠른 성능과 다양한 데이터 구조를 지원 2. 왜 Redis를 사용 할까?1) 빠른 성능- 데이터를 메모리(RAM)에 저장하기 때문에 디스크 기반 데이터베이스(MySQL, PostgreSQL 등)보다 훨씬 빠르게 읽고 쓸 수 있다.- 평균 마이크로초(㎲) 단위 응답 속도로, 초당 수십만 건 이상의 요청을 처리할 수 있다. 2) 다양한 데이터 구조 지원- 단순한 key-value 뿐만 아니라 list, Set, Sorted Set, Hash, Bitmap, hyperLogLog 같은 자료 구조를 ..
1. 싱글톤 패턴이란?- 클래스의 인스턴스를 단 하나만 생성하여 전역적으로 공유하는 디자인 패턴- 동일한 객체를 여러 곳에서 공유할 수 있어, 메모리 낭비를 줄이고 일관성을 유지할 수 있다- 한 번 만들어진 객체의 메모리 주소를 공유 2. 싱글톤 패턴이 필요한 경우1) 데이터베이스 연결- DB 커넥션은 여러 개 만들 필요 없이 하나만 유지해야 함2) 웹크롤러 인스턴스- Selenium 같은 크롤러를 사용할 때, 여러 개 만들지 않고 하나의 브라우저 인스턴스를 공유3) 설정(Configuration) 객체- 애플리케이션의 환경 설정을 하나의 객체로 관리하여 모든 모듈에서 동일한 설정을 사용4) 로그 시스템- 모든 모듈이 동일한 로그 시스템을 공유 3. 일반 클래스와 싱글톤 패턴 비교class Normal:..
1. GIL이란?- Global Interpreter Lock- Python의 CPython 인터프리터에서 동시에 하나의 스레드만 실행될 수 있도록 제한하는메커니즘- 멀티스레드 환경에서도 한 번에 하나의 스레드만 Python 바이트 코드를 실행할 수 있다.- 따라서 멀티스레딩으로 처리하면 느려질 수 있다. 2. GIL이 왜 필요할까?- Python의 메모리 안전성을 유지하기 위해 존재- Python이 메모리 관리 시스템은 참조 카운트를 기반으로 한다- 여러 개의 스레드가 동시에 실행되면 참조 카운트 값을 수정하는 과정에서 Race Condition이 발생할 수 있는데, 이를 방지하기 위함이다* Race Condition 이란?- 두 개 이상의 스레드가 동시에 같은 자원(메모리, 파일, 변수 등)에 접근..

[1] 변수(Variable)- 데이터(값)을 저장하기 위한 메모리 공간의 프로그래밍상 이름- 변수는 메모리 주소를 가지고 있고, 값은 메모리 주소에 할당됨- 선언 되는 순간 메모리 특정 영역에 물리적인 공간이 할당됨- 예) a=8 ; a라는 이름을 가진 메모리 주소에 8을 저장하라 (1) 폰 노이만 아키텍처- 사용자가 컴퓨터에 값을 입력하거나 프로그램을 실행할 경우 그 정보를 먼저 메모리에 저장시키고, CPU가 순차적으로 그 정보를 해석하고 계산하여 사용자에게 결과값을 전달 (2) 변수 이름 규칙- 알파벳, 숫자, 언더스코어(_)로 선언 가능- 변수명은 의미 있는 단어로 표기하는 것이 좋다- 변수명은 대소문자가 구분된다- 특별한 의미가 있는 예약어는 쓰지 않는다(예. for, if, else 등) [2..

[1] 메모리 주소- 메모리 주소(&)는 16진수로 표현- 컴퓨터는 8개의 비트가 모인 바이트 단위로 정보를 표현하는데, 2개의 16진수는 1byte의 2진수로 벼환되기 때문에 정보를 표현하기 매우 유용하다.ex. 01000001 => 0100 = 4 | 0001= 1 => 0x41 * 2진법128 64 32 16 8 4 2 1 1 1 1 1 1 1 1 1 1비트*8개 = 8비트 = 1바이트1000바이트 = 1KB * ACII, 유니코드- 아스키코드 : A = 65, 0=48, 1=49, 8비트만 사용- 유니코드 : 8,16,24,32비트 사용 => 더 많은 패턴 사용 가능-RGB(발강,초록,파랑) 하나의 픽셀의 색에는 이 3가지 값이 들어감 *생각해보기) CS50을 2진법으로?아스키..

[49,50,51,52강] static 변수* static 변수? (정적변수, 공유하고 있는 변수)- 단 한번만 초기화하고, 그 이후에는 전역변수(함수 위에 선언해 모든 함수들이 공유)처럼 프로그램이 종료될때까지 메모리공간에 존재하는 변수.- 초기값이 지정이 안되면, 자동으로 0 이 대입.ex. int a; a에 이상한 쓰레기 값 들어감, static int a; 자동으로 a에 0값이 들어감* 배열도 선언만 하면 자동으로 0이 들어감지역 변수static 변수void test(){ int a = 10; a++; // a=11 printf("%d", a);}void main() { test(); // 11출력, 동작 수행 후 test 안의 변수들 초기화 test(); // 11출력, 동작 수행 후 ..
- Total
- Today
- Yesterday
- 운동
- 프로그래머스
- 기초
- 경제
- Ai
- llm
- 영어회화
- 티스토리챌린지
- 다이어트
- 30분
- 미라클모닝
- 고득점 Kit
- opic
- ChatGPT
- 오블완
- 빅데이터 분석기사
- SQL
- C언어
- 갓생
- 뉴스
- 루틴
- 줄넘기
- Python
- IH
- 아침
- 습관
- 스크랩
- 실기
- 아침운동
- 오픽
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |