Computer Science
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..
소프트웨어 테스트
소프트 웨어를 테스트 하는 것은 매우 중요한 절차로 개발 과정에서 여러 부분에서 테스트를 하는 방법이 존재한다. 이번에는 이러한 테스트에 관련해서 정리를 하려고 한다. 프로그램을 검증하는데는 크게 단위테스트, 통합 테스트, 인수 테스트 등이 존재한다. 이외에도 많은 것들이 있겠지만 가장 많이 쓰이는 이 3가지를 정리하려고 한다. 단위 테스트 단위 테스트는 응응 프로그램에서 테스트 가능한 가장 작은 소프트웨어를 실행하여 예상대로 동작하는지 확인하는 테스트이다. 가장 작은 소프트웨어란 무엇일까? 자바의 입장에서 생각하면 단순한 클래스 또는 메소드 수준일 것이다. 이렇게 가장 작은 단위에 대해 검증을 진행하는 것이 어떠한 장점을 가질까? 애초에 이러한 테스트가 생기게 된 이유가 무엇일까? TDD 프로세스에 대..
웹 서버와 WAS
웹서버의 정의 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램 역할 기본적으로 클라이언트의 HTTP통신에 대한 처리를 담담하는 서버로 생각이 든다. 이 때문에 GET같은 HTTP request가 들어온다면 이에 대응되는 정보를 반환해준다. 예를 들어 사용자가 특정 웹페이지에 접속하여 해당 웹페이지의 HTML을 보기를 원한다면 해당 웹페이지에 대한 정보를 웹서버가 받아서 이에 해당하는 HTML을 사용자에게 전달할 것이다. 이때 웹서버는 클라이언트와 여러개의 connection을 만들어 여러 정보(HTML 템플릿, 이미지, 기타 데이터)등을 병렬적으로 전송하게 된다. 또한 POST나 PUT등과 같이 서버에 어떤 정보를 전달하는 클라이..