CS 70

Lock 과 트랜잭션 동시성 제어

1. Lock 영화관 예약 시스템에서 두 명이 동시에 한 좌석을 요청할 때 정확히 한명만 좌석을 배정받을 수 있도록 해야한다. 이 때 사용되는 개념이 Lockdlek. 가. 공유적 Lock(Shared Lock) 공유 Lock은 데이터를 읽을 때 사용한다. 공유 Lock을 설정한 리소스에 다른 트랜잭션이 추가로 공유 Lock을 설정할 수 있지만, 배타적 Lock은 설정 불가능하다. 따라서 자신이 읽고 있는 리소스를 다른 사용자가 동시에 읽을 수는 있어도 변경은 불가능하다. 또한, 다른 사용자가 읽고 있는 리소스를 동시에 읽을 수 는 있어도 변경은 불가능하다. 나. 배타적 Lock 배타적 Lock은 데이터를 변경할 때 사용하며, 트랜잭션이 완료될 때까지 유지된다. 배타적 Lock은 Lock이 해제될 때까지..

CS/DataBase 2022.12.29

Oracle PL/SQL

1. PL/SQL (Procedural Language extension to SQL) SQL을 확장한 절차적 언어(Procedural Language)이다. PL/SQL은 블록단위로 구성되며 논리적인 작업을 진행하는 여러 명령어들을 하나의 블록으로 만들어서 모듈식 프로그램 개발이 가능해진다. 2. 종류 Procedure, Function, Trigger 3. 트랜잭션(TCL) = 데이터베이스의 논리적 연산 단위 트랜잭션은 밀접힌 관련돼 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다. 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다. DDL의 경우(CRATE, ALTER, DROP, RENAME, TRUNCATE 등) 자동으로 커밋됨. 데이터 베이스를 정상적으로 접속 종료하면 DML ..

CS/DataBase 2022.12.29

쉘 스크립트(.sh)

1. 쉘 스크립트란 쉘에게 어떤 명령을 할지 스크립트를 .sh 파일 확장자로 생성하고 파일로 작성 후 파일을 실행하는 방식을 사용한다. sh 파일로 해주는 것은 리눅스 사용자에 ASCII test 실행파일이라는 것의 암묵적 약속이다. 파일 생성 : vi script.sh 쉘은 커널과 사용자간의 중간 다리 역할을 한다. 사용자로부터 명령을 받아 명령을 해독하고 프로그램을 실행한다. 즉, 사용자가 사용자 프로그램(에디터, 서버, 터미널 등)을 이용해 명령어를 입력하면 사용자가 이용하는 쉘이 명령을 받아 커널에 전달해준다. 커널은 하드웨어를 감싸고 있어 하드웨어를 직접적으로 제어하는 역할을 하며, 컴퓨터가 이해할 수 있는 기계어를 통해 하드웨어에게 전달해주는 역할을 한다. 2. 용도 보통 자동화 작업을 위해 ..

리눅스 권한 및 사용자 관련

1. 사용자 변경 슈퍼 사용자 되는 법 : sudo ~ || sudo su - root 그룹 관리 : 계정들의 모음 https://withcoding.com/106 리눅스 su, sudo 명령어 사용법 정리 (root 권한 획득 방법) 리눅스(Linux)에서 특정 명령을 실행하거나 파일에 접근하기 위해서는 루트(root) 권한이 필요합니다. 일반 사용자(유저)가 root 권한을 사용하기 위해서 su, sudo 명령어를 사용합니다. 이 글에서는 withcoding.com 2. 리눅스 권한 파일이랑 디렉토리 구분 : -rw-r----- vs drwxrwxrwx r: read, w: write, x: execute 첫번째 rwx : 소유자 의미 두번째 rwx : 그룹권한 세번째 rwx : 다른 사용자의 권한...

Sonatype Nexus

0. 저장소(Repository) 언어마다 별도의 저장소 있다. Python - https://pypi.python.org Java - https://repo1.maven.org/ 1. Nexus란 = 저장소 관리자 다양한 형식의 사설 저장소를 만들고 메인 저장소를 Cache할 수 있는 기능도 제공하여 저장소를 관리할 수 있도록 도와줌. Maven에서 사용할 수 있는 가장 널리 사용되는 무료 저장소이다. 2. Nexus가 필요한 이유? 회사, 단체의 화이트 리스트로 인해 외부 리포지토리에 접속하기 어려운 경우 Proxy역할을 한다. 한번 다운로드 받은 dependency는 로컬에 저장되어서 협업 시 다른 PC에도 설치해야한다. 또한, 개발팀에서 사용하는 공통 라이브러리를 공유할 수 있다. 외부망 연결이 ..

CS/ETC. 2022.12.23

MIME 타입

1. 종류 text/plain text/html image/jpeg image/png audio/mpeg audio/ogg audio/* video/mp4 application/octet-stream 1) text : (텍스트를 포함하는 모든 문서를 나타내며 이론상으로는 인간이 읽을 수 있어야 한다.) ex) text/plain, text/html, text/css, text/javascript 2) image : (모든 종류의 이미지를 나타낸다. (animated gif처럼) 애니메이션되는 이미지가 이미지 타입에 포함되긴 하지만, 비디오는 포함되지 않는다.) ex) image/gif, image/png, image/jpeg, image/bmp, image/webp 3) audio : (모든 종류의 오디..

CS/Network 2022.12.22

ORACLE 프로시저

1. 프로시저란? 오라클에서의 프로시저는 PL/SQL을 통해 만들어진다. 자주 사용하는 SQL을 프로시저로 만든 뒤 필요 할때마다 호출,사용하여 작업 효율을 늘릴 수 있다. 오라클 함수는 특정 연산을 수행한 뒤 결과 값을 반환하지만 프로시저는 특정한 로직을 처리하기만 하고 결과 값은 반환하지 않는 서브 프로그램이다.( 따라서 프로시저는 함수처럼 SELECT절에는 사용할 수 없다.) 또한, 프로시저란 application의 특정 business logic을 캡슐화하여 재사용 가능하게한 단위이며 Oracle Database에 Schema Object로 저장된 명명 Block이며 Module 단위 Programming이다.(DB 단에서 특정 비즈니스 로직을 지정해 놓고 호출을 통해 언제든 재사용하는 비즈니스로..

CS/DataBase 2022.12.21

MySQL data Directory의 위치

SHOW VARIABLES LIKE 'datadir'; https://bizadmin.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%9D%98-%EC%9C%84%EC%B9%98 mysql 데이터 디렉터리의 위치 UNIX 환경에서는 MySQL을 소스로 부터 설치할 경우, /usr/local/mysql/var가 기본 위치이고, 바이너리 배포를 가지고 설치할 때는 /usr/local/mysql/data가 기본 위치가 되며, RPM 파일을 가지고 설치할 때는 /var/ bizadmin.tistory.com

CS/DataBase 2022.12.21

세션 클러스터링

1. 세션 클러스터링 https://kku-jun.tistory.com/44 세션 클러스터링이란? 세션 클러스터링이란? 세션 클러스터링이란 WAS가 2대 이상 설치가 되어있을 경우 세션을 공유하여 대체된 WAS에도 동일한 세션을 관리하는 것을 의미합니다. 예를 들어 L4 스위치가 사용자를 접 kku-jun.tistory.com https://junshock5.tistory.com/91 세션 클러스터링 이란? 세션 클러스터링 이란? 두 대 이상의 WAS를 이용하는 경우 로드 밸런싱(대용량 트래픽 처리시 분산시키는 것), 또는 failover(장애 발생시 예비시스템으로 자동전환, 서버 이중화), auto scaling(AWS에서 junshock5.tistory.com 2. JBoss Infinispan ht..

CS/Network 2022.12.11

Http와 REST

1. Http 프로토콜 HTTP 메시지 프로토콜은 반드시 request/response의 한쌍으로 구성되어있다. 그리고 request와 response는 각각 header와 body로 이루어져 있고 header와 body 사이에는 반드시 한 줄이 띄어져야 한다. Http는 반드시 먼저 요청을 보내야지 response를 받기 때문에 카카오톡과 같이 서버로부터 데이터를 먼저 받는 것은 불가능하다. 먼저 받으려면 FCM푸시나 소켓통신을 통해서 해결해야 한다. 1) Request 헤더에는 : 리퀘스트라인(리퀘스트에 사용하는 메소드, URI), 상태라인, 헤더필드, 엔티티 헤더필드가 있다. 1) Http method http method는 request 헤더의 첫 번째 줄 첫 번째에 명시되어 있다. method의..

CS/Network 2022.12.10