[algorithm] 정렬(버블정렬, 선택정렬, 삽입정렬, 퀵정렬, 병합정렬, 힙정렬, 기수정렬, 계수정렬)
CS/CS2024. 5. 15. 21:48[algorithm] 정렬(버블정렬, 선택정렬, 삽입정렬, 퀵정렬, 병합정렬, 힙정렬, 기수정렬, 계수정렬)

정렬버블 정렬(Bubble Sort) - 시 O(n^2) | 공 O(n)서로 인접한 두 원소의 대소를 비교, 조건이 맞지 않다면 자리를 교환해 정렬선택정렬(Selection Sort)과 유사배열의 길이가 길어질수록 비효율적시간 복잡도 계산(n-1) + (n-2) + (n-3) + … + 2 + 1 => n(n-1)/2최선, 평균, 최악의 경우 모두 시간복잡도가 O(n^2) 으로 동일공간 복잡도 : O(n)void bubbleSort(int[] arr) { int temp = 0; for(int i = 0; i arr[j]) { // 3. // swap(arr[j-1], arr[j]) temp = arr[j-1]; arr[j-1] = arr..

[Devops..?] Proxmox와 베어메탈 가상화
CS/Linux2024. 5. 12. 19:23[Devops..?] Proxmox와 베어메탈 가상화

0. 학습 계기devops 혹은 SE관련 경력이 없음에도 불구하고, 한 회사의 Jr.Devops 포지션에 casualChat을 통과해 TechChat을 진행하게 되었다.캐주얼 챗에서 입사하게되면 가장 먼저 다루어보게 될 기술에 대해서 여쭈었고, proxmox와 VM으로 서버를 구축하고 그 위에 서비스를 붙이는 일들을 하게 될것이라는 답변을 받았다. 이에 처음 들어봤던 Proxmox에 대해 찾아보다가 베어메탈 가상화와 관련되어 공부하게 된 부분을 정리한 글이다.1. Proxmox와 베어메탈 가상화 ✅ Yana language왜 사용할까? - ”유연하고 비용 효율적인 데이터 센터”결론은 하드웨어적 의미의 컴퓨터 위에 Proxmox와 같은 하이퍼바이저 OS를 설치해 사용함으로써,- Host OS 를 설치하는 ..

데이터베이스-동시성 제어
CS/CS2024. 2. 6. 12:57데이터베이스-동시성 제어

데이터베이스-동시성 제어란? 📌 Concurrency Control. 여러 사용자가 데이터를 동시에 액세스하는 것처럼 보이지만 내부적으로는 하나씩 실행되도록 트랜잭션을 직렬화하는 것. 동시성을 제어할 수 있도록 하기 위해 모든 DBMS가 공통적으로 Lock 기능을 제공 트랜잭션의 직렬성 보장 공유도 극대화, 응답 시간 최소화, 시스템 활용의 극대화 데이터의 무결성과 일관성 보장 동시성 제어를 하지 않은 경우 발생하는 문제점 동시성 제어 기법의 종류 락(lock) locking이란 트랜잭션들이 같은 데이터에 대해 동시에 접근하지 못하도록 제어하는 것 트랜잭션이 데이터에 Read나 Write 연산을 수행하려면 반드시 lock을 해주고, 수행이 끝나면 unlock을 해주어야 함 공유락 (shared lock)..

2024. 1. 30. 09:09[DB] 트렌젝션과 ACID

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

CS/CS2024. 1. 18. 09:12[DB] Index란?

소유자: 야나 인증: 인증 완료 Main Category: CS Category: DB Status.: In progress Tags: DB, NoSQL, RDB, RDBMS 생성 일시: 2023년 5월 22일 오후 3:31 생성자: 야나 최종 편집자: 야나 Index Index란? 📌 사전 : 색인, 지표, 기호 또는 무언가의 척도 DB관점 : 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조. 데이터베이스 안의 레코드를 처음부터 풀스캔하지 않고, B+ Tree로 구성된 구조에서 Index 파일 검색으로 속도를 향상시키는 기술이다. 테이블의 칼럼을 색인화한다. 마치, 두꺼운 책의 목차와 같다고 생각하면 편함. 인덱스는 항상 최신의 정렬 상태를 유지한다..

CS/CS2024. 1. 16. 10:42[CS] 엣지 케이스와 코너 케이스는 뭘까?(feat.. 조금 더 안정성 있는 서비스를 향하여..)

학습 계기 유데미의 Java 강의에서 객체지향 코드 케이스를 작성하다가, 엣지케이스라는 용어를 마주했다. QA관련해서 API의 테스트코드를 작성 하면서 그리고 정보처리기사를 공부하면서 몇 번 들었던 용어인데 제대로 정리를 해본적이 없는 것 같아 이번 기회에 정리해보고자 한다. 이번 학습으로 인한 기대 효과 API를 짜오면서 테스트를 진행하고자 할 때, 단순히 '성공하는 테스트’와 '명확하게 실패하는 테스트’뿐 아니라 **‘문제가 될 수 있는 부분을 검증하는 테스트’**도 진행해보고싶었는데, 대체 어떤 부분을 어떤식으로 작성해야하는지 막막했던 적이 있었다. 이번 학습을 통해 엣지 케이스와 코너 케이스 같은 용어를 공부하고, 어떤식으로 엣지 케이스를 세울 수 있는지 배워서 조금 더 안정성 있는 서비스를 만드..

www.google.com을 주소창에 쳤을 때 화면이 나오기까지의 과정
CS/CS2024. 1. 1. 23:11www.google.com을 주소창에 쳤을 때 화면이 나오기까지의 과정

www.google.com을 주소창에 쳤을 때 화면이 나오기까지의 과정 브라우저에서 www.google.com을 주소창에 입력하면 우선 캐시에서 해당 DNS 주소를 검색해본다 만약 해당하는 주소가 있다면 검색된 ip 를 기반으로 통신을 시작한다 만약 해당 주소가 없다면 DNS 서버로 요청을 보내 해당하는 ip주소를 받는다 ip주소를 알아냈다면 TCP 통신을 통해 해당 ip 서버에 요청을 보낸다. 로드밸런서가 해당 요청을 받아, 해당하는 서버로 요청을 분산한다 해당하는 서버는 일련의 처리과정을 거쳐 응답메세지를 만든다. 만들어진 응답 메세지를 TCP 통신을 통해 다시 클라이언트에게 전송한다. 브라우저는 받은 응답 메세지를 HTTP프로토콜을 사용하여 웹페이지를 구성하여 화면을 렌더링 한다. 브라우저에서 ww..

HTTP 란?
CS/CS2024. 1. 1. 23:05HTTP 란?

HTTP(Hyper Text Transfer Protocol)**란? 📌 인터넷에서 HTML 문서와 같은 데이터를 주고받을 수 있도록 해주는 프로토콜. 애플리케이션 계층으로, 웹 서비스 통신에 사용. 즉, 웹상에서 네트워크로 서버끼리 통신을 할때 어떠한 형식으로 서로 통신을 하자고 규정해 놓은 “통신 형식” 혹은 “통신 구조” 라고 보면 됨 TCP/IP 기반으로 되어있음 HTTP 기본적으로 request(요청)/response(응답) 구조로 되어있음 클라이언트가 HTTP request를 서버에 보내면 서버는 HTTP response를 보내는 구조 클라이언트와 서버 대부분의 통신이 요청과 응답으로 이루어 짐. HTTP Response, Request 메시지의 구조(Start Line, Status Line..

CS/Git2023. 12. 22. 09:39[git] checkout, switch, restore 차이점

obsidian에서 작성중

CS/CS2023. 6. 13. 22:31[CS, WEB, HTTP] RESTful API란?(API, REST API, RESTful API)

RESTful API 나는 RESTful API를 api를 개발하는 데에 있어서 "예상 가능한 개발을 위한, 개발자들 간의 약속"이라고 이해했다. 실제로 RESTful API는 기존의 SOAP이 프로토콜로써 개발자 간의 약속을 표준화시킨 것과 다르게, 기존에 존재하는 HTTP 프로토콜의 메서드를 기반으로 하는 "아키텍처"이다. API란? 📌 애플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의 REST란? 📌 Representational State Transfer(REST): API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어짐 REST 기반 아키텍처를 사용하여 대규모..

[JAVA] Static
CS/CS2023. 6. 13. 22:25[JAVA] Static

JAVA의 static JAVA의 정적(Static)이란? 📌 [사전] 정적(Static) : 고정된 사전적 의미와는 다르게, 나는 JAVA의 Static을 "공유"의 개념으로 이해했음. JAVA에서는 Static이라는 키워드를 사용하여 정적 멤버인 Static변수(정적필드)와 Static메서드(정적메서드)를 만들 수 있음. 정적 필드와 정적 메소드 : 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리됨 즉, 클래스의 로딩이 끝나는 즉시 바로 사용할 수 있음 즉, 인스턴스의 생성과 상관 없이 사용할 수 있는 변수이며, 객체 생성 없이 클래스를 통해 메서드를 직접 호출할 수 있는 메서드임 Static 키워드를 통해 ..

image