본문 바로가기
728x90

Develop45

데이터베이스 정규화 이해하기 데이터베이스 용어 및 개념으로 정규화는 데이터베이스 설계에서 중복을 줄이고 데이터의 일관성과 무결성을 유지하기 위한 과정입니다. 이 글에서는 비정규화 된 데이터를 예시로 1NF부터 BCNF까지의 정규화 과정을 기록합니다. 목차  전제조건(시작조건) 데이터는 비정규화된 데이터 (Unnormalized Data)로 아래 표와 같습니다.  사원ID부서부서 위치프로젝트1IT서울프로젝트A, 프로젝트B2HR부산프로젝트C3IT서울프로젝트A, 프로젝트D  제 1 정규형 (1NF) 각 컬럼(필드)의 값이 원자값(Atomic Value)이어야 합니다.즉, 하나의 셀에는 하나의 값만 들어가야 합니다. 문제점 (1NF 위반)프로젝트 컬럼에 여러 값이 포함되어 있습니다(프로젝트A, 프로젝트B 등).1NF 적용 방법중첩된 데이터.. 2024. 11. 17.
pytest로 이해하는 팩토리함수 python으로 개발하면서 테스트관련 라이브러리를 여러가지를 사용했습니다.그중에서 pytest 가 가진 이점이 상당히 많다고 생각하며, 데이터 셋업과 팩토리함수의 필요성을 (JS/TS로)설명하는 것을 재밌게 봤고, 최근 pytest에 대한 장문의 글을 작성 중 인데, 내용이 길어져 그 중 일부를 사이드로 기록합니다. 목차  먼저 팩토리함수를 적용하지 않은 케이스는 다음과 같습니다. Bad Case 중복코드가 많은 경우def test_활성_사용자(): 사용자 = { "이름": "홍길동", "나이": 30, "권한": "관리자", "활성화": True, } assert 사용자["활성화"] is Truedef test_비활성_사용자(): .. 2024. 11. 16.
메시징 애플리케이션의 시스템 디자인에 관한 글을 읽고 정리 회사 프로젝트에서 기획부터 처음에 참여한 첫 프로젝트는 웹소켓을 이용한 실시간성이 보장되어야 하는 프로젝트 였습니다.백엔드에서 종종 실시간에 대한 부분은 시스템 구조상 엄청난 부분인데, 간만에 미디엄의 블로그에서 시스템디자인을 전문적으로 여러 건 다룬 글을 발견해서 기록합니다. (글 링크는 하단부 레퍼런스 링크 참고)이 글은 전반적으로 페이스북 메신저, 디스코드, 왓츠앱과 같은 실시간 메시징 애플리케이션의 시스템 설계를 설명하고 있습니다.low-level 까지 완전히 동일하지는 않겠지만, 지난 개발경험동안 생각했던 구조들과 크게 다르지 않았고 이 구조들이 여러 곳에서 많이 사용된다고 느꼈습니다.    목차   전제조건 및 요구사항 1:1 채팅, 그룹 채팅, 채팅 기록 저장, 여러 기기 지원, 실시간 상태.. 2024. 11. 8.
Vercel 404 오류 해결하기 - 간단한 Rewrite 설정 Vercel에서 Next.js 프로젝트를 배포하여 사용 중 입니다. blog나 tags와 같이 미리 정의된 경로 뒤에 예상치 못한 경로가 붙는 경우는 Next.js에서 적절히 커스텀 404 페이지 처리를 해두었습니다. 정확한 원인을 알 수 없으나, 브라우저단에서 다국어 지원 설정에서 특정 언어 경로(/en)가 자동으로 붙는 현상이 생겼습니다. 루트 URL을 기준으로 잘못진입하는 케이스는 생각을 못했었습니다. 때문에 Vercel의 404 오류가 발생했습니다. 목차   해결 방법 Nextjs 프로젝트 Root 에 vercel.json 파일을 생성합니다. vercel.json 파일에 아래 코드를 넣고 저장 및 code push(git)-배포 를 진행합니다. { "rewrites": [{ "source": ".. 2024. 10. 8.
728x90