본문 바로가기

분류 전체보기179

CS공부 ) 컴퓨터 아키텍처 컴퓨터 시스템에서 캐시(Cache)의 역할과 작동 원리에 대해 설명해 주세요.역할:속도 향상: 자주 사용되는 데이터를 캐시에 저장하여 CPU가 직접 빠르게 접근할 수 있도록 합니다.불필요한 대기 시간 감소: 데이터를 메인 메모리에서 직접 불러오는 대신 캐시에서 빠르게 가져와 대기 시간을 줄입니다.캐시가 저장되는 프로세스:vs코드를 켜서 print("hi")를 입력했을 때1. OS가 Python 인터프리터를 RAM으로 복사한다. 2. CPU는 RAM에서 실행할 명령어(예: print("Hello, World!"))를 가져온다. 3. CPU가 연산할 때 필요한 데이터도 L1 캐시에 저장돼.예를 들어, 우리가 x = 5 + 3 같은 연산을 실행하면, 5, 3 같은 숫자도 L1 캐시에 저장되고연산 결과인 8도 .. 2025. 3. 25.
CS공부 ) 컴파일러 컴파일러와 인터프리터의 차이점은?인터프리터는 소스 코드를 실시간으로 해석하여 실행하고, 이로 인해 느린 실행 속도를 보이며, 하드웨어 리소스를 더 자주 소모합니다. 컴파일러인터프리터작동 방식전체 소스 코드를 한 번에 기계어로 변환 후 실행소스 코드를 한 줄씩 읽고 바로 실행출력 형태실행 파일 (기계어 코드)실행 결과를 즉시 출력하며 실행 파일을 생성하지 않음실행 속도실행 속도가 빠르다 (컴파일 후 실행)실행 속도가 느리다 (매번 번역하면서 실행)오류 처리컴파일 시 오류를 모두 잡고, 오류가 없으면 실행 가능실행 중에 오류가 발생하면 즉시 오류를 보고함디버깅컴파일 후 실행되므로 오류가 발생할 때까지 디버깅이 어렵다코드 실행 중 오류를 즉시 발견하고 수정할 수 있어 디버깅이 용이예시 언어C, C++, Jav.. 2025. 3. 25.
CS공부 ) 데이터베이스 설계 정규화(Normalization)란 무엇이며, 제1 정규형(1NF), 제2 정규형(2NF), 제3 정규형(3NF)은?관계형 데이터베이스에서 중요하다.  제1정규화제2정규화제3정규화목표테이블이 원자성을 만족해야 함 (각 칸에 하나의 값만 존재)부분 함수 종속 제거부분 함수 종속: composite primary key일 때 콜럼이 그중 하나의 키에만 종속될 때. 부분 함수 종속 제거 + 이행적 종속 제거 (기본 키가 아닌 컬럼 간 종속 제거)필요한 전제 조건없음제1 정규형(1NF) 만족제2 정규형(2NF) 만족해결 방법각 컬럼을 원자값(Atomic)으로 변환복합키가 있는 테이블에서 일부 키에만 종속된 컬럼을 새로운 테이블로 이동기본 키가 아닌 컬럼 간의 종속성을 분리예제한 개의 셀에 여러 개의 값이 들어가.. 2025. 3. 25.
CS공부 ) 네트워크 TCP와 UDP의 차이점과 각각의 사용 사례는? TCP(Transmission Control Protocol)UDP(User Datagram Protocol)연결 설정연결 지향적, 3-way handshake를 통해 연결을 설정 후 데이터 전송비연결형, 데이터 전송 전 연결 설정이 필요 없음전송 속도상대적으로 느리다. 왜냐하면 클라이언트에서 계속 데이터를 보내는게 아니라 서버에서 ACK와 다음 패킷 번호를 줄 때까지 기다렸다가 보내는 점과 윈도우 크기 이상은 보내지 않도록 제한하기 때문이다. 상대적으로 빠르다. 단순한 구조로 빠른 데이터 전송데이터 패킷 크기세그먼트가 크고, 각 패킷마다 헤더가 포함되어 있다 (20바이트 이상)데이터그램이 크기가 작고, 헤더 크기도 작은 편 (8바이트)흐름 제어윈도우 크기.. 2025. 3. 25.
CS공부 ) 운영체제 운영체제에서 프로세스와 스레드의 차이점은? 프로세스스레드정의실행 중인 프로그램 (RAM에서 실행)프로세스 안에서 동작하는 개념작동포토샵 프로그램을 시작하기 전까지는 "Photoshop.exe" 같은 실행 파일에 하드디스크에 코드가 저장되어 있다. 사용자가 포토샵을 키면 RAM에 로드하고 프로세스를 생성한다프로세스 안에서 여러 개의 스레드가 동작한다컨텍스트스위칭 속도프로세스는 자기만의 메모리 공간 (힙, 스택, 데이터 세그먼트 등)을 가지고 있기 때문에, 새로운 프로세스를 실행해서 컨텍스트 스위칭을 할 때 전체 프로세스 상태 (CPU 레지스터, 프로그램 카운터 등)를 저장하고 복원해야 한다. 다른 프로세스와 메모리 공유하지 않기 때문에 각 프로세스의 고유한 주소 공간을 변경 시 OS는 프로세스의 주소 공간.. 2025. 3. 24.
CS공부 ) 데이터베이스 SQL에서 조인(Join)의 종류와 각각의 특징은?SQL에서 JOIN은 두 개 이상의 테이블을 연결하여 데이터를 조회하는 기능 1. INNER JOIN아래 예에서, Categories테이블과 Products테이블을 합치는데, Products테이블에 Categories id가 포함되어있다. 그렇기 때문에 제품 테이블에 카테고리 테이블을 inner join하는 것이다. 만약 Product테이블에 Category가 적혀있지 않다면 inner join에서는 나오지 않는다. SELECT ProductID, ProductName, CategoryNameFROM ProductsINNER JOIN Categories ON Products.CategoryID = Categories.CategoryID; 2. LEFT J.. 2025. 3. 24.
CS공부 ) 자료구조와 알고리즘 배열과 연결 리스트의 차이점은? 배열연결리스트작동방식연속된 메모리 공간에 데이터를 저장각 노드는 자기 자신의 데이터와 다음 노드를 가리키는 포인터를 저장저장물리적으로 연속된 메모리 주소에 저장된다각 노드가 별도의 메모리 블록에 저장접근속도O(1) (인덱스로 직접 접근 가능)O(N) (앞에서부터 순차적으로 탐색)삽입/삭제 속도O(N) (중간에 삽입/삭제 시 요소들을 이동해야 함)O(1) (포인터만 변경하면 되므로 빠름)검색 속도순차 검색(Linear Search, O(N)) - 첫 번째 원소부터 끝까지 하나씩 비교하며 찾음이진 탐색(Binary Search, O(log N)) - 가운데 값을 기준으로 반씩 줄여가며 검색처음부터 끝까지 하나씩 확인 O(N) (순차 검색만 가능!)메모리 효율성추가적인 포인터 .. 2025. 3. 24.
플러터 키보드 안나올 때 command + Shift + k 2025. 3. 9.
🚀 AI 시대에 살아남는 개발자가 되려면? 아래는 공부계획! 질문복잡한 문제 해결, 시스템 설계, AI 활용 능력이 있는개발자가 되기 위해서 뭐부터 공부해야돼? ChatGPT의 말:🚀 AI 시대에 살아남는 개발자가 되려면?복잡한 문제 해결, 시스템 설계, AI 활용 능력을 갖춘 개발자가 되기 위해 공부해야 할 핵심 스킬과 학습 순서를 정리해볼게요. 🔹 1. 기본기 탄탄하게 다지기 (필수)✅ 컴퓨터 사이언스 기초자료구조 & 알고리즘운영체제(OS)네트워크✅ 프로그래밍 언어Python (AI & 데이터 분석)Go / Rust (백엔드 & 시스템 프로그래밍)C++ (고성능 프로그래밍, 알고리즘 문제 해결)✅ 💡 실천 방법:👉🏻 한 가지 언어를 깊이 공부하고, 2~3개 정도 기본 개념 익혀두기. 🔹 2. 시스템 설계 & 백엔드 아키텍처✅ 대규모.. 2025. 2. 25.
파이썬 자동완성을 위해 설치해야할 extension 2025. 2. 19.
장고에서 model생성 시 데이터베이스 인덱스를 추가하는 방법 db_index=True만 붙이면 된다. 그리고 마이그레이션!from django.db import modelsfrom settingapp.models import Camera, DetectModelclass Item(models.Model): camera = models.ForeignKey(Camera, to_field='id', on_delete=models.DO_NOTHING, null=True) start_timestamp = models.BigIntegerField(default=None, null=True, db_index=True) class Meta: db_table = 'item' 2025. 2. 19.
for문에서 짜르는 방법 data_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]batch_size = 3for i in range(0, len(data_list), batch_size): batch = data_list[i:i+batch_size] print(batch) 2025. 2. 4.
MongoDB for VS Code 써서 VS Code에서 몽고db연결하기 mongodb://유저네임(ex: admin):비밀번호(ex: 1234)@localhost:27017 2025. 1. 31.
curl로 다운받고 unzip하기 curl다운:curl -L -o /workspace/data/dukemtmcreid.zip https://www.kaggle.com/api/v1/datasets/download/whurobin/dukemtmcreid unzip: python3 -c "import zipfilewith zipfile.ZipFile('/workspace/data/dukemtmcreid.zip', 'r') as zip_ref:    zip_ref.extractall('/workspace/data/')" 2025. 1. 24.
장고에서 아무리 로그인해도 user로그인이 안먹힌다 settings.py에 이거 선언을 안해서 그럼 -->AUTH_USER_MODEL = 'settingapp.User' 2025. 1. 20.
ai에 대하여 3월 모평 6월 모평 9월 모평 점수가 60 89 90이면 대충 이었을 때 y=wx+b 라는 일차함수가 만들어진다. 여기서 w는 가중치라고 부르고 b는 편차라고 부른다. 대충 그었을 때 어떤 기울기가 가장 가깝다는 어떻게 찾을까?일차함수의 선에서 모평 점수와의 거리가 얼마나 되는지 그래프를 그어보면 2차 함수가 나온다.  그중 가장 가까운 기울기는 편차-기울기 그래프의 기울기가 0일때를 가르킨다. config는 model의 껍데기이다. 인퍼런스를 위해 계산해 놓은 pth, pt라는 가중치는 체크포인트라고 부른다. 무수히 많은 w와 b가 저장 되어있다.  data_root = 'data/kinetics600/videos_train' # 훈련 데이터_데이터 경로data_root_val = 'data/kine.. 2024. 12. 12.
mmaction의 Dockerfile설정하는 방법(docker-compose도) DockerfileARG PYTORCH="1.8.1"ARG CUDA="10.2" ARG CUDNN="7"#부터FROM nvcr.io/nvidia/ai-workbench/python-cuda120:1.0.3# Python 패키지 업데이트 및 PyTorch 설치RUN pip install pip --upgradeRUN pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118#까지ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0+PTX"ENV TORCH_NVCC_FLAGS="-Xfatbin -compress-all"ENV CMAKE_PREFIX_PATH="$(dirname $(which.. 2024. 12. 11.
다운로드 할 파일 총 용량 알아보는 법 코드:#!/usr/bin/env bash# URL 파일 경로URL_FILE=$1# URL 파일 존재 확인if [ ! -f "$URL_FILE" ]; then echo "Error: URL file '$URL_FILE' not found." exit 1fi# 전체 파일 크기 초기화total_size=0# 각 URL에 대해 파일 크기 확인while IFS= read -r url; do if [[ -z "$url" || "$url" =~ ^# ]]; then continue fi # 파일 크기 확인 (HEAD 요청) size=$(wget --spider --server-response "$url" 2>&1 | grep -i "Content-Length" | awk .. 2024. 12. 11.
인강) 코렙 시작하기 접속: https://colab.research.google.com/drive/1B7DO2Y0bADMHt4MxIgy91LnAnrVzg9XZ Google Colab NotebookRun, share, and edit Python notebookscolab.research.google.com 파일 -> 노트열기 -> 업로드 -> yolov3_inference.ipynb 선택!런타임 -> 런타임 유형변경 누르면 GPU가 뜸 !git clone https://github.com/ultralytics/yolov3!cd yolov3;pip install -qr requirements.txt(쉘 안에서 os명령어를 쓰려면 ! 느낌표를 앞에 붙여준다)--> 이 코드 실행을 시켰더니 yolov3 폴더가 생겼다 세션다시시.. 2024. 12. 11.
kinetics 600 데이터셋 비디오 특정클래스만 다운받기 경로:https://github.com/cvdfoundation/kinetics-dataset/blob/main/k600_downloader.sh kinetics-dataset/k600_downloader.sh at main · cvdfoundation/kinetics-datasetContribute to cvdfoundation/kinetics-dataset development by creating an account on GitHub.github.com 안에 내용:#!/bin/bash# Download directories varsroot_dl="k600"root_dl_targz="k600_targz"# Make root directories[ ! -d $root_dl ] && mkdir $root.. 2024. 12. 11.
딥러닝의 평균 전처리 시간, 평균 추론 속도, 평균 후처리 시간이란? 각 시간은 영상 처리 파이프라인에서의 단계별 성능임.1. 평균 전처리 시간 (Preprocess Time)의미입력 데이터를 모델에 맞게 전처리하는 데 걸리는 시간입니다. 예를 들어, 비디오 프레임을 읽고 모델이 요구하는 형태로 변환하는 과정이 포함됩니다.TSM이 요구하는 형태는?TSM 모델은 비디오 데이터를 처리할 때 시간에 따른 프레임의 순서와 구조를 중요하게 다룹니다. 이를 위해 TSM 모델은 다음과 같은 입력 형태를 요구합니다:  입력 형태 (Shape):(Batch, Channel, Frames, Height, Width)예를 들어, (1, 3, 8, 224, 224)는 1개의 샘플, 3개의 채널 (RGB), 8개의 프레임, 224x224 해상도를 의미합니다.프레임 수:TSM 모델은 한 번의 인퍼.. 2024. 12. 11.
TSM(Temporal Shift Module) train TSM은?TSM (Temporal Shift Module) 프레임 수: 8-16 프레임속도: 30-60 FPS (실시간 가능)정확도: Kinetics-400에서 74-76%PyTorch 구현: 공식 PyTorch 구현이 제공됨.GitHub 링크: https://github.com/open-mmlab/mmaction2/blob/main/configs/recognition/tsn/README.mdONNX 호환성: 모델 구조가 간단한 2D CNN 기반으로, ONNX로 손쉽게 변환 가능.특징: 2D CNN 모델에 Temporal Shift Module을 추가하여 시간적 정보를 효율적으로 반영. 계산량이 적어 경량 디바이스에 적합.Kinetics-400 모델 트레이닝 하기python tools/train.py $.. 2024. 12. 10.
mmdetection 장점, 백본, 모델에 대한 설명 장점: 뛰어난 구현 성능효율적인 모듈config를 기반으로 구성 백본이란?백본은 이미지나 비디오 프레임에서 저수준에서 고수준까지의 특징을 추출하는 신경망 구조. 백본은 주로 합성곱 신경망 (CNN) 기반으로 설계되며, 객체 탐지 모델의 초기 단계에서 사용됨. 예를 들어, 이미지에서:색상, 모서리, 질감과 같은 저수준 특징을 먼저 추출하고,이후 사물의 형태, 윤곽, 패턴과 같은 고수준 특징을 학습합니다.대표적인 백본 모델1. ResNet (Residual Network)구조: ResNet-18, ResNet-50, ResNet-101 등 다양한 깊이의 모델특징: **잔차 연결 (Skip Connection)**을 통해 깊은 네트워크에서도 Gradient Vanishing 문제를 완화합니다.2. Mobile.. 2024. 12. 10.
mmaction2) STGCN 적용(넘어짐) 스켈레톤 모델로 넘어짐을 검출할 것이다. 관련 사이트: https://github.com/open-mmlab/mmaction2/blob/main/configs/skeleton/stgcn/README.md mmaction2/configs/skeleton/stgcn/README.md at main · open-mmlab/mmaction2OpenMMLab's Next Generation Video Understanding Toolbox and Benchmark - open-mmlab/mmaction2github.comSTGCN해석: Spatial temporal graph convolutional networks for skeleton-based action recognition Skeleton-Based: .. 2024. 12. 6.
ai 학습시킬 때 공짜로 다운받는 경로 https://www.aihub.or.kr/aihubdata/data/view.do?currMenu=&topMenu=&aihubDataSe=data&dataSetSn=71751 AI-Hub샘플 데이터 ? ※샘플데이터는 데이터의 이해를 돕기 위해 별도로 가공하여 제공하는 정보로써 원본 데이터와 차이가 있을 수 있으며, 데이터에 따라서 민감한 정보는 일부 마스킹(*) 처리가 되www.aihub.or.kr 2024. 12. 3.
413 Request Entity Too Large 에러 고치는 방법: # settings.pyDATA_UPLOAD_MAX_MEMORY_SIZE = 10485760 # 10MB (원하는 크기로 설정) nginx.confhttp { client_max_body_size 1073741824; 2024. 11. 12.
원투매니에서 발생하는 플러스원 이슈 gpt 대답:  원투매니(One-to-Many) 관계에서 발생하는 "플러스원" 이슈는 데이터베이스 쿼리에서 N+1 문제(N+1 Query Problem)로 불리며, ORM(Object-Relational Mapping)을 사용할 때 자주 발생하는 성능 관련 문제입니다.N+1 문제란?N+1 문제는 데이터베이스에서 "1개의 주요 쿼리"와 관련된 "N개의 추가 쿼리"가 불필요하게 발생하는 상황을 말합니다. 주로 1대 다 관계에서 발생하며, 데이터를 불러올 때 각 항목에 대해 추가적인 쿼리를 실행하는 방식 때문에 성능 저하가 발생합니다.N+1 문제 예시Django ORM에서 Author와 Book이 One-to-Many 관계라고 가정해보겠습니다. 하나의 Author는 여러 권의 Book을 가질 수 있습니다.py.. 2024. 10. 24.
내 맥북 CPU, 운영체제, RAM, HDD보는 방법 운영체제: Mac OSCPU : sysctl -n machdep.cpu.brand_stringRAM: system_profiler SPHardwareDataType | grep "Memory"HDD확인: df -h 2024. 10. 19.
장고 no reload로 키기 --noreload로 실행하지 않으면 두번 실행된다..!python manage.py runserver --noreload 2024. 9. 11.
flask database migrate 아래와 같음. 도커 쓸때는 4번째 줄부터. flask --app main_app.py db initflask --app main_app.py db migrateflask --app main_app.py db upgradedocker-compose -f docker-compose-web-dev.yml run backend flask --app main_app.py db migratedocker-compose -f docker-compose-web-dev.yml run backend flask --app main_app.py db upgrade 2024. 9. 3.