본문으로 건너뛰기

Fundamental

72
FundamentalTILNetwork

RESTful API 가이드

REpresentational State Transfer, Roy Fielding REST는 하나의 아키텍처로 볼 수 있다. 좀 더 정확한 표현으로 말하자면, REST 는 Resource Oriented Architecture 이다. API 설계의 중심에 자원(Resource)이 있고 HTTP Method 를 통해 자원을 처리하도록 설계하는 것이다. 1) URI는 정보의 자원을 표현해야 한다. → 리소스명은 동사보다는 명사를 사용 2) 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE 등)로 표현 3
FundamentalTILAlgorithm

DFS/BFS 실제

스택이 아닌 재귀호출을 이용한 DFS 구현 데크를 이용한 BFS 구현
FundamentalTILOperating System

Bit shifting (지수계산)

2^2 와 같은 바이너리 계산이 필요할 때 256같은 적은 수는 빨리 계산이 되지면 2^23 같은 바이너리는 빠르게 떠오르는 편은 아니다. 부끄럽지만 기존에는 2를 23번 곱하거나 10년도 더 된 공학용 계산기를 쓰거나 구글에서 지수 계산기를 찾아서 해왔다. 그런데 컴퓨터 구조나 디지털 논리회로를 수강하면 알겠지만 비트 쉬프팅으로 지수계산을 쉽게 할 수 있다는걸 알 수 있다. 이걸 계산기에서도 할 수 있다는 사실을 며칠전에 알고 깜짝 놀랐다.. 근데 이런거 있다고 알려준 친구도 제대로 못써서 덤앤더머를 한편 찍었다 ㅋ 우선 내장 계
FundamentalTILDatabase

Database transaction

데이터베이스는 다수의 사용자가 동시에 사용하더라도 항상 모순이 없는 정확한 데이터를 유지해야 한다. 장애 상황에서 마찬가지다. DBMS는 데이터가 정확하고 일관된 상태를 유지할 수 있도록 다양한 기능을 제공하는데 그 중에 하나가 트랜잭션이다. 트랜잭션은 한 작업을 수행하는 데 필요한 데이터베이스의 연산들을 모아놓은 것으로 데이터베이스에서 논리적인 작업의 단위가 된다. 장애 발생시 복구하는 작업의 단위도 된다. 데이터베이스의 무결성과 일관성을 보장하기 위한 4가지 특성이 있다. → 원자성, 일관성, 격리성, 지속성 앞의 4글자를 가져
FundamentalTILDatabase

Database normalization

정규화는 데이터베이스를 설계한 후 설계 결과물을 검증하기 위해 사용하기도 한다. 잘못 설계된 데이터베이스는 이상현상이 발생할 수 있다. 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 위 릴레이션에서 새로운 tuple을 삽입하려면 이벤트번호과 당첨여부까지 삽입해야 하는 이상현상. 중복 tuple 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제 위 릴레이션에서 tuple중 일부만 수정되어 데이터가 불일치 하게 되는 이상현상이다. tuple을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제
FundamentalTILDatabase

ERD and relation model conversion

데이터베이스 설계는 사용자들의 요구사항을 고려하여 데이터베이스를 생성하는 과정이다. 데이터베이스에 실제로 데이터가 저장되기 시작하면 구조를 변경하기 매우 어렵다. 저장된 데이터와 설계된 구조를 모두 지우고 데이터베이스 scheme을 재작성 해야하는 것은 물론, 어플리케이션에서 데이터베이스에 접근하는 코드 역시 수정이 필요하기 때문이다. 많은 라이브에서 데이터베이스에서 계속 사용중이기 때문에 일관성과 무결성을 지키며 무중단으로 migration 하는 것은 어렵다. RDB모델을 기반으로 두고 데이터베이스를 설계할 때는 두 가지 방법을
FundamentalTILDatabase

Relation Data Model

릴레이션의 예시 Attribute 속성 : 각 데이터를 의미하는 이름 Tuple 투플 : entity instance, record. Domain 도메인 : 속성의 타입을 의미한다. 예를들어 age는 int로 정의할 수 있다. Null Degree 차수 : attribute의 갯수 여기서는 7개다 Cardinality 카디널리티 : tuple(entity instance)의 갯수 Tuple의 유일성 : 하나의 relation에는 동일한 tuple이 존재 할 수 없다. Tuple의 무순서 : tuple간에는 순서가 없다. 효율을 위해
FundamentalTILDatabase

Entity-Relationship model

개념적 모델링 : 추상화 과정을 통해 중요한 데이터를 추출해 나열한다. 논리적 모델링 : 나열한 데이터의 구조를 결정하고 표시한다. 이 과정을 굳이 분리하지 않고 데이터 모델링으로 이야기한다. 데이터 모델은 데이터 모델리의 결과물을 표현하는 도구. 개념적 데이터 모델 : 사람이 이해할 수 있는 모델링을 통해 개념적 구조로 표현 논리적 데이터 모델 : 데이터베이스의 논리적 구조로 표현 entity 개념 = 테이블의 record 개세는 사람과 사물처럼 물리적으로 존재하는 것만을 의미하지 않는다. 개체는 다른 개체와 구별되는 이름을 가지