전체 글 70

옵티마이저(Optimizer)

SQL공부를 해보려고 이것저것 찾아보던 중에, SQL을 제대로 이해하려면 옵티마이저가 어떻게 동작하는지 먼저 알아두는 것이 좋다는 영상을 보았다. 옵티마이저는 SQL을 데이터가 어떻게 처리할 지 결정해주는 역할을 한다고 한다. 뭔지 잘 모르겠지만, 일단 정리. 1. 개요옵티마이저(Optimizer)란 주어진 목적 함수(Objective Function)를 최소화하거나 최대화하기 위해 변수(파라미터)를 체계적으로 조정하는 알고리즘 또는 시스템을 말합니다. 이 개념은 데이터베이스, 머신러닝, 컴파일러, 수학적 최적화, 운영 연구(Operations Research) 등 거의 모든 컴퓨터 과학 및 공학 분야에서 핵심적인 역할을 합니다.2. 데이터베이스 옵티마이저 (Query Optimizer)2.1. 정의와 ..

💡 Tech Note 16:21:32

[Shortcut] 이클립스(Eclipse)

1. 코드 편집 단축키단축키기능Ctrl + D한 줄 삭제Ctrl + Alt + ↑(↓)한 줄(블럭) 복사Alt + ↑(↓)현재 줄을 위(아래) 줄과 바꾸기Ctrl + Shift + X대문자로 변환Ctrl + Shift + Y소문자로 변환Alt + Shift + R같은 변수명 전체 일괄 변경 (Rename)Ctrl + I들여쓰기 자동 수정Ctrl + Shift + F코드 포맷팅 (문법 템플릿에 맞게 정렬)2. 주석 처리 단축키단축키기능Ctrl + / 또는 Ctrl + 7한 줄 주석 처리/해제 (//)Ctrl + Shift + /블록 주석 처리 (/* */)Ctrl + Shift + \블록 주석 해제3. 블록 선택 단축키단축키기능Shift + End현재 커서부터 줄 끝까지 블록 선택Shift + Home현재..

💡 Tech Note 2026.04.13

MySQL 명령어

📌 목차1. 데이터베이스 관리2. 테이블 관리3. 데이터 삽입 (INSERT)4. 데이터 조회 (SELECT)5. 조인 (JOIN)6. 데이터 수정 (UPDATE)7. 데이터 삭제 (DELETE)8. 인덱스 (INDEX)9. 그룹화 & 집계10. 뷰 (VIEW)11. 저장 프로시저 (Stored Procedure)12. 트랜잭션 (Transaction)13. 백업 & 복원14. 사용자 관리 & 권한15. 상태 확인 & 시스템1. 데이터베이스 관리-- 현재 서버에 존재하는 모든 데이터베이스 목록 조회SHOW DATABASES;-- 새 데이터베이스 생성CREATE DATABASE mydb;-- 사용할 데이터베이스 선택 (이후 쿼리는 해당 DB에서 실행됨)USE mydb;-- 데이터베이스 삭제 (IF EXI..

💡 Tech Note 2026.04.13

Git 명령어

1. 기본 명령어기본 업로드 흐름git add .git commit -m "커밋 메시지"git push origin main상태 확인 및 파일 생성명령어설명git status현재 작업 디렉토리 상태 확인touch README.md빈 README.md 파일 생성add 취소git reset # 전체 add 취소git reset 파일명 # 특정 파일만 add 취소파일 단일 업로드git add src/App.javagit commit -m "Update App.java"git push origin main2. 커밋 관리명령어설명git commit --amend -m "수정 메시지"가장 최근 커밋 메시지 수정git log --oneline최근 커밋 목록을 한 줄씩 간결하게 확인..

💡 Tech Note 2026.04.13

IntelliJ IDEA 단축키 완벽 가이드: 생산성을 2배로 높이는 필수 단축키 모음

1. 🔍 검색 / 이동 단축키기능설명Ctrl + Shift + AFind ActionIDE의 모든 액션을 이름으로 검색. 단축키가 기억나지 않을 때 만능 열쇠 역할Shift + ShiftSearch Everywhere클래스, 파일, 설정, 액션 등 모든 것을 한 번에 검색. 가장 먼저 익혀야 할 단축키Ctrl + N클래스 검색프로젝트 내 클래스명으로 빠르게 검색. CamelCase 약어 검색도 지원 (예: HWC → HelloWorldController)Ctrl + Shift + N파일 검색클래스뿐 아니라 모든 파일(설정 파일, 리소스 등)을 이름으로 검색Ctrl + F12파일 구조 보기현재 파일의 메서드, 필드 목록을 한눈에 표시. 긴 클래스 내에서 원하는 메서드로 빠르게 이동할 때 유용Ctrl + ..

💡 Tech Note 2026.04.13

[Shortcut] 노션(Notion)

1. 블록 편집 단축키단축키기능Ctrl + E선택한 텍스트를 인라인 코드로 표시Ctrl + D현재 블록을 복제Ctrl + X현재 블록을 삭제(잘라내기)Ctrl + L현재 페이지의 URL 복사2. 블록 생성 단축키 (Ctrl + Shift 조합)단축키기능Ctrl + Shift + 0일반 텍스트 블록 생성Ctrl + Shift + 1제목1 (H1) 생성Ctrl + Shift + 2제목2 (H2) 생성Ctrl + Shift + 3제목3 (H3) 생성Ctrl + Shift + 4할 일 목록 (체크박스) 생성Ctrl + Shift + 5글머리 기호 목록 생성Ctrl + Shift + 6숫자 매기기 목록 생성Ctrl + Shift + 7토글 목록 생성Ctrl + Shift + 8코드 블록 생성3. 텍스트 색상 변경..

💡 Tech Note 2026.04.13

[Shortcut] PPT

1. 📄 슬라이드 관리슬라이드를 추가, 복제, 순서 변경 등 슬라이드 단위 작업 단축키단축키기능설명Ctrl + M새 슬라이드 삽입현재 슬라이드 뒤에 새 슬라이드를 바로 추가Ctrl + D슬라이드 복제현재 슬라이드를 그대로 복사하여 바로 뒤에 붙여넣기슬라이드 선택 + Enter뒷장에 슬라이드 추가슬라이드 패널에서 선택 후 Enter를 누르면 뒤에 새 슬라이드 추가Ctrl + Shift + ↑슬라이드 맨 앞으로 이동선택한 슬라이드의 순서를 맨 앞으로 보내기Ctrl + Shift + ↓슬라이드 맨 뒤로 이동선택한 슬라이드의 순서를 맨 뒤로 보내기Page Down다음 슬라이드로 이동다음 슬라이드로 빠르게 넘어가기Page Up이전 슬라이드로 이동이전 슬라이드로 빠르게 돌아가기Alt + H, L슬라이드 레이아웃 ..

💡 Tech Note 2026.04.13

Global Gitignore 설정 가이드

1. Global Gitignore 개요내 컴퓨터의 모든 Git 저장소에 공통 적용되는 무시 규칙 파일. 플러그인이나 서드파티 도구가 아닌, Git의 공식 기능. OS나 IDE가 자동 생성하는 파일을 개인 환경 수준에서 처리하기 위한 표준 방법2. 필요성문제 상황프로젝트 .gitignore에 프로젝트 규칙(node_modules/, dist/)과 개인 환경 규칙(.DS_Store, .idea/)이 혼재하는 경우가 많음# Nodenode_modules/dist/# Mac.DS_Store._*.Spotlight-V100# WindowsThumbs.dbDesktop.ini# JetBrains.idea/*.iml# VS Code.vscode/# Vim*.swp*.swo# Emacs*~이로 인한 문제문제설명규칙 ..

💡 Tech Note 2026.04.02

[무료 배포] Windows 포트 충돌 해결 도구 PortManager (EADDRINUSE 원클릭 해결)

Windows에서 포트 충돌 에러(EADDRINUSE)를 겪을 때 netstat -ano 명령어 없이 GUI로 포트를 확인하고 프로세스를 종료할 수 있는 무료 데스크톱 앱, PortManager를 소개합니다. 설치 없이 exe 하나로 실행할 수 있으며, Electron 기반으로 직접 개발했습니다.더보기EADDRINUSE란?EADDRINUSE는 "Error: Address Already In Use"의 약자로, 네트워크 프로그래밍에서 발생하는 에러 코드입니다.쉽게 말하면내가 사용하려는 포트 번호를 다른 프로세스가 이미 점유하고 있을 때 발생하는 에러입니다.예를 들어 설명하면 이렇습니다.카페에 콘센트 자리가 하나 있는데, 이미 누가 앉아 있으면 내가 거기 앉을 수 없는 것과 같습니다. 포트도 마찬가지로, 하..

📦 Assets 2026.03.26

🌐HTTP Status Code

HTTP 상태 코드는 RFC 9110 (HTTP Semantics)에 정의된 3자리 정수 응답 코드로, 서버가 클라이언트의 요청을 어떻게 처리했는지를 나타낸다.상태 코드의 첫 번째 자릿수는 응답의 클래스(class) 를 구분하며, 총 5개의 클래스로 나뉜다.Class범위의미1xx100–199Informational — 요청 수신, 처리 계속2xx200–299Successful — 요청 정상 처리3xx300–399Redirection — 추가 동작 필요4xx400–499Client Error — 클라이언트 측 오류5xx500–599Server Error — 서버 측 오류 1. 1xx — InformationalCodeReason Phrase설명100Continue클라이언트가 Expect: 100-conti..

💡 Tech Note 2026.03.23