반응형

전체 글 134

단위 테스트(Unit Test) vs 통합 테스트(Integration Test) 차이점 정리

단위 테스트란?가장 작은 단위의 코드를 테스트보통 하나의 메서드나 클래스를 테스트외부 의존성을 Mock으로 대체빠르고 독립적TDD의 기본통합 테스트란?여러 컴포넌트가 함께 동작하는지 테스트실제 DB, API 등 외부 시스템과 연동단위 테스트보다 느림실제 환경과 비슷한 조건에서 테스트주요 차이점구분 단위 테스트 통합 테스트범위개별 메서드/클래스여러 컴포넌트속도빠름느림외부 의존성Mock 사용실제 시스템 사용격리성완전 격리부분 격리복잡도단순복잡Java 단위 테스트 예제테스트 대상 클래스public class Calculator { public int add(int a, int b) { return a + b; } public int divide(int a, int b) { ..

코딩:개발일지 2025.05.28

Redis는 어떤 상황에서 사용하는 게 좋을까?

Redis를 공부하면서 정리한 실제 사용 상황들을 정리해보았다.1. 캐싱이 필요할 때데이터베이스 부하를 줄이고 싶다면 Redis를 사용 자주 조회되는 데이터를 메모리에 저장응답 속도 10배 이상 빨라짐예: 상품 정보, 사용자 프로필 등2. 세션 관리가 필요할 때로그인 상태를 여러 서버에서 공유해야 한다면 Redis를 사용하는 것이 좋다 사용자 로그인 정보를 중앙에서 관리서버가 여러 대여도 세션 유지 가능자동 만료 설정으로 보안성 확보3. 실시간 기능을 구현할 때즉시 반응해야 하는 기능들실시간 채팅 메시지 저장게임 순위표 업데이트알림 큐 관리온라인 사용자 수 카운팅4. 임시 데이터 저장이 필요할 때잠깐 저장했다가 사라져도 되는 데이터들이메일 인증 코드 (5분 후 만료)장바구니 임시 저장API 호출 제한 카..

코딩:개발일지 2025.05.27

데이터베이스 정규화 - 어디까지 해야 할까?

정규화는, 3NF까지만 해도 90% 충분함■ 정규화 단계별 정리 (정처기에서 배운 것들을 써본다..) 1NF (제1정규형)핵심: 원자값만 저장예시: 취미: 독서,영화,음악 → 별도 테이블로 분리 실무: 무조건 지켜야 함2NF (제2정규형)핵심: 부분 함수 종속 제거쉽게: 복합키의 일부에만 의존하는 컬럼 분리실무: 대부분 자연스럽게 지켜짐3NF (제3정규형)핵심: 이행적 함수 종속 제거쉽게: A→B→C 관계를 A→B, B→C로 분리실무: 여기까지가 황금 기준BCNF (Boyce-Codd 정규형)핵심: 모든 결정자가 후보키실무: 복잡함. 특수한 경우에만 고려4NF, 5NF솔직히: 실무에서 거의 안 씀이유: 복잡도 증가 > 얻는 이익실무에서는? 3NF까지 하는 이유데이터 중복 최소화업데이트 이상 방지저장공간 ..

DB 2025.05.26

JWT vs OAuth2 정리 - 백엔드 개발자가 알아야 할 개념

■ JWT란?정의: JSON Web Token의 줄임말, 정보를 안전하게 전송하기 위한 토큰 형식구조:Header.Payload.SignatureHeader: 토큰 타입과 해싱 알고리즘Payload: 실제 데이터 (Claims)Signature: 토큰 검증용 서명특징:Self-contained (토큰 자체에 정보 포함)Stateless (서버에 상태 저장 안함)Base64로 인코딩됨만료시간 설정 가능■ OAuth2란?정의: 인증/인가를 위한 프로토콜, 제3자 앱이 사용자 대신 리소스에 접근할 수 있게 해줌주요 역할자:Resource Owner: 사용자Client: 앱Authorization Server: 인증 서버Resource Server: 리소스 서버Grant Types:Grant Type 용도 보안..

코딩:개발일지 2025.05.25

비동기 처리 정복 - 파이썬으로 배우는 async/await

비동기 처리?간단하게 설명하면: 한 작업이 끝날 때까지 기다리지 않고, 다른 작업을 동시에 진행하는 것■ 현실 예시로 이해하기카페에서 커피 주문하는 상황동기 방식 (기다리는 방식)아메리카노 주문 → 5분 기다림 → 완성라떼 주문 → 5분 기다림 → 완성프라푸치노 주문 → 5분 기다림 → 완성 → 총 15분 소요비동기 방식 (동시에 하는 방식)아메리카노, 라떼, 프라푸치노 동시 주문바리스타 3명이 동시에 제조각각 5분 후 동시에 완성 → 총 5분 소요왜 비동기를 써야 할까?프로그래밍에서는 "대기 시간"이 많다.. # 동기 방식 - 순차적으로 처리def 동기_처리(): 사용자정보 = 데이터베이스에서_가져오기() # 100ms 대기 주문내역 = 데이터베이스에서_가져오기() # 150m..

Python 2025.05.23
반응형