일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Physical Scheme
- preprocessing
- 백준
- Entity
- Class
- X.org
- External Scheme
- Operator
- 리눅스 마스터 1급
- selenium
- BFS
- 자바
- Entity Set
- Java
- dbms
- literal
- Binary Search
- Polymolphism
- Unity
- OOP
- Reference Type
- spring
- 리눅스
- systemd
- Mac
- 셀레니움
- Inheritance
- X윈도우
- python
- descriptive statistics
- Today
- Total
목록BackEnd (33)
Byeol Lo
E/R 모델을 통해 개념적 설계가 끝나고 DBMS 내의 논리적 설계를 위해 SQL(Structured Query Language)을 알아야 한다. SQL은 데이터 질의와 조작을 위한 표준화된 언어이며, 매우 상위 계층의 언어(High-level Language)이다. SQL은 질의에 따라 DCL, DDL, DML로 나뉜다. (DCL은 나중에 배워도 된다.) Data Definition Language(DDL) SQL의 한 유형이며, 관계(Relation = Table) 스키마(테이블 또는 속성 생성/변환/제거)에 관련된 질의 언어이다. 아래의 표 제목과 열 이름들을 조작하는데 쓸 수 있는 쿼리이다. Title Example Name Old Gender Isabolla 9 girl Ethan 11 boy ..
앞서 살펴본 개념적 모델링을 위해 E/R 모델을 설계할때, Entity Sets 간의 Relationship(rhombus 마름모)으로 이어지게 되는데, 이게 관계를 정의하기 위한 syntax이다. 이때 관계는 함수로 볼 수 있는데, 각각의 행(record, entity)들이 서로 연결되는 것이다. 이 연결은 다음과 같은 특성을 지닐 수 있다. Multiplicity One-to-one relatioship : 연결된 서로의 entity sets 에서 한 개의 개체당 한 개의 개체로 연결되는 것 Many-to-one : A correspond many-to-one to B라는 말은 A의 각 개체들이 B에게 하나씩 대응되는 것 One-to-many : A correspond one-to-many to B ..
우리가 주로 사용하는 데이터베이스 시스템(DBMS)은 관계형 데이터베이스이다. 관계형 데이터베이스는 주로 현실 세계의 데이터화 하고 싶은 문제들을 개념적 모델링의 하나인 E/R Model을 사용하게 된다. 개념적 모델링은 현실 세계에서 존재하는 것들을 추상화하여 개념적인 수준에서 모델링하는 작업이고, E/R Model(Entity-Relationship model)은 데이터베이스 설계에서 사용되는 개념적 모델링(Conceptual modeling) 기법이다. E/R 모델에서는 개체(Entity)와 개체들 사이의 관계(Relationship)을 정의하게 된다. 개체는 데이터베이스에 저장되어야 하는 유형의 정보를 나타내며, 관계는 개체들 간의 상호작용을 의미하게 된다. 이러한 것들을 잘 정의하여 실제 데이터..
앞서 살펴봤던 문제점들을 토대로 데이터베이스는 해당 문제를 해결하기 위해 기능들을 제공한다. 이런 부수적인 기능들로 문제점들을 해결하고, 데이터베이스가 가져야 할 특성들을 정의한다. Transactions 어떠한 동작을 처리할 때는 다음과 같은 부수적인 행위들이 뒤따른다. 예를 들면 의자에 앉으려고 할 때, 의자를 뒤로 빼고 앉은 뒤에 의자와 책상을 가까이 한다. 이는 3가지 동작이 들어가게 된다. 실생활에서는 이런 순차적인 단계들로 작업이 묶여서 수행되는 것을 많이 보게 되는데, Database에서는 이런 논리적으로 연쇄적인 작업들이 묶여있는 작업을 Transactions이라고 부른다. Transactions는 an atomic sequence of DB actions (reads/writes) 로 정..
앞서 Logical Schema에 대해 세부적으로 알아보았다. Physical Schema와 External Schema가 어떻게 구성되어 있는지도 보며, DBMS가 가지는 성질에 대해서 살펴보자. 일반적으로 사용자에게 제공되어지기 전의 Background에 있는 물리적인 자원들을 사용하기 위해 구성되는 Schema들은 Administrator의 권한에서 액세스를 하게 된다. 반면, External Schema는 데이터베이스 시스템과 사용자 간의 인터페이스(연결)를 정의하는 것인데 시스템에 접근하는 외부 응용 프로그램이나 사용자가 데이터를 사용하기 위해서 필요한 데이터 모델, 데이터 구조 및 접근 권한까지도 정의를 하게 되는 계층이다. 그러면 Views는 사용자나 응용 프로그램 따위가 DBMS에 접근할 ..
Scheme Scheme는 일반적으로 계획, 설계 또는 구성을 의미하는 말이며, blueprint라고 할 수 있다. 특히 컴퓨터 전공자들에게서 이는 매우 다양한 용어로 해석된다. DBMS에서는 기본적으로 Logical Scheme, Physical Scheme, External Scheme로 구분된다. Logical Scheme Logical Scheme는 Chat GPT에 따르면 "논리 스키마라고도 하며, 일련의 논리적인 구성요소들이나 절차들이 서로 연결되어 일관된 방식으로 작동하는 전반적인 계획이나 체계를 가리킨다." 라고 되어 있다. 쉽게 말해서 엔티티, 속성, 관계 등을 표현하고, 이를 논리적으로 연결한 전반적인 청사진을 말하는 것이다. 다음과 같은 실습으로 Logical Scheme를 어떻게 정..
Chat GPT를 통해 Database Management의 정의를 다음과 같이 설명한다. 데이터베이스 관리(Database management)는 데이터베이스를 생성(create), 유지(maintenance), 업데이트(update), 관리(manage), 보호(security)하는 일련의 활동을 의미한다. 데이터베이스는 조직에서 필요한 데이터를 구성하고 저장하는 데 사용되는 체계적인 방법으로, 데이터베이스 관리는 이러한 데이터베이스를 보호하고 유지하기 위한 프로세스이다. 데이터베이스 관리는 다음과 같은 작업을 포함한다. 데이터베이스 설계: 데이터베이스의 구조를 계획하고 설계하는 프로세스이며, 데이터베이스 설계는 데이터의 구조와 저장 방식, 데이터베이스 시스템의 구성 등을 정의 데이터 입력: 데이터베..
의존성 주입이란 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로 객체를 직접 생성하는게 아니라 외부에서 생성한 후 주입시켜주는 방식이다. 즉, human 객체에서 animal 객체를 생성하는게 아니라, 외부(IOC 컨테이너) 에서 생성된 animal 객체를 주입시켜 setter 혹은 생성자를 통해 사용하는 방식이다. Spring에서는 객체를 Bean이라고 부르고, 프로젝트가 실행될 때 객체가 생성되는 곳을 스프링에서는 Bean Container라고 부른다. IOC 메소드나 객체의 호출작업을 외부에서 하는 것을 의미한다.
MVC : Model, View, Controller 를 뜻한다. 과거에는 View(보여지는 곳 - ex. html, css 등)와 Controller(url path를 찾아내는 컨트롤러)가 통합되어 있었다. 즉, view 밖에 없었다. 하지만 역할이 backend, frontend로 분리하여 frontend는 디자인을 위한 역할, backend는 데이터관리와 비즈니스 프로세스를 위한 것으로 나누어서 일 효율을 증가시켰다. View는 화면과 관련된 일만, 비즈니스 로직이나 서버 뒷단에 관련된 일은 Controller로 요청을 처리하고, Model에 담아서 다시 건네주는 형식으로 처리하는 패턴을 사용한다. 처음 MVC를 공부할 때 이해했던 경험을 여기에 쓰자면, Annotation으로 @Controller..
Spring은 기본 설정으로 정적컨텐츠를 static폴더에서 찾아서 제공한다. 변하지 않는 html 파일을 넣은 다음 url Path에 Application을 실행시켜주면 된다. //src/main/resources/static/hello.html hihi 해당 파일을 넣고 실행시킨 후에 localhost:8080/hello.html로 들어가면 해당 파일을 그대로 제공해준다. 웹 클라이언트 > 내장 톰캣 서버 > 스프링 컨테이너(hello 관련 컨트롤러를 찾음) > 없으면 resources의 static/hello.html을 찾음 그런 후에 반환을 함.