All Articles

[Wecode] TIL_Day29 Code Kata | Group Project_Day2

TIL 29일차

  • 11:00 | PR Session
  • 14:00 | Database Session

PR Session

PR전 체크 리스트

  • 필요한 test들을 완료하였고 기능이 제대로 실행 되는지 확인
  • Wecode의 코드 스타일 가이드에 맞추어 코드를 작성
  • 자신의 의도한 파일들과 수정 사항들만 커밋이 된 것을 확인
  • 본 수정사항들을 팀원과 사전에 상의하였고 팀원들 모두 해당 PR에 대하여 알고 있음 git add . 으로 commit하면 안된다. 자기가 작업한 파일을 명시해서 push하자.

Database Session

What is Database?

  • 데이터를 저장 및 보존하는 시스템
  • Application에서는 데이터가 메모리상에 존재해서 Application이 종료되면 데이터를 다시 읽어들일 수 없다.
  • 일반적으로 database에는 RDBMS“NoSQL”로 명칭되는 Non-relational database가 있다.

RDBMS (Relational Database Management System)

  • 관계형 데이터 모델에 기초를 둔 데이터베이스 시스템을 말한다.
  • 관계형 데이터란? 데이터를 서로 상호 관련성을 가진 형태로 표현한 데이터를 말한다.

    • 모든 데이터들은 2차원 table로 표현된다.
    • 각 테이블은 column(항목)와 row(실제 값)으로 구성된다.
    • 각 column은 저만의 고유 키(Primary Key)가 있다. 주로 Primary key를 통해서 해당 로우를 찾거나 인용(reference)하게 된다.
  • 각 테이블들은 서로 상호 관련성을 가지고 연결될 수 있다.

    • 테이블끼리의 연결은 크게 3가지 종류가 있다.
    • one to one
    • one to many
    • many to many

테이블과 어떻게 연결할까?

  • Foreign key라는 개념을 사용해서 주로 연결한다.
  • 각 테이블의 Primary key 끼리 WHERE문을 이용해서 조인할 수도 있지만 쓰이지 않는다.

데이터베이스를 관계형으로 짜는 이유?

  • 바뀐 데이터가 있을 경우에 연관된 해당 테이블의 데이터만 바꾸면 된다.
  • 잘못된 값을 넣을 확률이 적다. (데이터를 넣을 때 Foreign key가 존재하지 않으면 에러가 뜨기 때문에)

ACID (Atomicity, Consistency, Isolation, Durability)

  • 원자성, 일관성, 고립성, 지속성

Transaction

  • Transaction은 일련의 작업들이 마치 하나의 작업처럼 취급되어서 모두 다 성공하거나 모두 다 실패하는 것을 이야기 한다.
  • 예를 들어, 회원 정보를 업데이트할 때 보통 해당 유저의 프로파일을 지우고 덮어 쓴다.
    데이터를 지우고 에러가 나면 데이터가 지워지기 때문에 이런 것을 트랜잭션으로 묶어줘야 한다.
  • 대표적인 관계형 데이터베이스에는 MySQL과 PostgreSQL(postgres)가 있다.

NoSQL

  • 비관계형 타입의 데이터를 저장할 때 사용되는 데이터베이스 시스템
  • 비관계형이기 때문에 데이터들을 저장하기 전에 정의할 필요가 없다.

    • 관계형 데이터베이스는 데이터들을 저장하기 전에 어디에 어떻게 저장할 것인지 정의해야 한다.
    • 즉, 테이블을 정의하는 것을 말한다 (테이블 이름, 테이블과 다른 테이블의 관계, 각 컬럼의 타입 등)
  • 대표적인 NoSQL 데이터베이스로는 MongoDB, Radis, Cassandra 등이 있다.
  • 관계형: 데이터 정형화가 가능할 때 (보통 정형화된 데이터가 많다.)
  • 비관계형: 비정형화 데이터를 저장할 때

최근에는 하나의 데이터베이스에서 관계형과 비관계형 모두 쓸 수 있게 만들었다.

SQL (Structured Query Language)

  • MySQL과 같은 관계형 데이터베이스에서 데이터를 읽거나 생성 및 수정하기 위해 사용하는 언어
  • CRUD

Join의 유형

파일 시스템으로 데이터를 저장하면 단점이 뭘까?

파일로 저장하면 데이터의 관계성을 찾기가 힘들고 검색하기도 힘들다. 데이터를 update, delete, search하는 기능을 추가해준 시스템이 Database다.

Group Project | BR-Sariwon 2일 차

오늘 한 일

  • 네비게이션 바 위에 마우스 hover했을 때 height 확장 되는 애니메이션 추가