Computer Science
-
[CS] Disk SeekComputer Science 2024. 7. 9. 16:55
Disk SeekHDD의 주요동작디스크의 특정 위치로 Read/Write 헤드를 이동시키는 과정데이터 접근 시간의 중요한 요소 + HDD 성능에 큰 영향 플래터트랙 섹터실린더 읽기/쓰기 헤드 과정명령 수신: CPU가 특정 데이터 위치를 요청합니다.트랙 이동: 액추에이터가 명령된 트랙으로 읽기/쓰기 헤드를 이동시킵니다.섹터 위치 조정: 플래터가 회전하여 요청된 섹터가 헤드 아래로 옵니다.데이터 접근: 요청된 데이터를 읽거나 씁니다. Seek Time시크 시간은 읽기/쓰기 헤드가 한 트랙에서 다른 트랙으로 이동하는 데 걸리는 시간입니다. 평균 시크 시간(Average Seek Time)은 임의의 두 트랙 사이의 이동 시간의 평균을 나타냅니다. 시크 시간은 HDD 성능에 큰 영향을 미치며, SSD에서는 논리..
-
[CS] RAIDComputer Science 2024. 7. 8. 17:54
데이터 저장에 있어 성능을 향상시키는 방법론 중에 하나로, Kafka에서도 이 원리가 활용된다. Redundant Array of Independent Disks여러 개의 물리적 디스크 드라이브를 하나의 논리적 유닛으로 결합하여 데이터 저장의 성능, 용량, 신뢰성을 향상 OS RAID : 운영체제 레벨에서 이 RAID를 구현하는 것하드웨어 RAID와 구분되며, 소프트웨어 RAID로도 불린다 RAID Level RAID 0 : 스트라이핑 기법을 사용하여 데이터를 여러 디스크에 분산 저장성능은 향상되나 데이터 중복이 없어 신뢰성은 낮다모든 디스크를 동시에 사용하기 때문에 성능은 단일 디스크 성능의 N배안정성은 1/N으로 줄어든다(하나라도 문제가 발생할 경우 전체 RAID가 깨지는 현상 발생) RAID 1 ..
-
[CS] Persistent Data structureComputer Science 2024. 7. 5. 09:56
Kafka 공식문서를 읽는 중에, Constant Time Suffices 항목에서 몰랐던 개념이 등장했다.The persistent data structure used in messaging systems are often a per-consumer queue with an associated BTree or other general-purpose random access data structures to maintain metadata about messages. BTrees are the most versatile data structure available, and make it possible to support a wide variety of transactional and non-transa..
-
Git Branch 전략Computer Science 2024. 2. 18. 23:31
Git flow Main Branch Feature Branch Release Branch Hotfix Branch 가장 중심이 되는 브랜치는 master와 develop 브랜치이며, Merge된 feature, release, hotfix 브랜치는 삭제하도록 한다. Main branch Master - 배포 가능한 상태만을 관리하는 브랜치 Develop - 다음에 배포할 것을 개발하는 브랜치 - 통합 브랜치의 역할을 하며, 평소에는 이 브랜치를 기반으로 개발을 진행 Supporting branch Feature - 기능을 개발하는 브랜치로, develop 브랜치로부터 분기 - 그 기능을 다 완성할 때까지 유지하고, 다 완성하면 develop 브랜치로 merge(다음 배포에 확실히 넣을 거라고 merge..
-
SettingWithCopyWarningComputer Science 2023. 11. 24. 20:05
원천이 되는 DataFrame의 일부로 구성된 파생 DataFrame에 변경을 가하는 경우 발생 왜? Pandas DataFrame은 연쇄적인 연산과 처리를 허용 SQL에서 테이블을 SELECT 한 결과가 다시 테이블이 되어 다시 SELECT할 수 있는 것처럼 DataFrame도 자료구조이기 때문에, 메모리를 점유 Pandas에서는 원천 DataFrame을 생성할 때만 메모리를 할당하고 파생 DataFrame은 원천 데이터프레임을 이미 적재된 메모리에 접근케하며 메모리를 절약 Pandas는 copy() 메서드를 통해 파생 DataFrame에 독립적인 메모리를 부여한 뒤 수정을 가하도록 우도 View랑 무슨 연관관계일까? View는 하나 이사의 기본 테이블이나 다른 뷰를 이용하여 생성되는 가상 테이블이다...
-
방화벽Computer Science 2023. 11. 5. 21:47
원치 않는 트래픽으로부터 네트워크를 보호하는 네트워크 보안 솔루션 사전 프로그래밍된 일련의 규칙에 따라 들어오는 악성코드를 차단 네트워크 내의 사용자가 특정 사이트 및 프로그램에 액세스하는 것을 방지 보안 수준이 낮은 환경에서 네트워크 트래픽을 사용자 인증 및 검사를 한 후에 보다 안전한 환경으로 이동해야 한다는 단순한 아이디어 기반 권한이 없는 사용자, 장치 및 애플리케이션이 보호된 네트워크 환경 / 세그먼트에 침입 방지 기존 방화벽은 프록시와 스테이트풀이라는 두 개의 캠프로 나뉘어져 있었지만, 프록시의 성능이 느려지면서 대부분의 방화벽은 상태 기반이다. 방화벽 네트워크는 분계 지점을 통과하는 모든 장치와 트래픽을 보호하여 광범위한 확장성을 지원 네트워크 수준, OSI 계층 3 및 4에서 작동하며, 외..
-
데이터베이스 관련 정리Computer Science 2023. 11. 5. 21:45
제 1 정규화 : Table 칼럼이 Atomic Value가 되도록 테이블을 분해 각 칼럼이 하나의 속성만 가져야 한다 하나의 칼럼은 같은 종류/type의 값을 가져야 한다 각 컬럼이 유일한 이름을 가져야 한다 칼럼의 순서가 상관이 없어야 한다 제 2 정규화 : 제 1 정규화에 대해 완전 함수 종속 제 3 정규화 : 제 2 정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해 BCNF 정규화 : 제 3 정규화를 진행한 테이블에 대해 모든 결정자가 후보키가 되도록 테이블을 분해 제 4 정규화 : BCNF 정규화를 진행한 테이블에 대해 다중값 종속이 없도록 분해 다중값 종속 : 같은 테이블 내 독립적인 두 개 이상의 칼럼이 또 다른 컬럼에 종속되는 것 제 5 정규화 : 제 4 정규화를 만족한 ..
-
GitComputer Science 2023. 10. 30. 07:02
Git Pull Request, PR 사용자가 원격 저장소에 push하여 새로운 사항이 있을 경우, 다른 사용자에게 push된 상황을 알리는 것을 뜻함 원격 저장소에 Push 시 Github에서 해당 레포에 들어가면 상단에 ‘Compare&pull request’라는 버튼 생성 클릭하면 push된 내용은 간단하게 요약해서 알려줄 수 있는 입력칸 등장. 메시지를 작성한 뒤 우측 하단의 Create Pull Request 버튼을 클릭함으로써 전송 Pull request 전송 시 여러 동료들에게 리뷰를 받을 수 있고, 내가 올린 코드에 동료가 병합하여 진행할 수도 있다 Pull request 순서 Fork : 타겟 프로젝트의 저장소를 자신의 저장소로 Fork 진행 Clone, remote 설정 : Fork로 ..