2024/11 9

Web Server와 WAS의 차이

웹 서버하드웨어 측면에서 웹 서버는 웹 서버의 소프트웨어와 website의 컴포넌트 파일들을 저장하는 컴퓨터이다. 웹 서버는 인터넷에 연결되어 웹에 연결된 다른 기기들이 웹 서버의 데이터를 주고 받을 수 있도록 한다.소프트웨어 측면에서 웹 서버는 기본적으로 웹 사용자가 어떻게 호스트 파일들에 접근하는지를 관리한다.  (HTTP 요청을 받고 정적인 컨텐츠를 제공하는 컴퓨터 프로그램)→ 웹 서버 종류에는 Apache, Nginx, IIS 등이 있다. 💡 정적 페이지와 동적 페이지Static Pages: 바뀌지 않는 페이지로 웹 서버는 파일 경로 이름을 받고 경로와 일치하는 file contents를 반환한다. 항상 동일한 페이지를 반환한다.Dynamic Pages: 인자에 따라 바뀌는 페이지로 인자의 내용..

CS 2024.11.24

프록시 서버(Proxy server)

🔎 프록시 서버?인터넷 상의 여러 네트워크들에 접속할 때 중계 역할을 해준다  과정클라이언트에서 서버로 요청을 보낸다.프록시 서버가 클라이언트로부터 전달 받은 요청을 서버에 요청한다.서버는 요청에 맞게 데이터를 프록시 서버로 전달한다.프록시 서버는 서버로부터 전달받은 데이터를 클라이언트로 전달한다.✅ 프록시 서버는 클라이언트와 서버 사이에서 중개인 역할을 한다!  프록시 서버가 왜 필요할까?① 보안클라이언트와 서버 사이에 프록시 서버가 존재하기 때문에 서버의 주소가 쉽게 노출되지 않아 서버의 IP를 숨기는 것이 가능하다.(클라이언트는 자신이 요청한 주소가 실제 서버 주소인지 프록시 서버 주소인지 알 수 없다.)  ②  캐싱이전에 했던 요청들을 프록시 서버에 저장해두어 다음 번에 재요청을 보낼 때 서버를..

CS 2024.11.18

중앙처리장치(CPU) 작동 원리

CPU는 컴퓨터에서 가장 핵심적인 역할을 수행하는 부분 연산 장치산술연산과 논리연산 수행 (따라서 산술논리연산장치라고도 부른다.)연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보낸다제어 장치명령어를 순서대로 실행할 수 있도록 제어하는 장치주기억장치에서 프로그램 명령어를 꺼내 해독하고, 그 결과에 따라 명령어 실행에 필요한 제어 신호를 기억장치, 연산장치, 입출력장치로 보낸다레지스터고속 기억장치명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장중앙 처리 장치 종류에 따라 사용할 수 있는 레지스터 개수와 크기가 다르다용도에 따라 범용 레지스터와 특수 목적 레지스터로 구분된다- 범용 레지스터 : 연산에 필요한 데이터나 연산 결과를 임시로 저장- 특수 목적 레지..

CS 2024.11.17

교착상태

🔎 교착상태복수의 트랜잭션을 사용하다 보면 교착상태가 일어날 수 있다. 교착상태란 두 개 이상의 트랜잭션이 특정 자원(테이블 또는 행)의 잠금을 획득한 채 다른 트랜잭션이 소유하고 있는 잠금을 요구하면 아무리 기다려도 상황이 바뀌지 않는 상태가 되는데, 이를 교착상태라고 한다.  트랜잭션 1이 테이블 B의 첫번째 행의 잠금을 얻고 트랜잭션 2도 테이블 A의 첫번째 행의 잠금을 얻었다고 했을 때,트랜잭션을 COMMIT하지 않은채 서로의 첫번째 행에 대한 잠금을 요청하면 Deadlock이 발생한다. 교착 상태의 빈도를 낮추는 방법트랜잭션을 자주 커밋한다.정해진 순서로 테이블에 접근한다.위에서는 트랜잭션 1이 테이블 B → A의 순으로 접근했고, 트랜잭션 2는 테이블 A → B 순으로 접근했다. 트랜잭션들이..

CS 2024.11.16

써드 파티(3rd party)란?

🔎 써드 파티(3rd party)?하드웨어 생산자와 소프트웨어 개발자의 관계를 나타낼 때 사용한다.그 중에서 서드파티는, 프로그래밍을 도와주는 라이브러리를 만드는 외부 생산자를 뜻한다. 개발자 측면으로 보면?하드웨어 생산자가 '직접' 소프트웨어를 개발하는 경우 : 퍼스트 파티 개발자하드웨어 생산자인 기업과 자사간의 관계(또는 하청업체)에 속한 소프트웨어 개발자 : 세컨드 파티 개발자아무 관련없는 제3자 소프트웨어 개발자 : 서드 파티 개발자→ 제 3자로 중간다리 역할로 도움을 주는 것이 서드 파티로 볼 수 있고 이런 것을 만드는 개발자가 서드 파티 개발자다. 더보기[참고]https://m.blog.naver.com/seek316/221742981904 [IT정보] 서드파티(Third Party) 개념서..

CS 2024.11.14

SQL - DB 트랜잭션(Transaction)

🔎 트랜잭션이란?데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 상태를 변화시킨다 = SQL 질의어를 통해 DB에 접근하는것 (SELECT, INSERT, DELETE, UPDATE) 쉽게 말해 한꺼번에 수행되어야 할 연산을 모아놓은 것으로, 연산들을 모두 처리하지 못한 경우에는 원 상태로 복구한다.작업의 일부만 적용되는 현상이 발생하지 않는다!→ 작업의 완전성을 보장해준다. 사용자 A가 사용자 B에게 만원을 송금한다.1. 사용자 A의 계좌에서 만원을 차감한다.2. 사용자 B의 계좌에서 만원을 추가한다.출금 UPDATE문 + 입금 UPDATE문이를 통틀어 하나의 트랜잭션이라고 한다.위 두 쿼리문 모두 성공적으로 완료되어야만 하나의 작업, 트랜잭션이 완료되는 것이다. = commit작업 단위에 ..

CS 2024.11.13

SQL - 저장 프로시저(Stored Procedure)

🔎 저장 프로시저란?DB 내부에 저장된 일련의 SQL 명령문들을 하나의 함수처럼 실행하기 위한 쿼리 집합 * 프로시저를 만들어두면, 애플리케이션에서 여러 상황에 따라 해당 쿼리문이 필요할 때 인자 값만 전달하여 쉽게 원하는 결과물을 받아낼 수 있다.  프로시저 생성CREATE OR REPLACE PROCEDURE 프로시저명(변수명1 IN 데이터 타입, 변구명2 OUT 데이터 타입)IS[변수명1 데이터 타입;변수명2 데이터 타입;..]BEGIN 필요한 기능;END;인자 값은 필수가 아니다.BEGIN과 END 사이에 인자 값을 활용할 수 있다.프로시저 호출EXEC 프로시저명; 프로시저의 장점과 단점장점최적화 & 캐시프로시저의 최초 실행 시 최적화 상태로 컴파일되며, 그 이후 프로시저 캐시에 저장된다.만약 ..

CS 2024.11.12

B Tree & B+ Tree

B Tree 자료구조이진 탐색 트리와 유사한 자료구조자식 노드를 둘 이상 가질 수 있고 Balanced Tree 라는 특징이 있다.✅ 탐색 연산에 있어 O(log N)의 시간 복잡도를 가진다.모든 노드들에 대해 값을 저장하고 있으며 포인터 역할을 동반한다.규칙노드의 자료수가 N이면, 자식 수는 N+1이어야 한다.각 노드의 자료는 정렬된 상태여야 한다.루트 노드는 적어도 2개 이상의 자식을 가져야 한다.루트 노드를 제외한 모든 노드는 적어도 M/2개의 자료를 가지고 있어야 한다.외부 노드로 가는 경로의 길이는 모두 같다.입력 자료는 중복될 수 없다.데이터 삽입추가는 항상 리프 노드에 한다.노드가 넘치면 가운데 key를 기준으로 좌우 key들을 분할하고 가운데 key는 승진한다.📢 노드가 넘치는 경우 : ..

CS 2024.11.11

SQL - 인덱스(Index)

🔎 인덱스?추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 * 데이터베이스의 index는 책의 색인과 같다 주의! 오히려 필요 없는 인덱스를 만들게 되면 데이터베이스가 차지하는 공간만 더 늘어나고, 인덱스를 이용해서 데이터를 찾는 것이 전체 테이블을 찾아보는 것보다 느려질 수 있다. 인덱스의 장점과 단점장점적절한 인덱스를 생성하고 인덱스를 사용하는 SQL을 만든다면 기존보다 아주 빠른 응답 속도를 얻을 수 있다.전체 시스템의 성능이 향상되는 효과도 얻을 수 있다.단점인덱스도 공간을 차지하기 때문에 데이터베이스 안에 추가적인 공간이 필요하다.SELECT가 아닌 데이터의 변경 작업(INSERT, UPDATE, DELETE)이 자주 일어나면 오히려 성능이..

CS 2024.11.10