UML(Unified Modeling Language)
·
👶🏻 CS/Software Engineering
UML은 Unified Modeling Language의 약자로, 소프트웨어 시스템의 설계와 시각화를 위한 표준화된 모델링 언어이다.복잡한 소프트웨어 시스템의 구조, 동작, 상호작용을 시각적으로 표현하여 설계와 개발 과정을 체계적으로 정리할 수 있다. 이는 소프트웨어 엔지니어와 기획자, 설계자 등 다양한 이해관계자 간의 의사소통을 효과적으로 돕는 중요한 도구이다. UML을 사용하는 이유하나의 시스템을 개발하기 위해 보통 기획자, 개발자, 설계자, 분석가 등 여러 사람이 참여한다.이때 시스템의 기능에 대해 코드로 작성하기엔 너무 길고, 한 번에 이해할 수 조차 없다.기능과 구조를 문서화하여 이해시키는 것이 훨씬 효율적일 것이다. UML은 시스템을 시각적으로 표현함으로써 이러한 문제를 해결한다.표준화된 기호..
그래서 커넥션 풀 사이즈는 어떻게 설정하라구요?
·
👶🏻 CS/Operating System
커넥션 풀이란?커넥션 풀은 데이터베이스 연결을 미리 생성하여 저장하고, 클라이언트 요청 시 이를 재사용하는 방식이다. 웹 애플리케이션 서버(WAS)가 실행되면 데이터베이스와의 연결 객체를 생성해 풀(pool)에 저장하고, 클라이언트 요청이 오면 이를 빌려주며 작업이 끝나면 반납받아 다시 저장한다. 커넥션 풀이 왜 필요할까?커넥션 생성에는 높은 비용이 발생한다고 한다. 아래는 한 행을 insert 하는 데 드는 시간을 나타낸다.(괄호 안의 숫자는 비율을 나타낸다)// MySQL 8.0 Documentation // https://dev.mysql.com/doc/refman/8.0/en/insert-optimization.htmlConnecting: (3)Sending query to server: (2) ..
ArrayList의 add()로 보는 동적 복사 과정
·
👶🏻 CS/Data Structure
add()public boolean add(E e) { modCount++; add(e, elementData, size); return true; }private void add(E e, Object[] elementData, int s) { if (s == elementData.length) elementData = grow(); elementData[s] = e; size = s + 1; } 처음 add(E e)메서드를 호출하게 되면 오버로딩된 add(e, elementData, size)를 호출한다.이 메서드에는 추가할 데이터(e), 현재 배열(elementData), 배열의 현재 크기(size)가 전달된다. 현재 배열 크기..
HashMap(구현 방식, 해싱, 해시 함수, 해시 충돌)
·
👶🏻 CS/Data Structure
해싱이란 무엇인가?데이터를 키(key)와 값(value) 형태로 저장하는 경우, 키를 입력받아 특정 위치를 계산하는 과정을 해싱이라고 한다.이때 사용되는 함수가 해시 함수(Hash Function)이며, 해시테이블의 키 값으로 레코드가 저장되어 있는 주소(혹은 색인)를 산출하는 함수이다.함수의 출력값을 해시 값(Hash Value) 또는 해시 코드(Hash Code)라고 부른다.  HashMap의 구조와 작동 원리HashMap은 데이터를 키-값 쌍으로 저장하는 자료구조로 내부적으로 배열과 연결 리스트를 조합하여 구현된다. 데이터 저장의 기본 구조HashMap은 데이터를 저장하기 위해 배열을 사용한다.이 배열의 각 위치를 버킷(Bucket)이라고 부르며, 해시 함수가 반환한 값을 기반으로 데이터가 특정 버..
인덱스(B-Tree, B+Tree)
·
👶🏻 CS/Database
데이터베이스의 성능을 향상시키기 위해서는 디스크 I/O를 줄이는 것이 가장 중요하다. 디스크 I/O란 데이터를 읽고 쓰는 작업으로, 데이터를 작성하거나 수정할 때 디스크에 저장되는 과정을 의미한다. 디스크 접근은 시간이 많이 걸리기 때문에 디스크 I/O를 최소화하는 것이 데이터베이스 성능을 높이는 핵심이다. 인덱스를 활용하면 데이터를 더 빠르게 조회할 수 있어 디스크 I/O를 줄이는 데 효과적이다.인덱스는 데이터베이스가 테이블의 모든 데이터를 탐색하지 않고도 원하는 정보를 빠르게 찾을 수 있도록 설계되어 있다. 이를 통해 불필요한 디스크 I/O 작업을 줄이고 빠르게 조회할 수 있다. 인덱스란?간단히 말해 인덱스는 책의 목차와 비슷한 개념이다. 책의 내용을 "데이터"라고 하고, 페이지 번호를 "인덱스"라고..
정규화와 비정규화
·
👶🏻 CS/Database
정규화정규화란 ERD 내에서 중복요소를 찾아 제거해 나가는 과정을 말한다.함수의 종속성을 이용해 속성들 간의 연관성을 분석하고, 데이터를 논리적으로 나누어 이상 현상(Anomaly)을 방지하는 것이다.이상 현상(Anomaly)정규화를 거치지 않으면 데이터베이스에 불필요한 데이터 중복이 발생하여 여러 문제가 생길 수 있다. 이를 이상 현상이라고 하며, 대표적으로 삽입 이상, 갱신 이상, 삭제 이상이 있다. 1. 삽입 이상 (Insertion Anomaly)데이터를 삽입할 때 원하지 않은 값들도 함께 삽입되는 현상이다. 2. 갱신 이상 (Update Anomaly)데이터를 수정할 때 일부만 갱신되어 정보가 불일치하게 되는 현상이다. 3. 삭제 이상 (Deletion Anomaly)데이터를 삭제할 때 의도치 ..