목록전체 글 (92)
개발일기

개요Next.js에서 NextAuth를 이용해 로그인/회원가입 기능을 구현할 때,존재하지 않는 아이디 이거나 비밀번호가 일치하지 않을 시 등의 상황에서 적절한 검증이 필요하다.처음엔 이런 오류를 처리하려면 어떻게 해야 할지 고민이 많았는데, 해결 방법을 찾다가 redirect 옵션을 발견 했다.그래서 redirect가 어떤 역할을 하는지에 대해 포스팅 하려고 한다. redirectredirect는 우선 credentials및 email providers에서만 제공되는 옵션이다. NextAuth의 signIn() 함수에는 여러가지 옵션이 있는데 그 중에서 redirect라는 옵션이 있다.redirect은 boolean값인 true값과 false값을 가질 수 있는데 만약 사용하지 않는다면 true값과 동일한..
식별자-하나의 엔터티에 구성된 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성을 나타냄- 하나의 유일한 식별자가 존재해야 함- 식별자는 논리 모델링에서 사용하는 용어, 물리 모델링에서는 키(key)라고 표현 ex) 학생 엔터티의 주식별자는 학생번호 속성 => 학생 테이블의 기본키는 학생번호 컬럼 (논리 모델링) (물리 모델링)주식별자 특징1. 유일성 : 주식별자에 의해 모든 인스턴스를 유일하게 구분함 ex) 학생 엔터티에서 이름 속성은 동명이인이 발생할 수 있으므로 모든 인스턴스를 완벽하게 구분할 수 없으므로 학생번호와 같은 유일한 식별자를 주식별자로 사용2. 최소성 ..
관계- 관계는 엔터티간의 연관성을 나타낸 개념- 관계를 정의할 때는 인스턴스(각 행 데이터)간의 논리적인 연관성을 파악하여 정의- 엔터티를 어떻게 정의하느냐에 따라 변경되기도 함관계의 종류1. 존재적 관계- 한 엔터티의 존재가 다른 엔터티의 존재에 영향을 미치는 관계- 엔터티 간의 연관된 상태를 의미ex) 부서 엔터티가 삭제되면 사원 엔터티의 존재에 영향을 미침2. 행위적 관계- 엔터티 간의 어떤 행위가 있는 것을 의미ex) 고객 엔터티의 행동에 의해 주문 엔터티가 발생 ※ ERD 에서는 존재관계와 행위관계를 구분하지 않는다.관계의 구성1. 관계명2. 차수(Cardinality)3. 선택성(Optionality)관계의 차수 (Cardinality)- 한 엔터티의 레코드(인스턴스)가 다른 엔터티의 레코드(..
속성(Attribute)- 속성은 업무에서 필요로 하는 고유한 성질, 특징을 의미(관찰 대상) -> 컬럼으로 표현할 수 있는 단위- 업무상 인스턴스로 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위- 인스턴스의 구성 요소 ex) 학생 엔터티에 이름, 학번, 확과번호 등이 속성이 될 수 있음엔터티, 인스턴스, 속성, 속성값의 관계- 한개의 엔터티는 2개 이상의 인스턴스의 집합이어야 한다(하나의 테이블은 두개 이상의 행을 가짐)- 한개의 엔터티는 2개 이상의 속성을 갖는다(하나의 테이블은 두개 이상의 컬럼으로 구성됨)- 한개의 속성은 1개의 속성값을 갖는다(각 컬럼의 값은 하나씩만 삽입 가능)-속성은 엔터티에 속한 엔터티에 대한 자세하고 구체적인 정보를 나타냄, 각 속성은 구체적인 값을 가짐속..
엔터티(Entity)- 현실 세계에서 독립적으로 식별 가능한 객체나 사물을 나타냄- 엔터티는 업무상 분석해야 하는 대상(Instance)들로 이루어진 집합- 인스턴스는 엔터티의 특정한 속성 값들로 구성되며, 엔터티의 개념을 현실에서 구체적으로 나타낸 것 예) 엔터티와 속성, 인스턴스 등의 관계엔터티(Entity) 의 특징1. 유일한 식별자에 의해 식별 가능- 인스턴스가 식별자에 의해 한 개씩만 존재하는지 검증 필요- 유일한 식별자는 그 엔터티의 인스턴스만의 고유 이름 ex) 이름은 동명이인이 있을 수 있으므로 사번, 학번 등이 고유식별자 2. 해당 업무에 필요하고 관리하고자 하는 정보- 설계하는 업무의 시스템 구축에 필요한 정보여야 함 ex) 학교 시스템 구축 시 학생정보 필요. 다른 업무엔 학생..

개요코드를 작성하고 얼마 후 확인해 보면 이해하기 쉽지 않은 코드들이 너무 많다. 내가 작성 하고 내가 이해 하기 힘들면 이것은 무슨 코드인가,, 그래서 공부하고 적용해 보려고 한다. 물론 좋은코드에 정답은 없다. 하지만 더 많이 공부하고, 적용하고, 협업해 본 사람들이 기록해 둔 코드들이 정답에 가깝지 않을까? 그래서 훔치려고 한다. 토스 개발자가 작성한 기록들을,, 물론 이 또한 좋은 코드라고 할 수는 없다. 그렇지만 여러 코드들을 보다 보면 좋은 코드를 볼 수 있는 능력이 향상될 것이라 믿으며 나는 적용한다. 토스 개발자가 기록한 좋은 코드https://frontend-fundamentals.com/ Frontend FundamentalsGuidelines for easily modifiable f..
개요그냥 제자리 걸음인거 같아서 무언가 성과를 내고 싶어 자격증 시험을 준비 해보려고 한다.공부하면서 기록하면 좋을 것 같아서 적으려고 한다.그냥 메모장용 블로그이다. 모델링의 개념- 현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적이고 구조화된 형태로 표현 - 데이터베이스의 구조와 관계를 정의하며, 이를통해 데이터의 저장, 조작, 관리 방법을 명확하게 정의 모델링의 특징1. 단순화(Simplification)- 현실을 단순화하여 핵심 요소에 집중하고 불필요한 세부 사항을 제거- 단순화를 통해 복잡한 현실 세계를 이해하고 표현하기 쉬워짐 2. 추상화(Abstraction)- 현실세계를 일정한 형식에 맞추어 간략하게 대략적으로 표현하는 과정- 다양한 현상을 일정한 양식인 표기법에 따라 표현 3..

개요supabase의 storage대신 cloudinary라는 라이브러리를 사용하기로 했다. 이유는 무료이기 때문이다. cloudinary에서 제공되는 CldUploadWidget으로 사진, 동영상 등을 쉽게 업로드 할 수 있지만, 만들고 있는 사이트에는 어울리는 것 같지 않아서 기본 업로드 방식을 사용하되 cloundinary에 이미지만 저장 하기로 했다. supabase를 사용하지 않으니까 생각보다 빈자리가 컸다. 한번 사용 해보자. 설치 npm install next-cloudinary env 설정하기cloundinary를 사용하기 위해선 먼저 Cloud name이 필요하고, CldUploadWidget Upload Preset이 필요하다.먼저 cloudinary Docs에서는 이렇게 설명되어 ..