분류 전체보기 319

[데이터베이스] DML, DCL, DDL

1. DML (Data Manipullation Language) - 테이블내의 데이터를 입력,수정,삭제할때 사용하는 SQL언어 - 데이터를 실제로 DB에 저장할때는 COMMIT, 취소할때는 ROLLBACK을 사용한다. (1) select (조회) : 생성된 객체를 조회할 때 사용한다. (2) insert (삽입) : 생성된 객체의 데이터를 삽입할 때 사용한다. (3) delete (삭제) : 생성된 객체의 데이터를 삭제할 때 사용한다. (4) update (수정) : 생성된 객체의 데이터를 수정할 때 사용한다. 2. DDL (Date Definition Language) 자동 COMMIT 되지만, 컬럼 변경한 경우는 COMMIT 을 해야 적용되기도 한다. (1) create (생성) : 데이터베이스 객..

데이터베이스 2020.06.04

[운영체제] 스레드와 프로세스

[운영체제] 스레드와 프로세스 프로세스는 서로 완벽히 독립적인 공간을 가진다. 각자가 각자의 스택과 데이터 영역을 가지고, 보호받는다. 프로세스는 시작할 때 운영체제에서 PCB와 메모리 공간을 할당받고 초기화하는 과정이 필요하다. 다른 프로세스의 영역을 들여다볼 수 없기 때문에 프로세스끼리 통신하기 위해서 프로세스간 통신을 활용하거나 공유 메모리를 생성해 데이터를 주고받는 등의 번거로운 과정을 거쳐야만 한다. 은행 지점을 하나 새로 세우려면 부동산을 계약하고 내부 인테리어 공사를 진행하며, 은행 지점끼리 연락하기 위해서는 사람이 직접 가거나 전화를 해야 하는 상황을 생각해보면 된다. 반면 한 프로세스가 비정상적으로 종료해도 다른 프로세스에는 영향이 거의 없다. 은행 지점 하나가 화재 등으로 손상되어도 다..

운영체제 2020.06.01

[인프라] Docker & Kubernetes 01

최근에는 On-premise방식에서 Cloud 방식으로 넘어오게 되면서 개발자가 배포나 테스트 등을 직접 할 수 있게 되었고 이로 인해서 인프라 관련 지식이 필요하게 되었습니다. 인프라엔지니어의 업무였던 제품환경에 개한 배포나 테스트등도 애플리케이션 엔지니어가 직접 할 수 있게 되었기 때문에 os커널이나 네트워크등과 같은 인프라 기술의 기초 지식을 알아두어야 한다.​도커는 애플리케이션 실행에 필요한 환경을 ‘이미지’로 만들고 해당 이미지를 활용해 다양한 환경에서 실행 환경을 구축하기 위한 오픈소스 플랫폼입니다. 도커는 내부에서 컨테이너를 사용합니다.​일반적인 개발 환경에서는 잘 동작하다가 갑자기 스테이징이나 운영 환경(operating environment)으로 가면 동작하지 않는 경우가 있습니다. 이런..

IT인프라 2020.05.31

[컴퓨터구조] 파이프라이닝

[컴퓨터구조] 파이프라이닝 명령어 파이프라인(instruction pipeline)은 명령어를 읽어 순차적으로 실행하는 프로세서에 적용되는 기술로, 한 번에 하나의 명령어만 실행하는 것이 아니라 하나의 명령어가 실행되는 도중에 다른 명령어 실행을 시작하는 식으로 동시에 여러 개의 명령어를 실행하는 기법이다. 하나의 명령어는 여러 개의 단계로 나눌 수 있는데, 이때 하나의 명령어를 처리할 때까지 다음 명령어가 처리되지 않고 기다린다면, 명령어의 특정 단계를 처리하는 동안 다른 단계를 처리하는 부분은 아무 작업도 하지 않게 된다. 이때 파이프라인을 사용하면 한 명령어의 특정 단계를 처리하는 동안 다른 부분에서는 다른 명령어의 다른 단계를 처리할 수가 있게 되므로 속도가 향상될 수 있다. [컴퓨터구조] 파이프..

[컴퓨터구조] CPU와 파이프라인

[컴퓨터구조] CPU와 파이프라인 여러분이 만든 C소스를 컴파일을 하고 나면 하나의 바이너리가 만들어지겠죠. 이 바이너리를 실행하는 CPU는 8비트씩 바이너리를 읽어와서 실행을 한답니다. 그럼 32비트라면 어떻게 될까요? 아무래도 비트수가 많을 수록 '처리하는 속도'가 빨라지겠죠. 마이크로 프로세서 과목에서 반드시 이해하셔야 될 것은 LED ON/OFF 랍니다. C프로그램으로 LED ON/OFF 프로그램을 만들 수 있다면 임베디드 시스템에서 하드웨어를 제어할 수 있다는 의미죠. 왜냐하면 LED ON/OFF를 하려면 먼저 '회로도'를 보셔야 해요. CPU 어느 핀에 LED를 연결했는지 확인을 한 후 해당 핀에 어떻게 신호를 넣으면 될지 프로그램을 해야 하는데, 그러려면 CPU데이터 시트를 보면서 프로그램을..

[C/C++] 2의 보수 표현법과 정수 오버플로우

CPU 개발자라면 컴퓨터 상에서 정수 음수를 어떤식으로 표현하도록 만들었을까요? 가장 간단히 생각해보자면 우리가 부호를 통해서 음수 인지 양수 인지 나타내니까, 비슷한 방법으로 부호(sign bit)를 나타내기 위해서 1 비트를 사용하는 것입니다. (예를 들어서 0 이면 양수, 1 이면 음수) 그리고 나머지 부분을 실제 정수 데이터로 사용하면 되겠죠. 예를 들어서 가장 왼쪽 비트를 부호 비트라고 생각하자면 (참고로 아래 표현하는 수들은 모두 이진법으로 작성한 것입니다.) 0111(2)은 7(4+2+1)이 될 것이고 1111(2)은 맨 왼쪽 부호비트(sign bit)가 1 이므로 -7 을 나타내게 됩니다. 꽤나 직관적인 방식이기는 하지만 여러가지 '문제점'이 있습니다. 0000(2)과 1000(2) 둘 다..

[네트워크] HTTP 01

[네트워크] HTTP HTTP프로토콜은 TCP/IP기반의 네트워크를 바탕으로 WWW서비스를 위해서 디자인된 통신규약이다. 웹브라우저(클라이언트)는 HTML문서를 파싱해서 문서화면를 보여주는 역할을 한다. HTTP프로토콜의 특징 (1) Stateless하다 한 번 서버와 커넥션을 맺으면 서버와 커넥션을 유지해서 메시지를 주고 받는 것이 Stateful프로토콜. 예, FTP를 이용하여 데이터전송을 한다고 하면 FTP서버접속과 종료까지 클라이언트와 서버 사이에는 커넥션(connection)이 존재하고 있다. 이 커넥션이 유지되고 있는 도중에는 연속적인 작업요청을 할 수도 있다. HTTP프로토콜은 하나의 커넥션에서 연속적인 작업 요청을 할 수 없다. 하나의 작업요청마다 커넥션을 새로 맺어야 한다. statefu..