분류 전체보기
-
[DB] 정규화 (Normalization)DB 2020. 7. 2. 11:24
데이터의 중복과 중복으로 인한 이상(Anomaly)을 최소한으로 줄이기 위한 방법 이상(Anomaly) 삽입 이상(Insertion Anomaly) : 튜플 삽입시 불필요한 데이터가 함께 삽입되거나 데이터가 부족해 삽입이 되지 않는 현상 갱신 이상(Modification Anomaly) : 중복 튜플 중 일부만 변경되어 데이터가 불일치가 발생하는 현상 삭제 이상(Deletion Anomaly) : 튜플 삭제시 원치 않는 튜플도 함께 삭제되어 데이터 손실이 발생하는 현상 제1정규형(1NF: First Normal Form) 모든 애트리뷰트의 도메인은 원자값만을 가져야함 제2정규형(2NF: Second Normal Form) 제1정규형을 만족해야함 모든 애트리뷰트들에 부분적 함수 의존성이 없어야함(완전 함수..
-
[Network] OSI 7 계층(OSI 7 Layer)Network 2020. 7. 1. 20:04
국제 표준화기구(OSI)에서 개발한 모델로 네트워크 통신이 일어나는 과정을 7단계로 나눈 모델 계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악 하기위해 각 계층은 하위 계층의 기능만을 이용하고 상위 계층에게 기능을 제공 1. 물리 계층(Physical Layer) 전기적, 기계적, 기능적 특성을 이용해서 통신 케이블로 데이터를 전송 통신 단위는 비트(bit) 데이터를 전송하기만 하고 데이터가 무엇인지, 어떤 에러가 있는지는 신경 쓰지 않음 ex) 통신 케이블, 리피터, 허브 등 2. 데이터 링크 계층(Data Link Layer) 물리계층을 통해 송수신되는 정보의 에러 검출, 재전송, 흐름을 제어하여 안전한 정보의 전달을 수행할 수 있도록 해주는 역할 맥 주소(MAC address)를 이용하여 ..
-
[Django] Django란?Phthon/Django 2020. 6. 30. 08:51
Python으로 만들어진 무료 오픈소스 Web Application Framework 특징 MVC 패턴 기반 MTV 패턴 Django에서는 View를 Template, Controller를 View라고 부름 Model 데이터에 관한 정보를 다룸 SQLite라는 데이터베이스가 내장되어 있음 Template 사용자에게 실제로 보여지는 웹 페이지를 다룸 View 특정 데이터가 어떤 상황에서 어떠한 방식으로 처리될지 정의된 함수를 다룸 ORM ORM을 통해 데이터베이스 시스템을 지원 Admin 페이지 제공 데이터베이스에 대한 관리 기능을 제공하는 관리자 페이지를 제공 데이터를 쉽게 생성, 변경할 수 있고 개발자가 별도로 관리 기능을 개발할 필요 없음 유연한 URL 설계 정규식을 사용하거나 파이썬 함수에 URL을..
-
[Design Pattern] 컴퍼지트 패턴(Composite Pattern)Software Engineering 2020. 6. 24. 21:24
구조 패턴 부분-전체의 관계를 갖는 객체들을 정의할 때 사용하는 패턴 전체와 부분을 구분하지 않고 동일한 인터페이스 사용 전체 클래스도 부분 클래스처럼 일반화되기 때문에 전체도 부분이 될 수 있음 트리 구조의 객체를 표현할 때 유용 역할이 수행하는 작업 Componenet 구체적인 부분 Leaf 클래스와 전체에 해당하는 Composite 클래스의 공통 인터페이스를 정의 Leaf 구체적인 부분 클래스로 Composite 객체의 부품 Composite 전체 클래스로 복수 개의 Component를 갖도록 정의 복수 개의 Leaf와 복수 개의 Composite 객체를 부분으로 가질 수 있음
-
서버 사이드 렌더링(SSR)과 클라이언트 사이드 렌더링(CSR)WEB 2020. 6. 23. 21:53
SSR이란? Server Side Rendering의 약어 서버에서 렌더링함 요청시 서버에서 처리하여 새로고침으로 페이지 응답 MPA(Multi Page Application) CSR이란? Client Side Rendering의 약어 클라이언트에서 Javascript를 통해서 렌더링 하는 방식 SPA(Single Page Application) CSR의 장단점 장점 트래픽 감소 처음에 렌더링된 후 필요한 데이터만 받아오면 되기 때문에 상대적으로 서버 요청이 적음 사용자 경험 새로고침이 발생하지 않아 사용자가 네이티브앱과 비슷한 경험을 할 수 있음 단점 초기 렌더링 때 많은 JS 번들을 받아오기 때문에 초기 렌더링 속도가 SSR에 비해 느림 검색엔진 어플리케이션의 소스를 확인하면 내용이 비어있어 검색엔진..
-
Serverless란?WEB 2020. 6. 22. 17:29
Serverless 란? 서버가 없다는 의미가 아닌 BaaS(Backend as a Service) 또는 FaaS(Function as a Service)에 의존해 작업을 처리한다는 의미 BaaS (Backend as a Service) 어플리케이션 개발에 필요한 기능들을 API로 제공해줌 장점 개발 시간의 단축 서버 확장 작업의 불필요함 단점 클라이언트 위주의 코드 가격 복잡한 쿼리가 불가능 FaaS(Function as a Service) 함수를 서비스로 제공함으로써 어플리케이션 개발에서 함수를 실행하기 위해 서버를 올리고 런타임을 구성해 코드를 배포해야하는 일련의 과정을 생략 서버가 계속 대기하면서 사용자의 요청을 처리하는 것이 아니라 이벤트가 있을 때만 서버가 실행됨 장점 비용 인프라 관리, 보안..
-
TDD란?Software Engineering 2020. 6. 20. 12:14
Test Driven Development의 약자 테스트가 개발을 이끌어 나가는 형태의 개발방법론 테스트를 먼저 만들고 테스트를 통과하기 위한 코드를 작성하는 것 TDD의 3가지 절차 실패 실패하는 테스트 케이스를 먼저 만드는 것 프로젝트의 전체 기능에 대한 테스트 케이스를 작성하는 것이 아니라 가장 먼저 구현할 테스트 케이스 작성 성공 실패하는 테스트 케이스를 통과시키기 위한 코드를 작성하는 것 리팩토링 구현한 코드에 중복되거나 개신시킬 코드가 있다면 리팩토링을 진행 리팩토링 후 테스트 케이스가 성공하는지 확인 TDD의 장점 객체지향적인 코드 개발 코드의 복잡도가 떨어짐 유지보수가 수월해짐 결함이 줄어듬 TDD의 단점 개발 시간이 늘어남
-
[OS] 스케줄러(Scheduler)란?OS 2020. 6. 19. 11:03
Ready Queue에 존재하는 프로세스들을 특정한 우선순위를 기반으로 CPU를 할당받게 하는 역할 프로세스가 생성되어 완료될때까지 프로세스는 여러 종류의 스케줄링 과정을 거침 프로세스를 스케줄링하기 위한 큐의 종류 Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue : 현재 메모리 내에 있으면서 CPU를 할당 받기를 기다리는 프로세스의 집합 Device Queue : Device I/O 작업을 대기하고 있는 프로세스 집합 스케줄러의 종류 장기 스케줄러 - 어떤 프로세스를 Ready Queue에 삽입할지 결정 - 메모리와 디스크 사이의 스케줄링을 담당 - 프로세스에 메모리를 할당 - 메모리에 동시에 올라가 있는 프로세스의 수를 조절 - 프로세스의 상태[new -> re..