3. Wordwar

Jung·2026년 4월 8일

모르는 용어가 나왔을 때

지난 시간에 제미나이를 괴롭힌 결과물에는 모르는 용어들이 너무 많았다. 그래서 그 용어들에 내가 알 수 있는 주소를 붙이기로 했다. 이 용어들이 얼만큼의 중요성 있는 용어들인지는 전혀 알 수 없지만, 뉴튼 선생님의 운동역학을 은유적으로 대입했을때 가장 알맞는 용어들이라고 제미나이 선생님이 그랬으니, 믿는다.

<지난시간 복습>

  • 제1법칙 관련
    Redis는 데이터베이스까지 가지 않고 메모리에서 바로 데이터를 꺼내오는 '관성 유지'도구다.
    Loop Tiling은 대용량 행렬 연산시, 메모리 계층구조의 관성을 이용해 캐시 효율을 극대화하는 최적화 기법이다.

논리적 징검다리

용어의 주소를 찾아가는 길에는 논리적 징검다리가 필요하다.

[Redis]에 관하여: 데이터를 어디에 보관할까. "속도"의 문제

step1. 변수와 자료형(기초): 데이터를 메모리(RAM)에 잠깐 저장하는 법. 프로그램이 꺼지면 데이터도 사라진다.
step2. 파일 입출력 및 DB(중급): 데이터를 영구적으로 저장하기 위해 하드디스크에 기록한다. 하지만 하드디스크는 메모리에 비해 너무 느리다.
step3. 딕셔너리(dict)의 확장(연결고리): 파이썬의 딕셔너리는 '키-값'쌍으로 데이터를 아주 빠르게 찾는다."Redis"는 이 딕셔너리를 내 컴퓨터 안이 아니라 '네트워크 저 너머 서버'에 통째로 옮겨놓은 것.
"Redis"의 주소: 여러 사람이 동시에 사용하는 웹 서비스에서, 하드디스크(DB)까지 가기엔 너무 느리니까 메모리에 딕셔너리 형태로 데이터를 미리 올려두고 빛의 속도로 꺼내 쓰는 것.

--> 딕셔너리를 배울때 Redis의 개념도 염두에 두자!

[기초] 일반적인 디셔너리 예시
user_cache = {
"user_123":{"name":"alice", "level":50},
"user_456":{"name":"Bob", "level":30}
}
데이터를 찾는 과정
user_id="user_123"
if user_id in user cache:
print(f"데이터 발견:{user_cache[user_id]['name']}")

--> Redis를 쓸때는 위 코드의 User_cache가 내 컴퓨터가 아니라 외부 메모리 서버에 저장되어 있다고 상상하자.
--> 디지털논리회로 과목에서 "BUS"라는 용어가 나오면, "데이터가 이동하는 통로가 좁구나"를 느끼며 왜 데이터를 뭉텅이로 옮겨야 하는지 Redis의 효율성과 함께 이해해보자.

[Loop Tiling]에 관하여: 어떻게 하면 더 빨리 계산할까. "효율"의 문제

step1. 제어문- for 반복문(기초): 데이터를 하나하나 순서대로 처리하는 법.
step2. 중첩 반복문(기초/중급): 구구단처럼 for문 안에 for문을 쓰는법. 행렬(Matrix) 계산의 기본이죠.
step3. CPU 캐시 메모리의 이해(연결고리): CPU는 일할 때 RAM에서 데이터를 가져오는데, 한 번 가져올 때 근처에 있는 데이터도 뭉텅이로 가져와서 '캐시'라는 아주 좁지만 빠른 공간에 넣어둔다. 만약 우리가 큰 행렬을 계산할 때 너무 멀리 있는 데이터를 자꾸 찾으면, CPU는 캐시를 비우고 다시 RAM으로 가야 해서 느려진다.
"Loop Tiling"의 주소: 데이터를 한 번에 다 처리하려 하지말고, CPU 캐시 크기에 딱 맞는 '타일(조각)' 단위로 쪼개서 그 안에서 계산을 끝내버리는 기법. "왔다 갔다 하는 시간"을 줄이는 최적화.

--> 데이터가 많아지면 Looptiling 같은 방법으로 쪼개서 처리해야겠구나!

[기초] 일반적인 중첩 반복문(전체 다돌기)
date=list(range(100))
for i in range(100):
pass
[심화] 루프 타이링의 논리(10개씩 쪼개서 돌기)
tile_size=10
for i in range(0, 100, tile_size):
for j in range(i, i+tile_size):
pass

--> 디지털논리회로 과목에서 "SRAM, DRAM"이라는 용어가 나온다면, "SRAM(캐시)이 왜 더 빠를까?"를 생각하며 Loop Tiling을 떠올려보자.

용어들이 후두둑 떨어졌으니

용어들이 서말이나 나왔으니 이제 기초과목들을 공부하면서 꿰어야겠다.

0개의 댓글