일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 자바
- 정렬
- 파이썬
- hadoop
- 백준 12761
- 백준 사이트
- MongoDB Realm
- 12761 돌다리
- domain driven develop
- 자바 디자인패턴
- 몽고디비 렘
- flask
- go
- 도메인 주도 개발
- golang
- ddd
- 우분투
- 도메인 주도 개발 시작하기
- 자바 디자인 패턴
- 백준
- 트리 순회
- String 함수
- 백준 12761번
- 백준 파이썬
- golang struct
- 고 배열
- 하둡
- http 개념
- 12761번 돌다리
- http 완벽가이드
- Today
- Total
목록개인 공부/기술 면접 (7)
개발바닥
뷰(View) 무엇인가? 뷰는 테이블과 유사하지만 실제 데이터가 없는 테이블을 바라보는 매개체이자 거울과 같은 개념이다. 직접 테이블에 접근하는 것이 아니라 테이블에서 사용자가 필요로 하는 부분만 선택하여 만들어 놓은 데이터 집합이다. 데이터베이스에 존재하는 일종의 가상 테이블이라고 생각하면 된다. 그러면 테이블을 사용하지 않고 뷰를 사용하는 이유는 무엇일까? 가장 큰 이유는 사용자의 편의와 데이터베이스의 보안 때문이다. 원본 테이블에 직접 접근하지 않아도 사용자가 임의의 뷰를 구성하여 별도의 이름을 붙이거나 접근 가능한 사람을 지정할 수 있기 때문이다. 뷰의 장단점에 대해서 알아보겠습니다. 장점 특정 사용자에게 테이블 전체가 아닌 필요한 필드만 보여줄 수 있다. 복잡한 쿼리를 단순화해서 사용할 수 있다..
C는 하드웨어와 밀접한 언어로 리소스가 많이 없는 기계에서 작동할 때 유리하다. 그리고 하드웨어와 매우 밀접하게 동작한다. C++는 C언어 확장된 언어이다. C 와 C++ 차이점 C C++ 절차지향 언어 객체지향 언어 class가 없다. class가 있다. 데이터 보안 불가능 데이터 보안 가능 표준 입출력 : scanf(),printf() ( 함수 ) 표준 입출력 cin, cout ( 객체 ) 하향식 접근 방식 ( top - down ) 상향식 접근 방식 ( bottom - up ) namepsace가 없다. namespace가 있다. 오버로딩을 지원하지 않는다. 오버로딩을 지원한다. C 와 C++ CLASS와 STRUCT 차이점 설명 C C++ C의 구조체는 함수 호출을 할 수 있다. 클래스내의 함수를..
세마포어와 뮤텍스를 알아보기 전에 어떤 상황에 필요한지에 대해서 알아보겠습니다. 동시성 프로그래밍의 가장 큰 숙제는 "공유자원 관리" 일 것입니다. 공유된 자원에 여러 개의 프로세스가 동시에 접근하면서 문제가 발생하는 것을 안전하게 관리하기 위해서는 상호배제를 달성하는 기법이 필요한데 세마포어와 뮤텍스가 이를 위해 고안된 기법으로 서로 다른 방식으로 상호배제를 달성합니다. 용어에 대해서 알아보겠습니다. 용어 설명 병행 프로세스 (Concurrent Process) 두 개 이상의 프로세스들이 동시에 존재하며 실행 상태에 있는 것을 의미한다. 여러 프로세스들이 독립적으로 실행되는 것을 독립적 병행 프로세서라 하고 서로 협력하며 동시에 실행되는 것을 협동적 병행 프로세스라고 한다. 임계구역 (Critical ..
동시성 제어( Concurrency Control ) 란? 동시에 실행되는 여러 개의 트랜잭션이 작업을 성공적으로 마칠 수 있도록 트랜잭션의 실행 순서를 제어하는 기법이다. 동시성 제어의 정의 다중 사용자 환경을 지원하는 데이터 베이스 시스템에서 여러 트랜잭션들이 성공적으로 동시에 실행될 수 있도록 지원하는 기능 다중 사용자 환경을 지원하는 DB system의 경우 필수적으로 지원해야 하는 기능으로 병행제어라고도 한다. 트랜잭션의 직렬화 수행 보장 동시성 제어의 목적 트랜잭션의 직렬성 보장 공유도 최대, 응답 시간 최소, 시스템 활동의 최대 보장 데이터의 무결성 및 일관성 보장 동시성 제어 기법의 종류 제어 기법 설명 락킹(locking) - 트랜잭션이 데이터에 잠금(lock)을 설정하면 다른 트랜잭션은..
트랜잭션이란? 데이터베이스의 DML(Data Manipulation Language), 즉 삽입(INSERT), 갱신(UPDATE), 삭제(DELETE)와 관련된 논리적인 작업을 말하며, DML 실행과 동시성 제어를 위한 중요한 개념이다. 관계형 데이터베이스 시스템은 데이터를 처리할 때 트랜잭션을 통해 정상 종료나 사용자 프로세스 실패나 시스템 실패와 같은 비정상 종료에 대해 데이터의 신뢰성과 일관성을 보장한다. 즉, 데이터베이스의 데이터 무결성이 보장되는 상태에서 DML 작업을 완수하기 위한 기본 작업 단위이다. 일반적으로 DML 실행과 실행에 대한 커밋/롤백 단계까지를 트랜잭션이라고 부르지만, 실무에서는 데이터베이스에서 SELECT 문으로 데이터를 조회하고 DML을 실행하여 종료하는 과정까지를 트랜잭..
파이프라이닝이란? 명령어를 순차적으로 실행하는 프로세서에 적용되는 기술로, 한 번에 하나의 명령어만 실행하는 것이 아니라 하나의 명령어가 실행되는 도중에 다른 명령어를 실행을 시작하는 식으로 동시에 여러 개의 명령어를 실행하는 기법이다. 이렇게 동시에 여러 개의 명령어를 처리하므로써 처리량을 올리는 것이 파이프라이닝의 핵심이다. 모든 단계는 원래의 동작 속도대로 일을 하면서 처리량을 늘리는 것이지 원래의 동작 속도를 단축시키는 것은 아니다. 아래 그림을 통해서 확인해보겠습니다. 세탁소에서 다음과 같은 순서로 일을 한다고 가정해 보겠습니다. 과정 1: 빨래를 세탁기에 넣는다. 과정 2: 세탁기를 동작시킨다. 과정 3: 건조기를 동작시킨다. 과정 4: 빨래를 갠다. 순차적 처리 세탁물 1,2,3에 대해서 동..
운영체제(Operation System) 란? 컴퓨터의 하드웨어를 관리하면서 하드웨어를 손쉽게 그리고 효율적으로 사용할 수 있는 abstraction을 제공하는 점을 알 수 있다. 예를 들면 CPU라는 하드웨어는 processs가 관리를 하고, Memory는 address space가 Disk는 file이 관리한다고 볼 수 있을 것이다. 또한 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중요한 역할을 하는 것을 생각할 수 있는데, 운영체제는 자원의 공유 및 분배를 위한 policy를 제공한다. 1. OS 용어 정리 용어 설명 프로그램 컴퓨터를 실행시키기 위한 일련의 순차적으로 작성된 명령어의 모음. 컴퓨터 시스템의 disk와 같은 secondary storage에 바이너리 형태로 저장되어 있다. 프로세스 메..