WIL 4주차

jathazp·2022년 2월 6일
0

15

목록 보기
12/14

1. 주특기 숙련 (1.31~2.3)

기존 프로젝트에 로그인 기능과 댓글 기능들을 구현해 붙여주었다.
틀이 잡힌 상태에서 기능만 달아 주어서 처음보다 무난하게 진행되었다.

2. 주특기 심화(2.4~2.6)

주어진 테스트 코드의 조건을 모두 통과하는 api를 작성하였다. 클래스의 개념에 대해 잘 알고 있어야 쉽게 해결이 될 과제였다.

3. What I Learned

ORM

Object Relational Mapping, 객체-관계 매핑

  • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑 해주는 것.

  • 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.

  • ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.

  • 데이터베이스 데이터 <—매핑—> Object
    객체를 통해 간접적으로 데이터베이스 데이터를 다룬다.

장점

  • 객체 지향적인 코드와 메서드로 데이터를 조작할 수 있어 더 직관적이고 이해하기 쉽다.
  • 선언문, 할당, 종료 같은 부수적인 코드가 적다.
  • 각종 객체에 대한 코드를 별도로 작성하기 때문에 코드의 가독성을 올려준다.
  • SQL의 절차적이고 순차적인 접근이 아닌 객체 지향적인 접근으로 인해 생산성이 증가한다.
  • 재사용 및 유지보수의 편리성이 증가한다.
  • DBMS에 대한 종속성이 줄어든다.

단점

  • 완벽한 ORM 으로만 서비스를 구현하기가 어렵다.
  • 사용하기는 편하지만 설계는 매우 신중하게 해야한다.
  • 잘못 구현된 경우에 속도 저하 및 심각할 경우 일관성이 무너지는 문제점이 생길 수 있다.
  • DBMS의 고유 기능을 이용하기 어렵다.

NoSQL vs SQL

SQL

RDBMS에서 데이터를 저장,조작 및 검색하는 데 사용되는 도메인 별 프로그래밍 언어

  • DDL (데이터 정의 언어) : 스키마 생성(CREATE) 및 수정(ALTER) 삭제(DROP)에 사용되는 쿼리.

  • DML (데이터 조작 언어) : 데이터베이스에서 선택(SELECT), 삽입(INSERT), 업데이트(UPDATE) 및 삭제(DELETE) 작업을 수행하는 데 사용.

  • DCL (데이터 제어 언어) : 액세스를 제어하고 데이터베이스에 대한 권한을 제공하는 데 사용됩니다. SQL의 일반적인 DCL 명령은 GRANT(권한 부여) 및 REVOKE(권한 회수)가 있다.

  • TCL (트랜잭션 제어 언어) : 데이터 무결성을 유지하기 위해 트랜잭션을 제어하고 관리하는 데 사용된다. SQL의 일반적인 TCL 명령에는

    • COMMIT : 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 연산

    • ROLLBACK : 하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성이 깨졌을 때, 트랜잭션이 행한 모든 변경 작업을 취소하고 이전 상태로 되돌리는 연산

    이 있다.

*트랜잭션?
트랜잭션(Transaction)이란, 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위
간단히 말해 SQL을 이용해 DB에 접근하는 것

NoSQL

NoSQL 은 테이블 형식으로 구성되지 않고 테이블 형식이없는 비 관계형 형식의 데이터를 관리하는 방법을 제공하는 데이터베이스이다.

1) 열(Collections) : 데이터 테이블을 행이 아닌 열로 저장

2) 문서(Documents) : 문서 형식의 설명과 함께 반 구조화 된 데이터를 저장하고 유지

3) 키-값 : 데이터가 키-값 쌍의 모음을 나타내는 연관 배열 (지도 또는 사전)을 기반으로하는 데이터 모델을 가진다.

Next week

  1. express js 공부

  2. 소켓 이용해 남은기간 2일정도 토이 프로젝트 진행해보기

  3. 개인과제 코드 복기하기

  4. 배운 내용들 복습

  5. 알고리즘 스터디 계속 진행

0개의 댓글