Laravel Test 에 관하여.. 보통 in-memory (sqlite) 디비와 같이 사용하길 권장하는것 같다. RDBMS 에 비해 상대적으로 속도면에서도 빠르고 초기 데이터베이스 셋팅을 할 필요가 없으니 편할수 있다. 근데 개인적으론 테스트디비로 sqlite을 사용했을때 이슈가 좀 있었다. 내가 경험했던 이슈는 전체 스키마에 걸쳐 인덱스명이 유니크 하지 않아 인덱스명 duplicate 오류가 발생했었다. 그리고 sqlite 에서 index명 length limit 관련해서도 에러가 났었던거 같은데 기억이 가물가물 하다 그리고 현재 재직중인 회사에서도 sqlite 를 쓰지 않고 운영 환경과 같은 mysql 을 테스트디비로 사용하고 있다. 왜냐하면 좌표(geo) 컬럼은 sqlite 에서 지원해주지 않는..
전체 글
개발을 하며 겪었던 경험, 이슈를 토대로 자료를 조사하고 느낀점을 기록합니다. 저와 비슷한 고민을 하고 비슷한 문제를 겪고 계신분들에게 도움이 됐으면 합니다.1. 개요 2. 트러블슈팅 3. 해결방안 개요 사내 백오피스 어드민 페이지에서 사용중 갑자기 csrf token mismatch 오류가 발생했다는 이슈가 있었다. 이상한점은 페이지 이동 및 검색, 모달 창 띄우기 까지는 잘 작동하는데 특정 버튼 클릭시 이슈가 발생한다는 것이다. 그리고 일정 시간이 지나도 로그아웃이 안되고 계속 로그인 상태라고 한다. 들어보니 session 과 csrf token 관련된 이슈인것 같았다. 그리고 이 이슈는 내가 담당하게 되어 그 트러블슈팅 과정을 나열해보고자 한다. 우선 클라이언트는 vue 를 사용하여 만든 SPA 웹 어드민 이고 SPA 와 통신하는 api 서버는 라라벨로 구축되어 있다. 그리고 라라벨의 경우 쿠키, 세션, cors, csrf token 등.. 기본적인 웹..
팀원이 올린 PR 에 코멘트를 남겼는데 Pending 상태 일때.. 이런 경우 나에게만 해당 코멘트가 보이고 다른 팀원들에겐 보이지 않는다. 이를 해결하기 위해선 1. Files changed 탭으로 이동 위와 같이 탭을 눌러 이동하거나 Add your review 버튼을 클릭하여 이동하면 된다. 2. Submiet review 하기
로컬 Git 리모트 저장소 변경하기 터미널을 연다. 리모트 저장소를 바꾸고자 하는 프로젝트 디렉토리로 이동 현재 연결된 리모트 저장소 확인 $ git remote -v > origin git@github.com:USERNAME/REPOSITORY.git (fetch) > origin git@github.com:USERNAME/REPOSITORY.git (push) 리모트 저장소 변경 $ git remote set-url origin https://github.com/USERNAME/REPOSITORY.git 변경사항 확인 $ git remote -v # Verify new remote URL > origin https://github.com/USERNAME/REPOSITORY.git (fetch) > o..
Axios 와 GET 그리고 query string 에 대한 조그마한 고찰 최근 Axios 를 사용하면서 조금 헷갈리는 부분이 있었다. GET 메소드의 파라미터 값에 null, undefined, 빈 배열 값이 들어있는 경우 - query string 에서 해당 key - value 자체가 누락된다. 원인은 axios 에서 query string 으로 변환하기위해 serialize 하는 과정에서 값이 null, undefined, 빈 배열 인 경우에는 query string 에서 누락이 된다. 그럼 이것이 버그일까? 아니다. 왜냐하면 query string 에서 유효한 빈값은 string 형태의 빈값인 경우를 한정하여 기능이 구현된 것 같다. 일단 axios 에선 이와 관련하여 아직도 이슈이다. 첫 이슈..
1. OAuth2(open authorization 2.0) 란? 2. OIDC(open id connect) 란? OIDC 에 대하여 알아보니 OAuth2 기반으로 작동하는 인증 프로토콜 이다. OAuth2 기반으로 작동 한다는게 무엇인지 좀 살펴보니 작동 메커니즘은 OAuth2 와 완전 똑같고 사용자 권한을 바탕으로 특정 데이터에 접근 하지 않고 사용자 인증과 사용자 정보 조회에 관해서만 처리한다. 그래서 개인적인 생각으론 OAuth2 프로토콜을 사용자 인증 용도로만 사용하는거 같은데 굳이 이걸 또 인증 프로토콜로서 OIDC 라는 명칭을 만들었어야 했을까 라는 의문이 든다. 왜냐하면 처음 OIDC 라는 단어를 들었을때 완전 새로운 프로토콜인거 같은 느낌이 확 들었기 때문이다. 어쨌든 OIDC 에 대해..
최근 외래키에 대하여 질문을 받은적이 있다. 실무에서 잘 사용하지 않고 성능적인 이슈가 있다는건 어렴풋이 기억나는데 확신이 서지않아 정확하게 대답을 못한 일이 있었다. 오래되서 기억이 잘 안날수도 있겠지만 정확히 이해하지 않고 이때까지 관성적으로 사용한 기분이라 이번 기회에 제대로 알아봐야겠다. 내 기억 속 외래키.. 학부생 시절 관계형 데이터베이스에 대해 배울때 외래키에 대해서 배웠었고 스키마 설정시 외래키도 지정했었던걸로 기억한다. 근데 막상 실무에 투입되어보니 외래키를 다들 쓰고있지 않았다. 보통 외래키를 사용함으로 인해 데이터 정합성 문제를 해결할수 있고 이로 인해 데이터 신뢰도가 높아질수 있을 것이다. 하지만 실무에선 이 외래키를 사용함으로 인해 얻는 장점보다 단점이 더 많아 보였기 때문에 외래..
1. DB 에서 Index 란? 2. Index 의 장점 3. Index 의 단점 4. 효율적인 Index 설정 방법 1. DB 에서 Index 란? 우선 DB 에서 Index 는 DBMS 에서 조회시 탐색 속도를 높이기 위한 기술 이다. 사전에서 단어를 찾을때 찾아보기 쉽도록 일정한 순서로 나열한 목록이라고 생각하면 된다 (색인) Index 없이 데이터를 저장한다면, 데이터는 순차적으로 쌓이고 이러한 구조에서 원하는 데이터를 찾기 위해선 모든 데이터에 대하여 순차탐색(O(n))이 일어난다. 이것을 우린 풀 스캔 (FULL-SCAN) 또는 테이블 스캔(TABLE-SCAN) 이라고 부른다. 그래서 이 쌓인 데이터들을 좀더 효과적으로 조회 하기 위해 DBMS 는 특정 자료구조를 활용하여 특정 데이터를 쌓아 ..