2025/03 5
-
PIP 원래 웹 프론트를 해와서 그런지 웹이랑 비교하면 이해가 쉬운 것 같다! 📦 패키지 설치pip installnpm install / yarn add📃 의존성 저장requirements.txtpackage.json + package-lock.json🔍 패키지 저장소PyPInpmjs.com🔄 의존성 관리수동 (pip freeze)자동 (npm install 시)🧱 로컬 설치 폴더venv/lib/site-packagesnode_modules/🔄 패키지 업데이트pip install --upgradenpm update, yarn upgrade 주요 명령어 pip install 패키지명 -- 패키지 설치pip uninstall 패키지명 -- 패키지 제거pip freeze -- 현재 설치된 패키지 ..
-
가상환경다른 프로젝트랑 충돌 없이 각자 필요한 라이브러리만 설치해서 쓸 수 있게 해주는 "격리된 공간" 🐍 venvPython 가상환경Python 라이브러리만파이썬 프로젝트간단, 내장됨OS, 시스템 환경은 격리 안 됨🐍 conda환경 + 라이브러리 통합Python + 패키지 + 일부 OS libs과학, ML 프로젝트패키지 관리 쉬움, 빠름무거움, PyPI와 호환성 이슈 있음🐍 pipenv, poetry가상환경 + 의존성 관리venv 기반 + 의존성 고정파이썬 프로젝트버전 관리 깔끔학습 필요🐳 DockerOS 수준 격리파일, OS, 네트워크까지 완전 격리실서버, 팀 협업, 배포완벽한 독립 환경, 재현성설정 복잡, 이미지 용량 큼 venv는 격리된 공간을 만드는 것( 컨테이너 기반 x ) 이 ..
-
SELECT OBJECT_NAME(sm.object_id) AS ProcedureName, sm.definitionFROM sys.sql_modules smJOIN sys.objects o ON sm.object_id = o.object_idWHERE sm.definition LIKE '%찾을문구%' AND o.type = 'P'; -- P = 프로시저 AND o.type IN ('FN', 'IF', 'TF'); -- 'FN' 스칼라 함수, 'IF' 인라인테이블반환 함수, 'TF' 멀티문 테이블 반환함수 AND o.type = 'V'; -- V 뷰 AND o.type = 'TR'; -- TR 트리거
-
인덱스(INDEX) 데이터베이스 테이블에서 검색 속도를 높이기 위한 구조. 책의 목차나 색인과 비슷한 개념 ➡️ 속도 차이 수십~수천 배 인덱스와 기본키(PK)의 차이점 기본 키(PK)인덱스(INDEX)목적데이터 무결성 보장 (식별자)조회 성능 향상중복 허용❌ 불가 (항상 UNIQUE)⭕ 가능 (선택 가능)NULL 허용❌ 불가⭕ 가능갯수테이블당 1개만 가능여러 개 가능자동 인덱스 생성⭕ YES (UNIQUE + CLUSTERED)⭕ 수동으로 생성삭제 시PK 제거하면 인덱스도 사라짐인덱스만 개별 삭제 가능 단점❌ 쓰기 성능 저하 → INSERT, UPDATE, DELETE 시 인덱스도 갱신됨❌ 공간 사용 → 인덱스도 저장공간 차지함❌ 너무 많으면 역효과 → 쿼리 최적화기가 잘못된 인덱스를 쓸 수도 있..
-
프로시저 Procedure 자주 사용하는 SQL 쿼리나 복잡한 비즈니스 로직을 하나의 이름으로 저장해두고 호출해서 실행 - MySQL은 웹 백엔드(PHP, Node.js 등)와 함께 쓰는 일이 많아서,로직을 DB에 넣기보단 애플리케이션 쪽에서 처리하는 경우가 많음- MsSQL에서는 비즈니스 로직을 DB에 넣는 문화가 강해서, 프로시저를 자주 활용 기본구조CREATE PROCEDURE 프로시저이름 @파라미터1 타입, @파라미터2 타입 OUTPUTASBEGIN -- SQL 로직END 프로시저 vs 함수 vs 트리거반환여러 개 가능 (OUT)1개 값없음호출 위치EXECSELECT 등 안에서이벤트 자동 실행트랜잭션OXX (제한적)복잡 로직O (조건/분기 등)제한적제한적