CS
-
Indexing이 뭔가요? 위 사진과 같이 다른 테이블, 엔트리로 빠르게 안내해주는 보조 접근 방식이라 생각하면 된다. 이로 인해 원하는 데이터에 빠르고 효율적이게 접근이 가능하다. 이러한 Index는 Single-Level과 Multi-Level Indexes로 나눌 수 있다.Single-Level Indexes Single-Level Indexes의 Index Table에는 Index value와 해당 Disk block을 가리키는 Pointer가 있다. 이때 Index value들은 정렬되어 있고, 당연하지만 원래 데이터 파일보다 작다는 특징이 있다. Single-Level Indexes는 Primary Indexes, Clustering Indexes, Secondary Indexes로 나눠진다...
IndexingIndexing이 뭔가요? 위 사진과 같이 다른 테이블, 엔트리로 빠르게 안내해주는 보조 접근 방식이라 생각하면 된다. 이로 인해 원하는 데이터에 빠르고 효율적이게 접근이 가능하다. 이러한 Index는 Single-Level과 Multi-Level Indexes로 나눌 수 있다.Single-Level Indexes Single-Level Indexes의 Index Table에는 Index value와 해당 Disk block을 가리키는 Pointer가 있다. 이때 Index value들은 정렬되어 있고, 당연하지만 원래 데이터 파일보다 작다는 특징이 있다. Single-Level Indexes는 Primary Indexes, Clustering Indexes, Secondary Indexes로 나눠진다...
2024.12.02 -
DI와 DIPDIDI(Dependency Injection, 의존성 주입)은 설명 그대로 의존성을 주입하는 방식을 뜻한다.우선 의존성을 주입한다는 뜻부터 알아보자. A가 B에 의존한다는 말은 B가 변하면 A도 변해야 함을 뜻하고, A -> B와 같이 나타낼 수 있다. 예를 들어 다음과 같은 코드가 있다고 할 때class JdbcRepository { public void save() { // code }}class User { public void saveUser(User user){ new JdbcRepository().save(user); }}만약 DB 접근 방식이 Jdbc에서 Jpa로 바뀐다면 아래와 같이 코드가 변해야 한다.class JpaReposi..
DI와 DIPDI와 DIPDIDI(Dependency Injection, 의존성 주입)은 설명 그대로 의존성을 주입하는 방식을 뜻한다.우선 의존성을 주입한다는 뜻부터 알아보자. A가 B에 의존한다는 말은 B가 변하면 A도 변해야 함을 뜻하고, A -> B와 같이 나타낼 수 있다. 예를 들어 다음과 같은 코드가 있다고 할 때class JdbcRepository { public void save() { // code }}class User { public void saveUser(User user){ new JdbcRepository().save(user); }}만약 DB 접근 방식이 Jdbc에서 Jpa로 바뀐다면 아래와 같이 코드가 변해야 한다.class JpaReposi..
2024.11.23 -
use case 모델링use case 모델링은 시스템의 기능적 요구사항을 결정하고 설명하는 데 사용된다. 이를 통해 고객과 소프트웨어 개발자 간의 합의가 이루어지며, 시스템이 수행해야 하는 작업에 대해 명확하고 일관된 설명을 제공한다. 또한, 개발 과정 전반에 걸쳐 모든 개발자에게 이러한 요구사항을 효과적으로 전달하는 데 활용된다.use case란?use case는 시스템이 특정 사용자(액터) 에게 가치를 제공하기 위해 수행하는 일련의 행동을 설명하는 것으로, use case를 통해 특정 작업이나 기능이 어떻게 이루어지는지를 상세히 설명하고, 이를 통해 시스템이 제공하는 서비스의 범위를 명확하게 설정할 수 있다.use case 모델링은 use case diagram과 use case description..
use case 모델링use case 모델링use case 모델링은 시스템의 기능적 요구사항을 결정하고 설명하는 데 사용된다. 이를 통해 고객과 소프트웨어 개발자 간의 합의가 이루어지며, 시스템이 수행해야 하는 작업에 대해 명확하고 일관된 설명을 제공한다. 또한, 개발 과정 전반에 걸쳐 모든 개발자에게 이러한 요구사항을 효과적으로 전달하는 데 활용된다.use case란?use case는 시스템이 특정 사용자(액터) 에게 가치를 제공하기 위해 수행하는 일련의 행동을 설명하는 것으로, use case를 통해 특정 작업이나 기능이 어떻게 이루어지는지를 상세히 설명하고, 이를 통해 시스템이 제공하는 서비스의 범위를 명확하게 설정할 수 있다.use case 모델링은 use case diagram과 use case description..
2024.10.27 -
Activity Diagram비즈니스 프로세스는 여러 부서 간의 협업과 다양한 활동들이 유기적으로 이루어져야 하는데, 이를 효과적으로 관리하고 최적화하려면 각 단계의 활동을 명확하게 파악하고 시각화하는 것이 중요하다. 이때 activity diagram을 통해 비즈니스 프로세스 관리를 명확하게 할 수 있다.activity diagram은 비즈니스 프로세스 내에서 발생하는 복잡한 동작을 명확하게 모델링하고, 병렬적으로 수행되는 활동이나 데이터 흐름을 시각화하여 프로세스를 이해하기 쉽게 만든다.위 그림은 프린터 서버의 작동 과정을 보여주는 activity diagram으로, 작업 흐름이 조건에 따라 분기되는 방식을 통해 프린터 작업이 처리되는 일련의 과정을 설명하고 있다.또한 작업 흐름이 조건에 따라 분기될..
Activity DiagramActivity Diagram비즈니스 프로세스는 여러 부서 간의 협업과 다양한 활동들이 유기적으로 이루어져야 하는데, 이를 효과적으로 관리하고 최적화하려면 각 단계의 활동을 명확하게 파악하고 시각화하는 것이 중요하다. 이때 activity diagram을 통해 비즈니스 프로세스 관리를 명확하게 할 수 있다.activity diagram은 비즈니스 프로세스 내에서 발생하는 복잡한 동작을 명확하게 모델링하고, 병렬적으로 수행되는 활동이나 데이터 흐름을 시각화하여 프로세스를 이해하기 쉽게 만든다.위 그림은 프린터 서버의 작동 과정을 보여주는 activity diagram으로, 작업 흐름이 조건에 따라 분기되는 방식을 통해 프린터 작업이 처리되는 일련의 과정을 설명하고 있다.또한 작업 흐름이 조건에 따라 분기될..
2024.10.27 -
객체 지향 설계는 컴퓨터 프로그램을 여러개의 독립된 단위(객체)들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고 데이터를 처리하며, 객체 지향 설계는 부품을 갈아 끼우듯이 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있게 해준다. 이러한 유연함은 다형성을 통해 구현된다. 결론적으로 다형성의 본질은 유연한 변경이다. 인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경 가능, 즉 클라이언트를 변경하지 않고 서버의 구현 기능을 유연하게 변경할 수 있다. 또한 인터페이스를 안정적으로 잘 설계하는 것도 중요하다.좋은 객체 지향 설계를 위한 SOLID라는 5가지 원칙이 존재한다.1. SRP 단일 책임 원칙Single responsibility principle"한 클래스는 하나의 ..
SOLID객체 지향 설계는 컴퓨터 프로그램을 여러개의 독립된 단위(객체)들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고 데이터를 처리하며, 객체 지향 설계는 부품을 갈아 끼우듯이 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있게 해준다. 이러한 유연함은 다형성을 통해 구현된다. 결론적으로 다형성의 본질은 유연한 변경이다. 인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경 가능, 즉 클라이언트를 변경하지 않고 서버의 구현 기능을 유연하게 변경할 수 있다. 또한 인터페이스를 안정적으로 잘 설계하는 것도 중요하다.좋은 객체 지향 설계를 위한 SOLID라는 5가지 원칙이 존재한다.1. SRP 단일 책임 원칙Single responsibility principle"한 클래스는 하나의 ..
2024.10.27 -
우선 절차적 프로그래밍과 객체지향 프로그래밍은 서로 대조되는 개념이 아니다. 서로 상반되는 개념이 아니며 절차적 프로그래밍의 한계점들과 문제를 해결하기 위해 객체지향 프로그래밍 방식이 개발되었다.절차적 프로그래밍절차적 프로그래밍은 순차적인 처리를 바탕으로 프로그램 전체가 유기적으로 실행되도록 한 프로그래밍 방식이다. 절차적 프로그래밍은 procedure를 이용하여 작성되는데, procedure에는 루틴, 서브루틴, 함수 등이 존재한다.루틴프로그램에서 반복적이거나 독립적으로 실행할 수 있는 코드 블럭을 뜻하며 main문 외에도 서브루틴이나 함수 역시 루틴으로 간주됨서브루틴main문 밖에서 정의된 코드 블럭이며 반환값이 없는 작업을 수행함void printMessage() {...}함수main문 밖에서 정의..
절차적 프로그래밍 vs 객체지향 프로그래밍우선 절차적 프로그래밍과 객체지향 프로그래밍은 서로 대조되는 개념이 아니다. 서로 상반되는 개념이 아니며 절차적 프로그래밍의 한계점들과 문제를 해결하기 위해 객체지향 프로그래밍 방식이 개발되었다.절차적 프로그래밍절차적 프로그래밍은 순차적인 처리를 바탕으로 프로그램 전체가 유기적으로 실행되도록 한 프로그래밍 방식이다. 절차적 프로그래밍은 procedure를 이용하여 작성되는데, procedure에는 루틴, 서브루틴, 함수 등이 존재한다.루틴프로그램에서 반복적이거나 독립적으로 실행할 수 있는 코드 블럭을 뜻하며 main문 외에도 서브루틴이나 함수 역시 루틴으로 간주됨서브루틴main문 밖에서 정의된 코드 블럭이며 반환값이 없는 작업을 수행함void printMessage() {...}함수main문 밖에서 정의..
2024.10.27