Computer Science 27

[CS 정리] Redis 정리

우아한 테크톡 관련된 유튜브 강의 정리 내용입니다. 정확한 내용을 학습하고 싶으면 강의 링크를 참고하시면 됩니다. Redis Remote → 외부 dictionary → HashMap Key-Value 형태 server → 서버 메모리 기반의 키-값 구조 데이터 관리 시스템이며, 모든 데이터를 메모리에 저장하고 조회하기에 빠른 Read, Write 속도를 보장하는 비 관계형 데이터베이스이다. Cache 나중의 요청에 대한 결과를 미리 저장했다가 빠르게 사용하는 것 In-memory Database(Cache) Database보다 더 빠른 Memory에 더 자주 접근하고 덜 자주 바뀌는 데이터를 저장합니다. Data Structure(데이터 형식) Redis Collection String List Set..

[CS 정리] 트랜잭션 정리

우아한 테크톡 관련된 유튜브 강의 정리 내용입니다. 정확한 내용을 학습하고 싶으면 강의 링크를 참고하시면 됩니다. 트랜잭션이란? 여러 쿼리를 논리적으로 하나의 작업으로 묶어주는 것 거래가 일어날 때 실행되는 쿼리 UPDATE 문 : 구매자 계좌에서 10000원 빼기 UPDATE 문 : 판매자 계좌에 10000원 더하기 하지만 중간에 오류가 나면 10000원이 빠졌지만 판매자의 계좌에는 10000원이 들어오지 않을수도 있다. 따라서 여러 개의 쿼리를 하나의 트랜잭션으로 묶고, 트랜잭션은 커밋 혹은 롤백을 수행합니다. 트랜잭션의 성질 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질 원자성 트랜잭션은 DB에 모두 반영되거나, 전혀 반영되지 않아야 합니다. 일관성 트랜잭션 작업처리결과는 항상 일관성 있어..

[CS 정리] 프레임워크, 라이브러리, API 정리

우아한 테크톡 관련된 유튜브 강의 정리 내용입니다. 정확한 내용을 학습하고 싶으면 강의 링크를 참고하시면 됩니다. 프레임워크? 개발할 때에 번번히 쓰여지는 범용 기능을 한꺼번에 제공해 개발 효율을 향상을 목표하는 소프트웨어 환경 프레임워크의 특징 공통적인 개발환경을 제공합니다. 개발할 수 있는 범위가 정해져 있습니다. 제어의 역전이 발생합니다. 프레임워크의 대표적인 예 자바의 스프링 파이썬의 장고 자바스크립트 기반의 노드JS 라이브러리? 라이브러리는 개발자가 사용할 수 있는 API들을 종류나 목적에 따라서 나누어 정의한 API 묶음 입니다. 라이브러리는 시스템에 기본적으로 설치되어 있는 기본 라이브러리와 제조사나 외부 메이커에 의해서 만들어지는 확장 라이브러리로 나뉩니다. 라이브러리 → 재사용 가능한 코..

[CS정리] RESTful 정리

우아한 테크톡 관련된 유튜브 강의 정리 내용입니다. 정확한 내용을 학습하고 싶으면 강의 링크를 참고하시면 됩니다. REST 란? REpresentational : 표현 State : 상태 Transfer : 전달 자원의 표현 = HTTP URI 상태 전달 = HTTP Method 웹의 장점을 최대한 활용할 수 있는 아키텍처 RESTful? 아키텍처 스타일의 제약 조건을 모두 만족하는 시스템 REST 아키텍쳐의 제약 조건 Client - Server (클라이언트 서버 구조) Stateless (무 상태성) Cache (캐시 처리 가능) Uniform Interface(유니폼 인터페이스) Identification of Resources Manipulation of Resources through Repre..

[CS 정리] JDBC, SQLMAPPER, ORM

우아한 테크톡 관련된 유튜브 강의 정리 내용입니다. 정확한 내용을 학습하고 싶으면 강의 링크를 참고하시면 됩니다. 재정리 진행예정인 페이지입니다. JDBC, SQLMAPPER, ORM 의 공통점 영속성(Persistence) 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 속성 JDBC SQLMAPPER ORM 의 종류 JDBC API JAVA 진영의 Database 연결 표준 인터페이스 구조도 DriverManager를 통한 Connectiong 인스턴스 MyBatis SQL 분리를 목표로 하고 있습니다. 따라서 JAVA에서 작성하던 쿼리를 XML에서 작성하면 됩니다. ORM(Object-Relational Mapping) SQL에 의존적인 개발 물리적으로 SQL과 JDBC API..

[CS 정리] OSI 7 Layer

우아한 테크톡 관련된 유튜브 강의 정리 내용입니다. 정확한 내용을 학습하고 싶으면 강의 링크를 참고하시면 됩니다. OSI 7 Layer 물데네전세표응 물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층... 물리 계층(Physical Layer) 0과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려 보내고, 아날로그 신호가 들어오면 0과 1의 나열로 해석하여 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고받을 수 있게 해주는 모듈 두 대의 컴퓨터가 통신하려면? 모든 파일과 프로그램은 0 과 1의 나열입니다. 즉, 0과 1만 주고받을 수 있습니다. 1을 보낼 때는 + 5V의 전기를 전선으로 흘려 보내고 0을 보낼 때는 - 5V의 전기를 전선으로 흘려 보내면 0과 1의 전송이 가능할..

[CS 정리] 교착상태(Deadlock)

우아한 테크톡 관련된 유튜브 강의 정리 내용입니다. 정확한 내용을 학습하고 싶으면 강의 링크를 참고하시면 됩니다. 교착상태 (Deadlock) 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미합니다. 교착 상태 4가지 필요 조건 1. 상호 배제 조건 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 합니다. 2. 점유와 대기 조건 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 합니다. 3. 비선점 조건 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 합니다. 4. 순..

[CS 정리]캐시 정리

우아한 테크톡 관련된 유튜브 강의 정리 내용입니다. 정확한 내용을 학습하고 싶으면 강의 링크를 참고하시면 됩니다. 메모리 계층 구조 데이터를 저장하는 공간의 속도와 용량은 반비례 관계 속도가 빠른 메모리 일수록 용량이 작음 용량이 큰 저장장치는 속도가 느림 둘 다 잡기에는 비용이 많이 듬 그래서 데이터 저장 공간은 속도와 용량에 따라 특성에 맞게 역활을 나누어서 사용합니다. 데이터 저장 공간을 속도 - 용량 순서도래 쌓으면 마치 피라미드와 같은 형상이 나타납니다. 파레토의 법칙 원인 중 상위 20%가 전체 결과의 80%를 만든다는 법칙입니다. 2대 8 법칙이라고도 합니다. 데이터 지역성의 원리 자주 쓰이는 데이터는 시간적 혹은 공간적으로 한 곳에 몰려 있을 가능성이 높습니다. 시간 지역성 공간 지역성 캐..

[CS 정리]빌드 용어 정리

우아한 테크톡 관련된 유튜브 강의 정리 내용입니다. 정확한 내용을 학습하고 싶으면 강의 링크를 참고하시면 됩니다. 빌드 용어 정리 컴파일 vs 빌드 컴파일 원시 파일에서 컴퓨터가 알아들을 수 있도록 바꾸는 것이 컴파일입니다. 오브젝트 파일에 메소드, 라이브러리, 리소스 등을 연결시킨 파일이 실행 파일입니다. 빌드 Java에서의 대표적인 빌드 도구는 Maven, Gradle, ANT 있습니다. 빌드 도구란? 소스 코드로부터 실행 가능한 어플리케이션을 생성하는 것을 자동화하는 프로그램 Java의 빌드 도구들 ANT 빌드 도구 현대적인 빌드 도구 xml 절차적 유연성 스크립트를 직접 명시 Maven pom.xml 의존성 다운로드 가능 컨벤션 사용자 의도에 맞는 로직 개발이 어려움 Gradle Groovy / ..

[CS 정리]프로세스 ( Process ) vs 쓰레드 ( Thread )

우아한 테크톡 관련된 유튜브 강의 정리 내용입니다. 정확한 내용을 학습하고 싶으면 강의 링크를 참고하시면 됩니다. 실행 단위 cpu core에서 실행하는 하나의 단위로 프로세스와 스레드를 포괄하는 개념 프로세스 하나의 스레드만 가지고 있는 단일 스레드 프로세스 동시성 한 순간에 여러가지 일이 아니라, 짧은 전환으로 여러가지 일을 동시에 처리하는 것처럼 보이는 것 프로그램이 프로세스가 되면서 일어나는 건? 프로세스가 필요로 하는 것이 메모리에 올라갑니다. 이런 메모리는 4가지 영역으로 나눠져 있습니다. PCB 블럭 여러 프로세스의 작업 진행 PCB 가 돌아가면서 진행을 하는데 이게 바로 컨텍스트 스위칭입니다. 이런 복잡함을 해결하기 위해 경량화된 프로세스 버전인 스레드입니다. 스레드는 코드 데이터 힙 영역..