데이터베이스-동시성 제어
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/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 키워드를 통해 ..

[TIL] 3 way handshake, 4 way handshake
CS/CS2023. 6. 8. 17:40[TIL] 3 way handshake, 4 way handshake

TCP(Transmission Control Protocol) 통신이란? 📌 Transmission Control Protocol. 전송 제어 프로토콜(transport 계층). 서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜. 데이터를 전송하기 위한 연결을 만드는, 연결 지향 프로토콜 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때의 중계 역할을 수행 패킷 사이의 순서를 보장 연결 지향의 프로토콜을 사용해서 연결 신뢰성 구축해서 수신 여부를 확인 3 way handshake란? 📌 TCP 연결 성립 과정을 의미 SYN → SYN+ACK → ACK TCP의 경우 해당 과정이 있기 때문에 신뢰성이 있는 계층으로 판단됨. SYN 세그먼트 전송: 클라이언트는 서버에 난수인 I..

CS/CS2023. 5. 29. 17:20[TIL] HTTP 멱등성

HTTP 멱등성 HTTP 멱등성이란? Idempotent Methods A request method is considered "idempotent" if the intended effect on the server of multiple identical requests with that method is the same as the effect for a single such request. Of the request methods defined by this specification, PUT, DELETE, and safe request methods are idempotent. Like the definition of safe, the idempotent property only applies to..

CS/CS2023. 5. 29. 17:15[TIL] HTTP 메서드

HTTP 메서드 HTTP 메서드란? 📌 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식 서버에 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정하는 요청을 보내는 방법 각각의 메서드는 서로 다른 의미를 구현하지만, 일부 기능은 메서드 집합 간에 서로 공유하기도 함 응답 메서드는 안전하거나, 캐시 가능하거나, 멱등성을 가질 수 있음 1. GET GET 메서드는 특정 리소스의 표시를 요청 GET을 사용하는 요청은 오직 데이터를 받기만 함. 참고로 안정성과 멱등성은 신뢰할 수 없는 네트워크 상의 HTTP를 신뢰할 수 있게 만들어 줌. 만약, GET요청을 하고 응답을 못 받았을 경우 한 번 더 보내더라도 이 동작은 안전. 그러므로 G..

[CS] 프로세스(process)와 스레드
CS/CS2022. 10. 25. 22:14[CS] 프로세스(process)와 스레드

프로세스 : 컴퓨터에서 실행되고 있는 프로그램을 말함. CPU 스케쥴링의 대상이 되는 작업(task)라는 용어와 유사한 의미. 스레드 : 프로세스 내 작업의 흐름을 지칭. 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화 일어나고, 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행. 1. 프로세스와 컴파일 과정 - 프로세스 : 프로그램으로부터 인스턴스화 된 것을 말함. ㄴ ex) 프로그램 : chrome.exe / 두번 클릭시 구글 크롬 '프로세스' 시작. 1. 컴파일러(Compiler) - 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어 혹은 컴퓨터 언어로 옮기는, 일종의 번역 프로그램. - 비주얼, 터보, 볼랜드 등 언어에 따라 다양한 컴파일러 종류가 존재한다. - 보통 ..

image