목록전체 글 (287)
개발자는 기록이 답이다
InnoDB는 MySQL에서 사용할 수 있는 스토리지 엔진 중 거의 유일하게 레코드 기반의 잠금을 제공한다. 그 때문에 높은 동시성 처리가 가능하고 안정적이며 성능이 뛰어나다. 1. 프라이머리 키(PK)에 의한 클러스터링 엔진 InnoDB MyISAM 클러스터링 키 지원 지원 미지원 물리적 주소 사용 프라이머리 키 값 레코드의 주소 값 InnoDB 스토리지 엔진 모든 테이블은 기본적으로 프라이머리 키를 기준으로 클러스터링되어 저장된다. 즉, 프라이머리 키 값의 순서대로 디스크에 저장된다는 뜻이다. 모든 세컨더리 인덱스는 레코드의 주소 대신 프라이머리 키의 값을 논리적인 주소로 사용한다. 프라이머리 키가 클러스터링 인덱스이기 때문에 프라이머리 키를 이용한 레인지 스캔은 상당히 빨리 처리 될 수 있다. 결과..
1. 쿼리파서 사용자 요청으로 들오온 쿼리 문장을 토큰(MySQL이 인식할 수 있는 최소 단위의 어휘나 기호)으로 분리해 트리 형태의 구조로 만들어내는 작업. 쿼리 문장의 기본 문법 오류는 이 과정에서 발견되고 사용자에게 오류 메세지를 전달한다. 2. 전처리기 파서과정에서 만들어진 파서 트리를 기반으로 쿼리 문장에서 구조적인 문제점이 있는지 확인한다. 각 토큰을 테이블 이름이나 칼럼 이름, 또는 내장 함수와 같은 개체를 매핑해 해당 객체의 존재 여부와 객체의 접근권한 등을 확인하는 작업을 수행한다 실제 존재하지 않거나 권한 상 사용할 수 없는 개체의 토큰은 이 단계에서 걸러진다. 3. 옵티마이저 사용자의 요청으로 드러온 쿼리 문장을 저렴한 비용으로 가장 빠르게 처리할지 결정하는 역할 DBMS의 두뇌에 해..
테스트 코드도 코드이기 때문에 중복되는 코드를 리팩토링을 하려고 합니다. 리팩토링하면서 발견한 점과 리마인드해야할 사항에 대해서 정리하고자 합니다 테스트 클래스에 @어노테이션은 1개만 존재할 수 있습니다. 상속을 단순히 재사용하기 위해 사용하면 많은 문제가 발생합니다. 현재 프로젝트에서 SecurityTest랑 MemberRepositoryTest에서 각 단일 테스트 전에 @BeforeEach어노테이션을 사용하여 Member를 데이터베이스에 저장하는 코드가 중복되어 사용되고 있습니다. 이 코드는 유저 중복을 확인하거나 로그인이나 로그인 실패 테스트를 위해서 사용하기 위해 작성되었습니다. 다른 테스트코드에서도 중복되는 부분을 별도의 상위 클래스를 상속 받도록 구현했기 때문에, 이번 상황도 SetupMemb..
프로젝트를 진행하면서 NCP 환경에서 Jenkins Pipeline을 이용해서 CICD를 구축했습니다. 우선 저는 비전공자이기 때문에 CICD과정에서 사용하는 리눅스가 너무 어렵게 느껴졌습니다. 왜 어떤 환경에서는 yum명령어가 되고 어떤 환경에서는 apt-get명령어를 사용해야하는지 이해가 안갔습니다. 그래서 멘토링 과정중에 리눅스 마스터 2급 자격증을 취득했고, 저와 같은 상황이신 분들은 리눅스 마스터 2급을 공부해서 기본기를 익히면 좋을 것 같다는 생각이 듭니다! 1. off-coupon off-coupon은 네고왕 선착순 쿠폰 이벤트를 모티브로 개발한 프로젝트입니다. https://github.com/f-lab-edu/off-coupon?tab=readme-ov-file GitHub - f-lab..