오늘 배운 것

웹 동작 방식

- IP주소, 브라우저, DNS

- HTTP : 송,수신 측의 통신규약이 프로토콜이고, HTTP는 웹에서 가장 많이 쓰이는 프로토콜이다.

- API : 서버의 창구 역할, 다른 소프트웨어와 통신하기 위해 따라야 하는 규칙

- 서버의 역할 : 예전에는 document를 잘 주는 게 서버의 역할이었지만 인터넷 발달이 고도화 되면서 이제는 json같은 데이터만 넘겨주고 DOM 구성은 프론트 단에서 잘 처리한다.

- REST(ful) API : REST는 소프트웨어 아키텍처의 일종이고 api 설계만 적절하게 해줘도 RESTful 하다고 말할 수 있다. (URL 고유하게 만들고, 적절한 HTTP 메소드 활용한다면)

- DB의 역할은 데이터를 성능 좋게 이용하기 위함

서버에 대한 이해

- 새로운 데이터를 처리하는 부분(Presentation 계층) - 서비스 로직을 처리하는 부분(Domain계층) - 기존의 데이터를 이용하는 부분(data access 계층) 으로 레이어드

- Presentation 계층 : 사용자와 상호 작용 처리. CLI, HTTP 요청, HTML 처리. URL 매핑해서 특정 함수가 호출되게 하는 것. 스프링에선 @Controller

- Domain 계층 : 핵심 로직이 포함된 계층. '유효성 검사' 및 '계산'. 서버 프레임워크가 유능해지면서 Domain 계층에만 집중할 수 있게 됨. 스프링에선 @Service

- Data Access 계층 : (대부분) 서버 외부에 있는 DB와 소통하는 계층. 스프링에선 @Repository

DB 기초

- in-memory DB는 서버가 멈추면 데이터도 휘발됨

- SQL : Structured Query Language. 표준이 존재하나 DBMS회사별로 약간의 차이가 있음. DDL, DCL, DML로 구성

- DDL : Data Definition Language. Data Definition Language 테이블이나 관계의 구조를 생성하는 데 사용
CREATE, ALTER, DROP, TRUNCATE - DB와 테이블을 생성, 수정, 삭제

- DCL : Data Control Language - 데이터의 사용 권한을 관리

GRANT, REVOKE - 사용자 또는 ROLE에 대해 권한을 부여, 회수

- DML : Data Manipulation Language - 테이블에 데이터를 검색, 삽입, 수정, 삭제
INSERT, SELECT, UPDATE, DELETE

- 데이터의 무결성 (data integrity) : 완전한 수명 주기를 거치며 데이터의 정확성과 일관성을 유지하고 보증

- 개체 무결성 : PRIMARY KEY와 관련. 모든 테이블이 primary key를 가져야 하며 primary key로 선택된 열은 고유해야 하고 NULL 은 허용하지 않는다.

- 참조 무결성 : FOREIGN KEY와 관련. PRIMARY KEY와 FOREIGN KEY 간의 관계가 항상 유지되어야 함. 예를 들어 참조되고 있는 속성 값(PRIMARY KEY를 가진)은 함부로 삭제될 수 없음.

- 범위 무결성 : 한 컬럼에 대해 NULL의 허용 여부와 타당한 데이터 값들을 지정. 자료형, 규칙과 제약, 값 범위들을 제한

- ERD : Entity Relationship Diagram. 개체-관계 모델. 테이블 간의 관계를 설명해주는 다이어그램으로 API를 효율적으로 뽑아내기 위한 구조도.

- CASCADE, JOIN, CONSTRAINT 등등...

느낀 점

팀원분들 잘 만난 것 같아 1차적으로 기분이 좋지만 내가 듣지도 않고 졸업해버린 DB가 나와서 좀 헷갈린다. JOIN도 기본적인 것만 다뤘는데 실습 쿼리짜기에서 틀린 부분도 있고 불안하지만 화이팅.

'TIL' 카테고리의 다른 글

[23.11.03]  (1) 2023.11.03
[23.11.02]  (0) 2023.11.02
[2023.10.27]  (0) 2023.10.27
[23.10.25]  (0) 2023.10.25
[23.10.24]  (0) 2023.10.24

+ Recent posts