ComputerScience 38

외래키(Foreign Key) 와 기본키(Primary Key) 의 정의와 예시

관계형 데이터베이스 관리 시스템(RDBMS)에서 키(key)는 테이블에서 행을 고유하게 식별하거나 관계를 정의하는 데 사용됩니다. 그중에서도 가장 활용도가 높은 것이 기본키(primary key)와 외래키(foreign key)입니다. 기본키와 외래키가 무엇인지, 왜 필요한지 알아보겠습니다. KEY 1. 기본키(Primary Key) 기본키는 각 행을 고유하게 식별하는 데 사용되는 하나 이상의 컬럼으로 구성됩니다. 기본키는 아래와 같은 특징을 가지고 있습니다. 고유성(Unique) : 기본 키의 값은 테이블 내에서 중복되지 않아야 합니다. 무결성(Not Null) : 기본 키의 값은 null이 될 수 없습니다. 간단한 예로, 학생 정보가 담긴 테이블에선 학번을 기본키로 사용할 수 있습니다. 모든 학생의 ..

ComputerScience 2023.08.21

DB ) RDBMS 의 정규화 (Normalization)

1. 정규화(Normalization) [ 정규화(Normalization)이란? ] 정규화(Normalization)의 기본 목표는 테이블 간에 중복된 데이타를 허용하지 않는다는 것이다. 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다. 이러한 테이블을 분해하는 정규화 단계가 정의되어 있는데, 여기서 테이블을 어떻게 분해되는지에 따라 정규화 단계가 달라지는데, 각각의 정규화 단계에 대해 자세히 알아보도록 하자. [ 제1 정규화 ] 제1 정규화란 테이블의 컬럼이 원자값(Atomic Value, 하나의 값)을 갖도록 테이블을 분해하는 것이다. 예를 들어 아래와 같은 고객 취미 테이블이 존재한다고 하자. 위의 테이블에서 추신수와 박세리..

ComputerScience 2023.08.21

MVC 패턴

MVC MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있습니다. 이러한 "관심사 분리" 는 더나은 업무의 분리와 향상된 관리를 제공합니다. MVC 에 기반을 둔 몇 가지 다른 디자인 패턴으로 MVVM (모델-뷰-뷰모델), MVP (모델-뷰-프리젠터), MVW (모델-뷰-왓에버) 가 있습니다. MVC 소프트웨어 디자인 패턴의 세 가지 부분은 다음과 같이 설명할 수 있습니다. 모델: 데이터와 비즈니스 로직을 관리합니다. 뷰: 레이아웃과 화면을 처리합니다. 컨트롤러: 명령을 모델과 뷰 부분으로 라우팅합니다. 모델 뷰 컨트롤러 예시 간단한 쇼핑 리스트 앱이 있다고 상상해..

ComputerScience 2023.08.18

디자인패턴 ) MVC, MVP, MVVM 비교

SW디자인패턴] MVC, MVP, MVVM 비교 소프트웨어의 비지니스 로직과 화면을 분리하여 작업한다면 유지보수와 개발의 효율성을 높힐 수 있다. 1. MVC MVC 패턴은 Model + View + Controller를 합친 용어이다. 구조 Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분이다. View : 사용자에게 보여지는 화면(UI) 부분이다. Controller : 사용자의 입력(Action)을 받고 처리하는 부분이다. 동작 MVC 패턴의 동작 순서는 아래와 같다. 1. Controller에서 사용자의 Action들을 받는다. 3. Controller는 Action을 확인하고, Model을 업데이트한다. 4. Controller는 Model을 표시할 View를 선택한다...

ComputerScience 2023.08.18

백엔드 기술면접 top 30 (계속 업데이트)

NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요. RDBMS 는 장점1) 중복된 데이터가 없고(데이터 무결성) 관계간 데이터를 중복없이 한 번만 저장할 수 있습니다. 단점 1) 테이블과 테이블이 관계를 맺고 있어 시스템이 커질 경우 JOIN 문이 많은 복잡한 쿼리가 만들어집니다. 성능 향상을 위해선 서버와 성능을 향상 시켜야하는 Scale-up 만 지원하기 때문에, 비용이 비싸질 수 있습니다. 단점 2) 이러한 스키마로 인해 데이터가 유연하지 못합니다. (스키마가 변경될 경우 번거롭고 어려움) NoSQL 은 장점 1) 스키마가 없어 유연하고 자유로운 데이터 구조를 갖고 있습니다. → 언제든 데이터를 조정,(새로운 필드를) 추가할 수 있습니다. 장점 2) 데이터 분산이 용이(..

ComputerScience 2023.08.17

Database ) RDBMS와 NoSQL의 차이점

이번 포스팅에서는 RDBMS와 NoSQL의 차이점을 알아보려고 합니다. 그전에 RDBMS는 무엇이고 왜 사용하며 NoSQL은 무엇이고 왜 사용을 할까요? 그리고 그 두 DB의 차이점은 무엇이며 서로에 대한 장단점은 무엇이 있을까요? 해당 설명을 하기 앞서 기본 용어들에 대해 정리를 하고 가겠습니다. Database와 DBMS 그리고 SQL Databse란 일반적으로 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합을 의미합니다. DBMS란(DataBase Management System) 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어입니다. SQL이란(Strucured Query Language) 관계형 데이터베..

ComputerScience 2023.08.17

왜 JWT를 사용하는가? JWT 사용 이유

1. 서론 JWT에 대한 내용을 정리한다. 2. What is JWT JSON Web Token의 준말이다. 자바스크립트의 JSON 타입을 띄고 있으며, Web Token으로써 사용할 수 있다는 의미다. 2.1. JWT 사용 이유 HTTP는 기본적으로 state-less를 지향한다. state-less(무상태)란? 서버와 클라이언트 간의 통신 시 항상 사용자의 정보를 가지고 있지 않는 것. → 때문에, JWT 안에 회원에 대한 값을 넣어 회원을 식별한다. 2.2. JWT의 구성 aaaaaaa.bbbbbbb.ccccccc //헤더.페이로드.시그니처 구성은 헤더, 페이로드, 시그니처로 나뉜다. 각 역할은 다음과 같다. 헤더: 토큰 타입, 암호화 알고리즘 명시 페이로드: JWT에 넣을 데이터, JWT 발급 /..

ComputerScience 2023.07.14

JWT란? 왜 사용할까? 장단점은?

인증과 인가 먼저 jwt를 파보기 전에 인증가 인가는 간단하게 짚고 넘어가자. 인증 Authentication 로그인 놀이공원 입장 인가 Authorization 사용자의 로그인 이후의 활동에 대한 서버의 허가 티켓을 보여주면 놀이기구를 탈 수 있음 인증과 인가의 방법 쿠키, 세션, 토큰 JWT(Json Web Token) 서비스에서 유저를 인증하고 식별하기 위한 Token(토큰) 기반 인증 방식 토큰은 세션과 달리 서버가 아닌 클라이언트에 저장된다. 인증에 필요한 정보들을 암호화시킨 Json형식의 토큰 JWT의 구조 & 생성 & 발급 Header(헤더) JWT에서 사용할 타입과 해시 알고리즘의 종류 { "alg": "HS256", "typ": "JWT" } payload(페이로드) 서버에서 첨부한 사용..

ComputerScience 2023.07.14