반응형

코딩:개발일지 34

단위 테스트(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

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

ORM(Object-Relational Mapping)은 꼭 써야 하나요?

ORM이 뭐지?객체와 관계형 데이터베이스를 연결해주는 기술코드의 객체와 DB의 테이블을 매핑해줌Java의 Hibernate, JavaScript의 Sequelize, Python의 SQLAlchemy 등이 대표적ORM의 장점SQL 문법 몰라도 DB 조작 가능객체지향적으로 데이터 다룰 수 있음코드 재사용성 높아짐DB 변경시 코드 수정 최소화 (MySQL → PostgreSQL 등)SQL 인젝션 같은 보안 위험 줄여줌ORM의 단점복잡한 쿼리는 직접 SQL 쓰는 게 더 효율적일 때 있음성능 이슈 발생 가능 (N+1 문제 등)학습 곡선 존재꼭 써야 할까?프로젝트 규모/성격에 따라 다름소규모/중규모 프로젝트: ORM 써서 생산성 높이는 게 이득대규모/고성능 필요한 프로젝트: Raw SQL과 혼용하는 게 좋음회사/..

코딩:개발일지 2025.05.21

Flutter, Android Studio, Android SDK, cmdline-tools 관계를 Java로 쉽게 이해하기

Flutter, Android Studio, Android SDK, 그리고 cmdline-tools 사이의 관계를Java 세계에 비유해서 정리해보기 [전체 개요]Flutter는 앱을 만드는 프레임워크 (Java로 치면 Spring Framework 같은 느낌).Android Studio는 개발 도구(IDE) (Java로 치면 IntelliJ 같은 느낌. 사실 기반도 IntelliJ).Android SDK는 플랫폼 라이브러리와 도구 모음 (Java로 치면 JDK와 비슷).cmdline-tools는 JDK 안에 있는 javac, java, jarsigner 등 명령어 툴셋과 비슷한 역할.[각 요소 설명 (Java 비유 포함)]구성 요소 Flutter 세계에서 역할 Java 세계에서 비유Flutter앱을 만드..

코딩:개발일지 2025.05.14
728x90
반응형