본문 바로가기

전체 글171

[면접을 위한 CS 전공지식 노트] 4-2. ERD 와 정규화 과정 ERD (Entity Relationship Diagram) 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하며, 릴레이션 간의 관계들을 정의한 것입니다. 4.2.1 ERD의 중요성 ERD는 시스템의 요구 사항을 기반으로 작성되며, ERD를 기반으로 데이터베이스를 구축합니다. 구축 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우에 설계도 역할을 담당하기도 합니다. 관계형 구조로 표현할 수 있는 데이터를 구성하는 데 유용합니다. 비정형 데이터를 충분히 표현할 수 없습니다. 4.2.3 정규화 과정이란? 릴레이션 간의 잘못된 종속 관계로 인해 데이터베이스 이상 형상이 일어나서 이를 해결하기 위해 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정입니다. 정규형 원칙을 기.. 2024. 1. 21.
[ JavaScript ] 1부터 n까지의 숫자 배열 만들기 1. Array.from() 사용 Array.from 이란? mdn문서 순회 가능 또는 유사 배열 객체에서 얕게 복사된 새로운 Array 인스턴스를 생성합니다.(새로운 배열 객체를 생성한다.) Array.from(arrayLike, mapFn, thisArg) arrayLike : 배열로 변환할 순회 가능 또는 유사 배열 객체 (필수) mapFn : 배열의 모든 요소에 대해 호출할 함수 thisArg : mapFn 실행 시에 this 로 사용할 값 Array.from('foo') // ['f','o','o'] Array.from({length:9}) // length가 9인 배열이 생성된다. // [undefined, undefined, ..., undefined] Array.from({length:9}.. 2024. 1. 21.
[ 면접을 위한 CS 전공 지식 노트 ] 4-1. 데이터베이스의 기본 데이터베이스 Database(DB)란? 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되어 있는 데이터의 모음입니다. 한번 영어로 풀어 쓴 의미를 찾아봅시다. Formally, a "database" refers to a set of related data accessed through the use of a "database management system" (DBMS), which is an integrated set of computer software that allows users to interact with one or more databases and provides access to all of the data contained in the database (although restric.. 2024. 1. 20.
Error : Event handlers cannot be passed to Client Component (feat. 직렬화 serialize) O Auth 로그인과 로그아웃을 가능하게 하는 버튼을 만드는 중입니다. //page.tsx import Section from '@/components/Section'; import GuestBook from '@/components/GuestBook'; import Button from '@/components/Button'; import { signInOAuthUser, signOutOAuthUser } from '@/service/supabase'; export default function GuestBookPage() { return ( await signInOAuthUser()}>Sign In await signOutOAuthUser()}>Sign Out ); } 로그인과 로그아웃 기능은 동작해.. 2024. 1. 19.
환경변수가 안 불러와진다? 터미널에서는 값이 잘 출력이 되는데 브라우저에서 값이 필요하다면서 오류가 뜬다. 값을 환경변수 적용 없이 직접 넣어주니까 동작은 하는데, 그렇게 하면 키값이 다 드러나니까, 다른 방법을 찾아봐야 할 것 같다. 인터넷 서칭을 해도 딱히 맞는 해결책을 못 찾고 있다가, 문득 현재 내가 보안을 위해 env 값에다가 NEXT_PUBLIC_ 을 안 붙인 것이 생각났다. 페이지들이 다 서버 컴포넌트였어서 문제가 없었는데, 그러고보니 방명록 게시판은 내가 클라이언트 컴포넌트로 만들었다. 아니나 다를까 클라이언트에서 실행되는 API 호출 함수에서 키값을 못 읽어오고 있는 것이었다. BASE_URL 을 NEXT_PUBLIC_BASE_URL 로, API_KEY 를 NEXT_PUBLIC_API_KEY 로 바꾸니까 정상적으로.. 2024. 1. 19.
방명록 추가하기 사이트에 방명록을 추가하기로 했습니다. 그래서 이번 기회에 전에 들어보았던 supabase를 한번 써보려고 합니다 데이터 테이블은 쉽게 만들 수 있었습니다. 데이터 타입은 요렇게! { id: uuid; created_at: timestamptz message: text; author: varchar; is_locked:boolean; password: int4; } 데이터 타입이 평소에 쓰던 string,number,boolean이 아니라 뭔가 세분화되어 있어서 약간의 서칭은 필요했지만, 그래도 여기까지는 수월하게 왔는데, 왠지 REST API를 사용하기 시작하면서부터 글을 쓸 일이 생길 것 같아서 미리 시작해봅니다. 이제 진짜 본격적으로 시작해봅시다. 공식문서 2024. 1. 17.