목록전체 글 (160)
자바칩
기능단축키 (Windows/Linux)설명정의로 이동Ctrl + B or Ctrl + Click선언 or 구현으로 점프사용처 찾기Alt + F7프로젝트 내 모든 사용 위치 검색호출 계층(Call Hierarchy)Ctrl + Alt + H누가 이걸 호출했는지 트리로 보여줌클래스 찾기Ctrl + N클래스 이름으로 바로 열기파일 찾기Ctrl + Shift + N파일 이름으로 열기심볼 찾기Ctrl + Alt + Shift + N함수/변수 등 모든 심볼 이름 검색 내가 어디서 이 메서드를 썼는지 보고 싶다 → Alt + F7전체 흐름 상 누가 누굴 호출하는지 계층으로 보고 싶다 → Ctrl + Alt + H
🧱 기본 용어 차이 정리용어설명비유Docker컨테이너 기술을 제공하는 플랫폼이미지를 빌드하고, 컨테이너를 실행함주방, 조리 도구 전체이미지 (Image)실행 가능한 애플리케이션을 패키징한 템플릿(코드 + 환경 + 설정 포함)요리법, 레시피컨테이너 (Container)이미지로부터 실행된 실제 인스턴스이미지 기반으로 메모리 위에 떠 있는 프로세스실제로 만들어진 요리🔍 상세 예시로 이해해보기🍳 1. 이미지 (Image)도커 이미지 = 애플리케이션을 실행하기 위한 모든 요소(코드, 라이브러리, 환경 등)를 포함한 불변 템플릿예: python:3.11, nginx:latest, login-server:v20250418.3.6.20📦 "이미지"는 실행되지 않는 정적 파일. docker build 로 만들고,..
⚠️주의: 이 작업은 로컬 변경 사항을 모두 날려버림 1. 원격 저장소의 최신 상태를 가져옴 (병합은 안 함)git fetch origin 2. 로컬 브랜치를 원격 브랜치와 동일하게 덮어쓰기. 변경 파일, 스테이징된 것, 커밋 안 된 것 전부 삭제됨git reset --hard origin/브랜치명 * 정말 중요한 변경사항이 있다면?reset --hard는 되돌릴 수 없기 때문에, 혹시 몰라서 백업하려면 먼저 이렇게:git stash push -m "backup-before-reset" 그 후에 reset 해도 됨.
✅ FastAPI의 장점비동기 처리 + 빠른 개발 속도 + 유연한 Python 생태계항목설명⚡ 비동기 처리async/await 기반, 수천 동시 요청에도 효율적 (Uvicorn + Starlette)🐍 빠른 개발Python 기반, 생산성 최고🔧 유연한 구조Flask처럼 가볍고 자유로운 구조 (무겁지 않음)📚 자동 문서화Swagger + Pydantic 타입으로 API 문서 자동화💡 AI/ML 친화Python 생태계 덕분에 AI/데이터와 연동하기 쉬움❌ FastAPI의 한계항목이유❗ 트랜잭션 자동 제어없음. 수동으로 직접 관리해야 함❗ 선언적 트랜잭션 불가@Transactional 같은 건 없음❗ 대규모 엔터프라이즈 통합AOP, JTA, JMS 같은 Java 생태계 통합 부족❗ 구조 표준화 부족자유..
⚡ 핵심 차이 요약: "비동기 vs 멀티스레드" 개념비동기 (Asynchronous)멀티 스레드 (Multi-threading)기본 철학작업을 기다리지 않고 "예약"하고, 다른 일 함각 작업을 별도 스레드에서 동시에 실행구현 예Python async/await, JavaScript PromiseJava Thread, ExecutorService, @Async자원 효율✅ 매우 효율적 (I/O 작업에서 유리)❌ 스레드 수가 많아지면 자원 부담 ↑사용 예시웹 요청, DB 쿼리 기다릴 때CPU 연산, 블로킹 작업 병렬 처리모델코루틴 기반 (cooperative)병렬 처리 기반 (preemptive)🧠 쉽게 말하면:▸ 비동기(async):"기다리는 동안 다른 일 좀 하자"한 개의 스레드 안에서 여러 작업을 순차..
Python FastAPI vs Java Spring Boot의 동시성 모델 차이를 짚고 들어가자.Spring Boot에서도 비동기 처리(동시성)는 가능한데, 약간의 설정 + 구조 차이가 있다.✅ Spring Boot에서 동시성 처리 방법1. 기본 구조: @RestController + 비동기 서비스 (@Async)Spring은 기본적으로 스레드 기반 동시성 모델이다.비동기를 하려면 @Async를 써서 새로운 스레드에서 처리하게 할 수 있다.📌 예시: Spring Boot에서 @Async 기반 비동기 API // 1. 비동기 서비스 정의@Servicepublic class OperationRecordService { @Async // 비동기 실행 public CompletableFuture..
async def + await 구조를 잘 쓰고 있다면,FastAPI는 동시성을 아주 잘 처리한다.즉, 여러 클라이언트가 동시에 요청해도 차례차례 막히지 않고 병렬 처리됨 (진짜 동시 실행은 아님 → 비동기 cooperative 방식임).🔍 왜 async + await 구조가 동시성에 강한가?📌 기본 원리:Python의 asyncio 기반 구조는 non-blocking I/O를 전제로 함await 키워드가 붙은 I/O 작업(MongoDB, HTTP 등)은 I/O가 끝나는 동안 다른 작업으로 컨텍스트를 넘김즉, 하나의 요청이 DB 응답을 기다리는 동안 다른 요청을 처리할 수 있음✅ 동시성 보장되는 이유@router.get("/records")async def get_all_records(...): ..
RDBMS (관계형 DB): 데이터를 테이블(table) 단위로 관리NoSQL (MongoDB 등): 데이터를 컬렉션(collection) 단위로 관리RDBMS (ex. MySQL) 용어NoSQL (ex.MongoDB) 용어테이블 (Table)컬렉션 (Collection)행 (Row)문서 (Document)열 (Column)필드 (Field) MongoDB에서는 컬렉션 안에 여러 개의 문서(document)가 JSON(BSON) 형태로 저장됨테이블과 비슷하지만, 각 문서의 구조가 유동적일 수 있다는 것이 큰 차이점