분류 전체보기131 5. SQL문 튜닝 연습-(2) 1. 인덱스를 걸었는데도 인덱스가 작동하지 않는 경우 - 1(id,name,age 컬럼 테이블에 name에 인덱스 걸고, 100만개의 더미 데이터 있는경우)EXPLAIN SELECT * FROM users ORDER BY name DESC;빨간부분 밑에는 인덱스 생성 안하고 조회, 위에부분은 name에 인덱스 생성후 조회한건데 차이 안나고 같다. 📌 왜 인덱스를 무시하고 풀 테이블 스캔할까?이유:→ 옵티마이저가 인덱스를 사용하는 것이 오히려 비효율적이라고 판단했기 때문즉, 넓은 범위의 데이터를 조회할 때는 인덱스를 활용하는 것이 비효율적이라고 판단한다. 인덱스를 활용하지 않고 풀 테이블 스캔으로 데이터를 찾을 때 훨씬 효율적이라고 판단한다.굳이 인덱스를 거쳤다가 각 원래 테이블의 데이터를 일일이 하나.. 2025. 3. 18. 4. SQL문 튜닝 연습-(1) 1. 한 번에 너무 많은 데이터를 조회하는 SQL문 튜닝하기(id, name, age 컬럼으로 구성된 테이블이며, 인덱스 설정 안하고, 100만 개의 더미 데이터가 존재하는 상황)SELECT * FROM users;100만개의 모든 데이터 조회시 대략 500~600ms SELECT * FROM users LIMIT 10;이번엔 10개의 데이터 조회(LIMIT 10) 해보니 대략 20ms 왜 데이터 개수 줄이는 게 중요할까?실제 페이스북, 인스타그램 같은 서비스들을 보면,한 번에 모든 게시글 데이터를 불러오지 않는다.사용자가 스크롤할 때마다 필요한 데이터만 조금씩 불러오는 방식을 쓴다.다른 커뮤니티 서비스들에서도 페이지네이션을 적용해, 일부 데이터만 조회하려고 한다.이는 이유가 분명하다.→ 조회하는 데이터.. 2025. 3. 17. 3. 실행계획(EXPLAIN) 1.실행 계획 (Execution Plan)이란?SQL 쿼리를 실행하면 데이터베이스가 내부적으로 어떤 방식으로 쿼리를 처리할지 결정한다.바로 이 처리 방식을 미리 계획한 것이 실행 계획 (Execution Plan)이다.실행 계획을 보면:DB가 어떤 방식으로 데이터를 조회할지인덱스를 사용할지, 테이블 전체를 스캔할지얼마나 많은 데이터를 접근하는지이 실행 계획을 통해 쿼리 성능을 점검하고, 비효율적인 부분을 발견해 쿼리를 튜닝할 수 있다. 실행계획 확인하는 방법# 실행 계획 조회하기EXPLAIN [SQL문]# 실행 계획에 대한 자세한 정보 조회하기EXPLAIN ANALYZE [SQL문] 예시로 해보면EXPLAIN SELECT * FROM usersWHERE age = 23; id실행 순서. 복잡한 쿼리에.. 2025. 3. 17. 2.인덱스 실전,멀티컬럼 인덱스 개념,실전 1. MySQL 인덱스 적용 실험: 100만 개 데이터에서 검색 속도 비교MySQL에서 100만 개의 더미 데이터를 생성한 후, 특정 값을 검색하는 경우 인덱스 적용 전후의 성능 차이를 실험해본다. (1) 테이블 생성DROP TABLE IF EXISTS users; # 기존 테이블 삭제CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), age INT); (2) 100만개의 랜덤 데이터 삽입이제 WITH RECURSIVE를 활용하여 1부터 100만까지 숫자를 생성한 후, 이를 기반으로 name과 age 데이터를 만들어 삽입한다.-- 높은 재귀(반복) 횟수를 허용하도록 설정-- (아래에서 생성할 더미 데이터의 .. 2025. 3. 12. 1.MySQL 성능 최적화에 대해,인덱스 개념 1. DB 성능 개선 방법과 SQL 튜닝의 중요성DB 성능이 저하될 때, 이를 개선하는 방법은 다양하다. 대표적인 해결책으로는 다음과 같은 방법이 있다.SQL 튜닝 – 비효율적인 SQL을 최적화캐싱 서버 활용 – Redis 등 캐시를 사용하여 DB 부하 감소레플리케이션 (Master-Slave 구조) – 읽기 부하를 여러 서버로 분산샤딩 (Sharding) – 데이터를 여러 DB에 나눠서 저장하여 부하 분산스케일업 – CPU, 메모리, SSD 등의 하드웨어 업그레이드이처럼 여러 가지 방법이 있지만, SQL 튜닝을 가장 먼저 고려해야 하는 이유는 다음과 같다.2. SQL 튜닝을 우선 고려해야 하는 이유추가적인 시스템 구축 없이 즉시 적용 가능 캐싱 서버나 레플리케이션, 샤딩 등을 도입하면 추가적인 인프라.. 2025. 3. 11. 이력서/포폴 강의 - 이력샘플 정리 📌 이력서 샘플1 분석 및 피드백📝 첫 번째 페이지 (레벨1 수준의 구현만 적은 경우)업무내용이 너무 단순하여 개발 실력이 뛰어나 보이지 않음.면접관 입장에서 차별성이 없고, 강점이 보이지 않으면 바로 디음 페이지로 넘김.📝 두 번째 페이지 (기술 경험 부분이 부족한 경우)기술 경험이 그나마 딴내용에 비해 괜찮으나 추상적이거나 결과 위주로만 적혀 있음.📌 JWT 관련 내용JWT 토큰 방식을 왜 선택했는지 설명이 없음.JWT 작동 원리, Redis를 활용한 리프레시 토큰 관리 이유 등을 추가해야 한다.📌 비관적 락 관련 내용단순한 결과만 적혀 있어, 면접관이 지원자가 개념을 제대로 이해했는지 알기 어려움.비관적 락을 어떤 상황에서 적용했고, 왜 사용했는지 설명해야 한다.📌 성능 개선 관련 내용어.. 2025. 3. 4. 이력서/포트폴리오 강의 정리 이력서 및 취업 전략 정리개발실력의 레벨1. 신입은 성장 가능성을 보고 뽑나?과거에는 신입을 성장 가능성을 보고 채용했지만, 요즘은 경기가 어려워지고 실력 있는 신입들이 많아지면서 회사들은 신입 교육에 시간을 들이는 것을 꺼린다.→ 즉, 신입이라도 바로 실무에 투입될 수 있는 역량이 중요하며, 경력직을 선호하는 분위기가 강해졌다.2. 가독성 좋은 이력서가 더 중요할까?✔ 가독성이 좋으면 당연히 좋지만, 이력서에서 가장 중요한 것은 개발 실력이다.✔ "답정너 이론" 적용 → 회사가 원하는 방향에 맞춰 이력서를 작성해야 한다.✔ 예시:소개팅에서 내가 좋아하는 음식만 고를까? vs 상대의 취향을 고려할까?이력서도 마찬가지로 회사에서 원하는 내용을 중심으로 작성해야 한다.3. 답정너 이론을 지키는 실전 지침지원.. 2025. 2. 27. FFMPEG 윈도우 설치 방법 먼저 공식 사이트 들어가서 순서대로 하고 다운로드 받는다.https://www.ffmpeg.org/ 이후 원하는 위치에 압축을 풀고 bin 의 경로를 복사한다. 시스템 환경 변수 편집 검색후 들어가서 환경변수 클릭후 편집을 누른다. 이후 새로 만들기 클릭후 아까 ffmpeg의 bin 경로 복사한거 넣어주면 된다. 2025. 2. 6. Flask에서 celery이용한 비동기 처리 실습 이전에는 간단한 예시로해서 백그라운드 작업중 DB 사용 이런게 없어서 컨텍스트 개념 사용 안하니 문제없었다.그러나 이제 실제 API에 적용해보려면 컨텍스트에 설정된 DB 객체등 가져다 사용해야해서 문제들이 일어났다.1. Flask vs Celery 컨텍스트일단 컨텍스트는 애플리케이션이 요청을 처리하는 동안 현재 작업과 관련된 데이터(예: 설정, 데이터베이스 연결, 사용자 정보 등)를 저장하고 관리하는 공간이다. Flask는 요청 들어오면 자체 컨텍스트를 생성하고 응답하면 컨텍스트가 사라지니, Celery는 Flask와는 별도로 Celery 전용 프로세스에서 백그라운드 작업을 처리하니 Celery 작업에서도 Celery 전용 컨텍스트가 필요하다. 즉,별도의 프로세스에서 celery가 작업하니 Flask의.. 2025. 1. 13. 이전 1 2 3 4 ··· 15 다음