분류 전체보기(112)
-
[11650 - JAVA] 좌표 정렬하기_1
문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 단, 중복된 단어는 하나만 남기고 제거해야 한다. 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. import java.util.*; class Main { public static void main(String[] ages) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); Integ..
2023.12.27 -
[NetWork] 네트워크 기초
네트워크란 노드와 링크가 서로 연겨로디어 있거나 연결되어 있지 않은 집합을 의미한다. 여기서 노드란 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미한다. 처리량과 네트워크 지연 네트워크를 구축할 때는 좋은 네트워크로 만드는 것이 중요하다. 좋은 네트워크란 많은 처리량을 처리할 수 있으며 지연 시간이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크를 말한다. 처리량이란 링크를 통해 전달되는 단위 시간당 데이터양을 말한다. 단위로는 bps를 사용하고 초당 전송 또는 수신되는 비트 수라는 의미이다. 처리량은 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙에 영향을 받는다. 여기 그림의 대역폭이..
2023.12.27 -
[DB] 회복
회복은 데이터베이스에 장애가 발생했을 때 데이터베이스를 일관성 있는 상태로 되돌리는 dbms의 기능이다. 데이터베이스 시스템에서 발생할 수 있는 장애의 유형은 다음과 같다. 시스템 충돌 : 하드웨어 혹은 소프트웨어의 오류로 주기억장치가 손실되는 것을 말한다. 처리 중인 프로그램과 데이터의 일부 혹은 전부가 손실된다. 미디어 장애 : 헤드 충돌이나 읽기 장애로 보조기억장치가 손실되는 것을 말한다. 보조기억장치에 저장 중인 데이터의 일부 혹은 전부가 손실된다. 응용 소프트웨어 오류 : 데이터베이스에 접근하는 소프트웨어의 논리적인 오류로 트랜잭션의 수행이 실패하는 것을 말한다. 자연재해 : 화재, 홍수, 지진, 정전 등에 의해 컴퓨터 시스템이 손상되는 것을 말한다. 부주의 혹은 태업 : 운영자나 사용자의 부주..
2023.12.21 -
[DB] 트랜잭션 고립 수준
트랜잭션 동시 실행 문제 지금까지 설명한 락은 두 트랜잭션이 (쓰기, 쓰기)인 상황을 해결하기 위한 것이다. 두 개의 트랜잭션에서 트랜잭션 1은 읽기 작업을 하고 트랜잭션 2는 쓰기 작업을 한다. 락을 사용하여 두 트랜잭션을 동시에 실행시킬 수 있다. 그렇게 되면 두 트랜잭션의 동시 진행 정도를 과도하게 막기 때문이다. 동시성을 높이기 위해서는 좀 더 완화된 방법을 사용할 필요가 있다. 트랜잭션 동시 실행 문제 트랜잭션은 1은 읽기만 하기 때문에 갱신손실 같은 심각한 문제가 발생하지 않는다. 그러나 트랜잭션 1에서 오손 읽기(dirty read) 문제, 반복불가능 읽기 문제, 유령 데이터 읽기 문제 등이 발생할 수 있다. 읽기만 하는 트랜잭션이 쓰기 트랜잭션에서 작업한 중간 데이터를 읽기 때문에 발생하는..
2023.12.21 -
[DB] 동시성 제어
자동차 전용도로에 시간차를 충분히 두고 차를 진입시키면 충돌 사고가 발생하지 않는다. 그러나 차를 제어하지 않고 임의로 진입시키면 충돌 사고가 발생할 수 있다. 트랜잭션도 마찬가지이다. 한 개의 트랜잭션이 끝나고 다음 트랜잭션을 수행시키면 데이터베이스의 일관성에 문제가 없다. 그러나 데이터베이스는 공유를 목적으로 하기 때문에 가능한 많은 트랜잭션을 동시에 수행시켜야 한다. 동시에 수행되는 트랜잭션은 다른 트랜잭션이 같은 데이터를 공유하고 있다는 사실을 모를 수 있기 때문에 일관성이 훼손될 수 있다. 트랜잭션이 동시에 수행될 때, 일관성을 해치지 않도록 트랜잭션의 데이터 접근을 제어하는 DBMS의 기능을 동시성 제어라고 한다. 두 개의 트랜잭션이 한 개의 데이터에 동시 접근할 때 발생할 수 있는 상황을 정..
2023.12.20 -
[DB] 트랜잭션
트랜잭션은 DBMS가 데이터베이스를 다룰 때 사용하는 작업 단위이다. 트랜잭션은 데이터베이스의 무결성을 유지하기 위해 원자성, 일관성, 고립성, 지속성의 성질을 갖는다. DBMS는 트랜잭션이 이러한 성질을 유지할 수 있도록 지원한다. 각 개념에 대해 하나씩 살펴보자. 트랜잭션의 개념 트랜잭션은 DBMS에서 데이터를 다루는 논리적인 작업의 단위이다. 보통 단일 SQL문을 사용하여 다루기도 하지만 여러 개의 SQL문을 순차적으로 수행하여 다루기도 한다. 데이터베이스에서 트랜잭션을 정의하는 이유는 다음과 같다. 데이터베이스에서 데이터를 다룰 때 장애가 일어나는 경우가 있다. 트랜잭션은 장애 발생 시 데이터를 복구하는 작업의 단위가 된다. 데이터베이스에서 여러 작업이 동시에 같은 데이터를 다룰 때가 있다. 트랜..
2023.12.20