단위테스트(Unit test)
·
TDD
작은 코드 단위로 독립적으로 검증하는 테스트 (클래스 or 메서드)검증 속도가 빠르고, 안정적이다. 예시로 음료 여러 잔을 한번에 담는 기능을 단위테스트 해보자기능을 구현 할 때는 아직 드러나지 않은 요구 사항이 있는가 항상 고민해야한다 테스트 케이스 세분화하기1. 해피케이스 : 성공하는 케이스  cafeKiosk.add(americano,2); //해피케이스 assertThat(cafeKiosk.getBeverages().get(0)).isEqualTo(americano); assertThat(cafeKiosk.getBeverages().get(1)).isEqualTo(americano); 2. 예외케이스 : 실패하는 케이스 //예외 케이스assertThatThrownBy(()-> cafeK..
테스트는 왜 필요할까?
·
TDD
여기 기능을 가진 Production code가 있다. Production code는 계속해서 요구사항을 반영해서 기능을 확장해 나간다.만약 Production code를 사람이 계속 테스트 한다면?Production code 확장하는 만큼, 기존의 코드도 또 테스트 하게 되며, 커버 할 수 없는 영역 발생 하게된다.코드가 확장됨에 따라, 경험과 감에 의존하게 된다.시간이 오래걸리니 늦은 피드백을 받게 된다.유지보수가 어려워진다.결국 소프트웨어의 신뢰도가 하락하게 된다.   테스트 코드를 작성하지 않는다면? 변화가 생기는 매 순간마다 발생할 수 있는 모든 case를 고려해야 한다.변화가 생기는 매 순간마다 모든 팀원이 동일한 고민을 해야한다.빠르게 변화하는 소프트웨어 안정성을 보장할 수 없다. 아무렇게나..
[데이터베이스] Pagination 구현 SQL
·
Database
Pagination 의 경우 사용하는 DB에 따라 달라질 수 있다일반적으로 SQL에서 사용하는 방식은 LIMIT과 OFFSET을 사용하여 특정 범위의 레코드를 조회하는 것이다.각 페이지에 해당하는 데이터만을 가져와 효율적인 데이터 전송과 조회를 할 수 있습니다.MySQL을 기준으로 작성한 쿼리 예시SELECT * FROM UESRORDER BY created_date DESCLIMIT 10 OFFSET 0;LIMIT : 조회할 레코드 수를 지정OFFSET : 건너 뛸 레코드 수를 지정 OFFSET 0 은 첫번째 부터 시작Pagination의 한계점 과 고려사항큰 OFFSET 성능 문제 : 페이지 수가 증가할 수 록 성능 저하가 발생할 수 있습니다.인덱스 기반 Pagination 이나, 커서 기반 방식으로..
[데이터베이스] SQL 안티패턴
·
Database
SQL 안티패턴에 대해서 알아보자 전체 조회SELECT * FROM USERS -- 안티패턴SELECT ID, NAME, EMAIL FROM USERS -- 권장SELECT *는 불필요한 데이터 전송을 발생 시키고, 테이블 구조 변경 시 예기치 못한 오류가 발생할 수 있습니다. 필요한 컬럼만 명시적으로 지정해야합니다.문자열 연결로 동적 쿼리 생성-- 안티패턴name = request.getParameter("name")sql = "SELECT * FROM USER WHERE NAME = '"+name+"'"; --안티패턴-- 권장sql = "SELECT * FROM USER WHERE NAME = ?";pstmt = conn.prepareStatement(sql);pstmt.setString(1,name..
[데이터베이스]Table 용어 정리
·
Database
데이터 베이스를 공부를 하는데 용어가 너무 뒤죽 박죽이에요! 간단하게 정리해보도록 합시다!   ** 관계형 데이터 베이스 기준입니다.릴레이션 = 테이블(Table)릴레이션이란 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위다.릴레이션은 DB의 테이블 전체와 같은 개념이다.릴레이션의 특징각 릴레이션은 오직 하나의 레코드 타입만 표함한다.한 릴레이션에 포함된 튜플 사이에서는 순서가 없다.튜플들의 삽입, 삭제 등으로 인해 릴레이션은 시간에 따라 변한다.Attribute의 유일한 식별을 위해 Attribute 명칭은 유일해야 하지만, Attribute을 구성하는 값을 동일한 값이 있을 수 있다.릴레이션을 구성하는 튜플(tuple)을 유일하게 식별하기 위해 속성의 부분집합으로 키를 설정하여 튜플을 고유..
[데이터베이스]DB와 DBMS 란?
·
Database
너무 비슷한 단어 정확히 정리해보자!  데이터베이스(DB)란?‘데이터의 집합’ 이라고 할 수 있다. 우리의 카톡, 카드 내역 등의 정보가 모두 데이터베이스로 기록된다. 데이터베이스의 특징데이터 중복 최소화: 데이터를 구조화 하여 저장하고 관리하며, 중복을 최소화 한다.데이터 무결성 유지: 데이터의 정확성, 일관성을 보장하기 위해 무결성 제약 조건을 사용한다.데이터 보안성: 접근 제어와 권한 관리로 데이터 보안을 유지한다.동시성 제어: 여러 사용자가 동시에 데이터에 접근 할 수 있다.백업 및 복구: 데이터 손실에 대비해 백업과 복구 기능을 제공한다.DB의 특징을 효과적으로 관리하고 적용하기 위해 DBMS라는 시스템을 사용한다. DBMS(Database Management System) 란?데이터베이스를 관..