flow-vector
객체지향의 사실과 오해 - chap 6 객체 지도

💡 조영호님의 객체지향의 사실과 오해를 읽고 정리하였습니다 자주 변경되는 기능이 아니라 안정적인 구조를 따라 역할, 책임, 협력을 구성하라 기능 설계 vs 구조 설계 예측 불가능한 요구사항을 만족하는 기능을 제공하는 동시에 요구사항 변경에 유연하게 대처할 수 있는 구조를 가지는 소프트웨어를 만들어야함 변경을 수용할 수 있는 선택의 여지를 설계에 녹여 놓아야함 변경에 소요되는 비용을 낮출 수 있음 어떻게?? 자주 변경되는 기능이 아닌 안정적인 구조를 중심으로 설계하자! 자주 변경되지 않는 안정적인 객체 구조를 바탕으로 시스템의 기능을 객체 간의 책임으로 분배 두가지 재료 : 기능과 구조 기능 사용자가 목표달성을 위해 사용할 수 있는 시스템의 서비스 구조 시스템의 기능을 구현하기 위한 기반 기능변경을 수용할..

객체지향의 사실과 오해 - chap5 책임과 메세지

💡 조영호님의 객체지향의 사실과 오해를 읽고 정리하였습니다 자율적인 책임 객체가 어떤 행동을 하는 유일한 이유는 다른 객체로 부터 요청(메세지)를 받았기 때문임. 받은 요청을 처리하기 위해 객체가 수행하는 행동을 ‘책임’이라고함 책임을 수행하는데 있어 방법은 객체마다 다를 수 있고 자율적임. 해당 방법을 요청하는 객체가 제한하는 것은 좋지 않음 따라서, 어떻게 책임 질 것인가 보다는 무엇을 책임질 것인가가 중요함 메시지와 메서드 메세지 하나의 객체는 메세지를 전송함으로서 다른 객체에 접근함 왕이 모자 장수에게 ‘증언하라’라는 메세지를 보낸는 경우 모자 장수.증언하라(인자) 인자에는 증언에 필요한 정보가 들어갈 수 있음(언제, 어디서 등등) 메서드 메세지를 수신하는 객체가 메세지를 처리하기 위해 내부적으로..

객체지향의 사실과 오해 - chap4 역할, 책임, 협력

💡 조영호님의 객체지향의 사실과 오해를 읽고 정리하였습니다 기억에 남는 문구 객체의 세계에서 협력이라는 문맥이 객체의 행동 방식을 결정함 객체지향 설계의 전체품질을 결정하는 것은 여러 객체들이 모여 이뤄내는 협력의 품질 어떤 협력에 참여 하는지가 객체에 필요한 행동을 결정, 필요한 행동이 객체의 상태를 결정 결론 : 객체지향 설계란 애플리케이션의 기능을 구현하기 위한 협력 관계를 고안하고, 협력에 필요한 역할과 책임을 식별한뒤 이를 수행할 수 있는 적절한 객체를 식별해 나가는 과정 객체지향의 세계는 동일한 목적을 이루기위해 협력하는 객체들의 공동체 협력 협력의 본질은 요청과 응답으로 연결되는 사람들의 네트워크 특정 요청을 보냈다는 것은 해당 객체가 요청에 대한 의무를 가지고 있고 요청에 필요한 지식을 가..

데이터 베이스 시스템
Computer Science/DataBase 2023. 6. 27. 13:15

데이터 베이스 시스템의 구성 데이터 베이스에 데이터를 저장하고 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템 사용자 데이터 언어 데이터 베이스 관리 시스템 데이터 베이스 데이터 베이스의 구조 스키마와 인스턴스 스키마 데이터 베이스에 저장되는 데이터 구조와 제약조건을 정의 한 것 인스턴스 스키마에 따라 실제 데이터 베이스에 실제로 저장된 값 3단계 데이터 베이스 구조 미국 표준화 기관에서 제안 데이터 베이스를 관점에 따라 3가지로 나눈 것 외부 단계(external level) : 개별 사용자 관점 개념 단계(conceptual level) : 조직의 전체 관점 내부 단계(internal level) : 물리적인 저장 장치 관점 데이터 독립성을 위해 3 단계로 나누었음 하위 단계에 변화가 있더라로 ..

데이터 베이스 관리 시스템
Computer Science/DataBase 2023. 6. 27. 13:14

데이터 베이스 관리 시스템의 등장 배경 파일 시스템의 문제점 같은 데이터가 여러 파일에 중복됨 여러 응용 프로그램이 동일한 데이터를 가지는 여러 파일들을 참조할 수 있음 응용프로그램이 파일에 종속적이게 됨 파일의 데이터 구조가 바뀌면 응용프로그램의 수정이 필요함 → 데이터 베이스 관리 시스템이 해당 문제를 해결 데이터 베이스 관리 시스템 특징 주요 기능 정의 기능 데이터 베이스 구조 정의 / 수정 조작 기능 데이터 삽입 삭제 수정 검색 제어 기능 데이터를 정확하고 안전하게 유지 : 데이터 제한 사항 설정 (범위, 권한 설정 등) 장점 및 단점 장점 데이터 중복 통제 데이터 동시 공유 데이터 무결성 유지 단점 비용 발생 (소프트웨어 비용) 중앙 집중 관리 시스템에 따른 취약점 존재 종류 네트워크 DBMS ..

데이터 베이스의 기본 개념
Computer Science/DataBase 2023. 6. 27. 13:13

데이터베이스의 필요성 데이터와 정보의 차이 데이터 관찰되거나 측정된 사실이나 값 정보 의사결정에 유용하게 데이처를 처리한 결과물 → 의미가 부여가 되었는지 의미있게 처리가 되었는지 정보처리(information processing) 데이터에서 정보를 추출하는 과정 또는 방법 제품별 총 판매액 분기별 판매액 정보 시스템과 데이터베이스 정보 시스템 조직 운영에 필요한 데이터를 수집해 두었다가 필요시 유용한 정보를 만들어주는 수단 데이터 베이스 정보 시스템안에서 데이터를 저장하고 있다가 필요시 데이터를 제공하는 역할을 담당함 공유, 통합, 중복, 효율이 중요키워드 데이터베이스의 정의와 특성 데이터베이스의 정의 특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 정장한 운영 데이터의 집합 통합 데이터..

알고리즘 - Prefix Sum
Computer Science/DSA 2023. 6. 20. 13:33

Prefix Sum 배열에서 i 번째 까지의 값의 합을 가지고 있는 새로운 배열 prefix sum 배열을 만드는 것을 pre-processing이라고 볼 수 있고 main 로직에서 시간 복잡도를 줄여주는 역할을 한다. i ~ j 까지 합을 O(1)에 구할 수 있음 prefix[j] - prefix[i - 1] // 0이하로 out of bound되는 것을 막고 싶다면 prefix[j] - prefix[i] + nums[i] prefix sum 만들기 prefix sum이 없다면 query를 수행하는데 O(n) 만큼이 들고 query의 갯수가 m개라면 총 O(n*m) prefix sum을 사용함으로서 O(n + m)으로 시간복잡도를 낮출 수 있음.(O(n) 만큼의 공간을 추가 사용) vector answ..

알고리즘 - Sliding Window
Computer Science/DSA 2023. 6. 20. 13:32

Sliding Window 유형 subarray를 유효하게 만드는 조건이 주어 진다. 합해서 몇 이하, 어떤 숫자의 포함 빈도 등 여러 subarray안에서 최적의 subarray 를 찾는 문제가 나옴 혹은 몇개의 subarray가 나오는지? 예시 합이 k보다 작거나 같은 가장 긴 하위 배열을 구합니다. "0"이 하나 이상 있는 가장 긴 부분 문자열을 구합니다. k보다 작은 곱을 갖는 서브 배열의 개수 찾기 수도 코드 function fn(arr): left = 0 for (int right = 0; right < arr.length; right++): Do some logic to "add" element at arr[right] to window while WINDOW_IS_INVALID: Do so..