분류 전체보기
Relational Model
목차 Relation이란 Table표 Key Relational Integrity Constraints Relation이란 집합이 $$ \{ D_1, D_2, ... , D_n \} $$ 으로 정의 되어있을 때 부분집합들로 정의 될 수 있는 모든 서로소 관계에 있는 집합들이다. Table표현 tuple의 순서는 상관 없다 하지만 이들이 중복되서는 안된다. Attribute 또한 중복되서는 안된다. row와 column이 교차하는 지점에는 값이 1개만 존재해야한다. 물론 NULL값도 허용된다. Key Key의 종류 Super Key : tuple을 구분할 수 있는 모든 Attirbute의 조합 Key : Super Key에서 유일성에 기여하는 Attribute를 제외한 Attribute들 Simple Ke..
EER Modeling
기존의 ER Modeling에서 객체 지향의 성질을 추가한 것으로 Enhanced ER Model을 의미한다. 목차 Subclasses/Superclasses Constraints Process od defining a set of subclasses Subclass and Superclass 이는 객체지향에서 부모 객체와 자식 객체와 같은 의미로 해석 될 수 있다. Entity를 다음과 같이 표현하는 것을 의미하는데 이 그림에서 우리는 이들의 특성을 파악 할 수 있다. 1. Subclass IS-A superclass 로 표현이 가능하다는 것이다. ex) Engineer is a employy, Engineer → Employee 2. subclass에 속한 entity는 superclass에 속한 어..
ER Modeling
목차 Conceptual Design과 ER Modeling Entity와 Attribute Entity Type과 key Relation이란 Relation의 Constraint Recursive Relation Weak Entity Type Attributes on Relation Tenary Relation GuideLine for ER Modeling Conceptual Design의 중요성 어떤 DBMS를 사용할지는 추후에 결정해도 된다. 하지만 어떤 DBMS를 선택하던 Conceptual Design은 바뀌지 않는다. 이러한 Conceptual Design을 위해서 ER modeling을 많이 사용한다. Entity 와 Attribute Entity : 실제 세상에 존재하는 것을 의미한다. e..
데이터 베이스 Introduction
목차 DataBaseSystem이란? Database System은 필요성과 요구사항 DBMS의 구성요소는? DBMS의 구조와 사용자 종류 Data Base System이란? 데이터 베이스 시스템 = 데이터 베이스 + 데이터 베이스 관리 소프트웨어 로 구성된다고 이야기할 수 있다. 전체적인 구조도는 다음과 같다. DBMS는 왜 필요한가?(기존 파일 시스템의 문제) 1. 데이터 추상화의 어려움 & 종속성 문제 기존의 파일 시스템은 OS로 인해 관리된다. 이로 인해 특정 데이터를 찾기 위해서는 이러한 파일 시스템의 구조도를 바탕으로 데이터의 위치를 명시 해줘야했다. 이는 사용자가 프로그램을 짤 때 자기가 사용하고자 하는 파일 시스템의 물리적 구조도를 명시해줘야한다는 단점을 내포하게 된다. 이는 사용자가 만드..
[오브젝트] 역할 책임 협력
이 글은 오브젝트 책 3장을 읽고 정리한 글입니다. 객체 지향의 패러다임의 핵심은 역할, 책임, 협력이다. 오늘은 이에 대해 정리하고 이야기 해보고자 한다. 먼저 객체 지향의 본질은 단순히 여러 기능을 클래스로 쪼개서 구현하는 것이 아닌 객체들의 공동체를 창조하는 것이다. 협력 객체들이 애플리케이션의 기능을 구현하기 위해 수행하는 상호작용이다. 이러한 상호작용을 통해 객체들은 더 큰 책임을 수행할 수 있게 된다. 이러한 상호작용에 의해 객체들의 행동이 결정이 된다. 이러한 협력은 객체를 설계할 때 일종의 문맥이 되기 때문에 서로 다른 객체들이 특정 협력으로 묶일 때는 이들을 협력하는 파트너로 생각하고 설계를 해야한다. 책임 객체가 협력에 참여하기 위해 수행하는 로직이다. 이러한 책임은 2가지로 구분될 수..
[오브젝트] 객체지향 프로그래밍
이 글은 오브젝트 책 2장을 읽고 정리한 내용입니다. 1장에서는 객체지향적 코딩이 필요한 이유를 공부했었다. 2장은 이러한 객체 지향적 코딩을 하기 위해서 어떤 것을 고려해야하는지를 정리해놓았다. 객체지향을 위한 코딩을 진행할 때는 어떤 클래스가 필요한지를 고민하기전에 어떤 객체들이 필요한지 고민하라 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 봐야한다. 이 두가지를 고려해야한다고 강조한다. 먼저 1번 문장을 이해해보자. 객체 고려하기 어떤 문제를 해결하기 위해 사용자가 프로그램을 사용하는 분야를 도메인이라고 한다. 이러한 도메인의 요구사항과 프로그램을 객체라는 관점에서 바라 볼 수 있기 때문에 객체를 구성하는 개념들이 프로그램의 객체와 클래스로 매끄럽게 이어질 수 있다..
[오브젝트] 절차지향과 객체지향
이 글은 오브젝트 책 1장을 읽고 정리한 내용입니다. 먼저 실습한 코드를 보면서 설명을 해보겠다. 실습 내용 추첨을 통해 선정된 관람객에게 공연을 무료로 관람할 수 있는 초대장을 발송하는 것이다. 다음 코드는 책에 1장 챕터 1에 나오는 예시이다. https://github.com/RicardoKim/CodePracticeForObject/tree/0584127153da5c40b75d991af28b0aaa14fc2882 GitHub - RicardoKim/CodePracticeForObject: 오브젝트 책을 공부하면서 코드 실습을 위한 레포입니다. 오브젝트 책을 공부하면서 코드 실습을 위한 레포입니다. Contribute to RicardoKim/CodePracticeForObject developme..
[Spring ] SLF4J을 이용한 스프링 로그 작성
서버에서 로그를 상세히 적어두면 디버깅이나 서버 오류가 발생했을 때 쉽게 파악할 수 있어 유지보수에 있어서 중요하다. 로그는 총 7단계로 나뉘는데 설명을 요약하자면 아래와 같다. 로그 레벨과 설명 레벨 설명 ALL custom level을 포함한 모든 로그를 저장하는 레벨이다. DEBUG 프로그램 상 아주 단위의 행동들을 기록하는 레벨이다. INFO 프로그램 상 큰 단위, 덩어리채로 정보를 기록하는 레벨이다. WARN 잠재적으로 위험할 수 있는 상태가 될 수 있는 정보를 기록하는 레벨이다. ERROR 원래 설정된 error로 프로그램 구동에는 영향을 미치지 않을 수 있는 것들을 기록하는 로그레벨이다. FATAL 원래 설정된 error이긴 한데 프로그램 중단을 야기시키는 것만 기록하는 로그레벨이다. OFF..