전체 글
-
Spring과 Spring BootSpring Framework 2021. 12. 18. 00:03
Spring 과 Spring Boot Spring에 대하여 모르시는 분들은 아래의 글을 보고오시면 좋을것 같습니다. https://junuuu.tistory.com/17?category=968779 Spring Framework의 유래 Spring Framework란? 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 앤터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션으로 과거에 Java junuuu.tistory.com Spring Boot란? 스프링 부트 홈페이지에 가면 아래와 같은 글이 적혀있습니다. Spring Boot makes it easy to create stand-alone, production-grade Spring based Applica..
-
인터넷 네트워크CS/네트워크 2021. 12. 17. 21:37
HTTP는 인터넷 네트워크에 기반하여 동작하기 때문에 HTTP를 알아보기 전에 인터넷 네트워크를 알아보는 시간을 가지겠습니다 인터넷 사이에서 컴퓨터 둘은 어떻게 통신할까요? 서버와 클라이언트가 붙어있다면 케이블로 연결해서 통신할 수 있지만 만약에 한국과 미국이 메시지를 통신해야 한다면 인터넷망(해저케이블, 인공위성 등)을 통해 통신이 이루어져야 합니다. 인터넷이란? 인터넷이란 inter-network 라는 말에서 시작되었으며 여러 통신망을 하나로 연결하는 의미로 사용됩니다. 즉 인터넷이란 전 세계의 수많은 클라이언트 컴퓨터와 서버 컴퓨터, 그리고 이들로 구성된 네트워크들의 집합체입니다. 그러면 어떻게 목적지까지 안전하게 도착할까요? IP(인터넷 프로토콜)을 사용합니다. 인터넷 프로토콜이란 IP 주소를 기..
-
[Java] 인터페이스(Interface)Java 2021. 12. 16. 22:35
인터페이스(Interface)란? 인터페이스는 사전적 의미로 서로 다른 두 시스템, 장치 , 소프트웨어를 이어 주는 부분이며 대표적으로 프로그램과 사용자 사이를 이어주는 GUI가 대표적입니다. 사용자는 구현에 관심이 있고 자바 입장에서는 사용에 관심이 있습니다. 내부적으로 동작은 어떻게 하는지 모르지만 사용자는 인터페이스를 이용하여 추상화하고 자바 입장에서는 이를 사용해야 하기 때문에 이를 인터페이스라고 부릅니다. 자바에서 인터페이스는 일종의 추상클래스입니다. 하지만 추상 클래스보다 추상화 정도가 높아 일반 메서드, 멤버 변수를 구성원으로 가질 수 없습니다. 추상 클래스가 미완성 설계도라면 인터페이스는 기본 설계도라고 할 수 있습니다. 인터페이스는 추상 클래스처럼 다른 클래스를 작성하는데 도움을 주는 목..
-
[Java] 추상클래스(Abstract Class)Java 2021. 12. 15. 23:30
추상클래스(Abstract Class)란? 추상클래스는 추상 메서드를 포함한 클래스를 말합니다. 추상메서드는 구현부가 없이 선언부만 있는 메서드입니다. 여기서 선언부는 반환값, 메서드 이름, 매개변수를 말합니다. 상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스이며 일반 클래스를 "설계도" 라고 한다면 추상 클래스는 "미완성 설계도"라고 표현할 수 있습니다. 선언부에 'abstract'라는 키워드를 붙여 만들 수 있습니다. 다음은 추상클래스의 예시입니다. abstract class 클래스이름 { .... public abstract void 메서드이름(); } 추상클래스로 "객체"를 생성할 수 있을까요? "미완성 설계도"이기 때문에 객체(인스턴스)를 생성할 수 없습니다. 따라서 상속을 통해 자식 ..
-
쿼리 프로세싱(Query processing)CS/데이터베이스 2021. 12. 14. 00:01
쿼리 프로세싱(Query Processing)이란? 데이터베이스에서 데이터를 가져오거나 데이터를 삽입할 때 사용하는 언어를 Query라고 한다. Query Processing이란 우리가 보낸 Query를 데이터베이스가 처리하는 과정을 말한다. 기본적인 쿼리 프로세싱 과정 1. 입력받은 Query(SQL)를 parser and translator(Compiler)가 relational-algebra expression 형태로 변환한다. Query(SQL) 예시 SELECT balance FROM account WHERE blanace < 2500; Relational-algebra expression 예시 parser and translator의 결과가 1개 이상일 수 있다. 2. optimizer가 데이..
-
트랜잭션 격리 수준(Isolation Level)CS/데이터베이스 2021. 12. 13. 18:14
격리 수준(Isolation Level)이란 무엇일까? 동시에 여러 트랜잭션이 처리될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용할지 말지 결정하는 것 4가지의 Level로 구분됩니다 READ UNCOMMITTED COMMIT 되지 않은 데이터를 읽을 수 있다. READ COMMITTED COMMITTED된 데이터만 읽을 수 있다. REPETABLE READ COMMITTED 된 데이터만 읽을 수 있다. 어떤 데이터를 읽는 도중 변경이 허용되지 않는다. SERIALIZABLE COMMITTED 된 데이터만 읽을 수 있다. 어떤 데이터를 읽는 도중 변경(Update)이 허용되지 않는다. 어떤 데이터를 읽는 도중 삭제(Delete)나 추가(Insert)를 허용하지 않..
-
동시성 제어(Concurrency Control)CS/데이터베이스 2021. 12. 12. 23:37
Lock-based protocol 트랜잭션 A, B가 가 동시에 수행될 때 다른 트랜잭션이 권한을 요청할 때 사용되고 있다면 lock을 걸어 사용할 수 없도록 하는 방식 데이터베이스 전체를 lock 하면 쉽지만 본질적으로 Concurrent 하지 않음 Lock의 범위를 테이블로 축소하면 동시성은 늘어나지만 문제는 생길 여지는 있음. 동시성을 최대한 늘리면서 비일관성이 일어나지 않게 하는 것이 우리의 목표 Lock을 걸면 항상 동시성이 제어될까? lock을 짧게 걸게 되면 비일관성이 발생함 A+B = 항상 300으로 유지되어야 하는데 display(A + B) = 250이 돼버렸음.. 어떻게 해결하면 될까? lock을 밑에 걸어버리면 비일관성을 해결할 수 있음. 밑에 걸면 모든 게 끝인가? 하지만 교착상..
-
동시 트랜잭션(Concurrent Transaction)CS/데이터베이스 2021. 12. 9. 23:41
지난번에 트랜잭션에 대하여 알아보았습니다 https://junuuu.tistory.com/18 트랜잭션(Transaction)이란? 트랜잭션(Transaction)의 정의 Transaction은 "거래"라는 뜻을 가지지만 컴퓨터 과학분야에서는 "쪼개질 수 없는 업무처리의 단위"를 의미합니다. 데이터베이스의 상태를 변환시키는 하나의 논리적 기 junuuu.tistory.com 간단하게 복습하자면 트랜잭션이란 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위해 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다. Concurrent Transaction이란? 트랜잭션A와 트랜잭션 B가 있다면 A를 끝내고 B를 수행하는것이 아닌 A와B를 동시에 수행하는 것 왜 Concur..