개발잡담/공부

쓰레드에 대해서는 저번에 알아봤습니다. 그러면 우리가 병렬연산을 해야할때 흔히들 사용하는 멀티쓰레드와는 어떤 관계인지, 어떤 차이점이 있는지 알아보겠습니다. 혹시나 저번 글을 못보신 분들은 아래 링크를 통해 보시면 됩니다. 쓰레드(Thread)는 무엇일까? (feat. JAVA) 개발을 하다보면 계산을 병렬적으로 처리할 필요가 있습니다. 그때 우린 흔히들 멀티쓰레드를 사용해라 라고 합니다. 멀티쓰레드는 쓰레드를 여러개(멀티)로 사용한다는건데, 그럼 과연 쓰레드 sonjuhy.tistory.com 멀티쓰레드(Multi Thread) 정의 말 그대로 여러개의 쓰레드를 의미합니다. 구조도 구조도에서 볼 수 있는것 처럼 프로세스 내부에 쓰레드는 여러개가 존재가 가능합니다. 쓰레드가 하나 인 경우는 단일 쓰레드,..
개발을 하다보면 계산을 병렬적으로 처리할 필요가 있습니다. 그때 우린 흔히들 멀티쓰레드를 사용해라 라고 합니다. 멀티쓰레드는 쓰레드를 여러개(멀티)로 사용한다는건데, 그럼 과연 쓰레드는 무엇일까 알아봅시다. 쓰레드(Thread) 정의 실행 중인 프로세스(≒프로그램) 내에서 실제로 작업을 실행하는 주체를 의미합니다. 아래 코드를 실행시키는 것도 하나의 쓰레드가 실행한다고 보면 됩니다. 실행 결과는 당연히 아래와 같습니다. 그러면 하나의 쓰레드 라는것은 여러개가 존재 가능하다는 것입니다. 단순하게 쓰레드를 2개 추가 실행시키는 예제 코드와 결과는 아래와 같습니다. 쓰레드를 2개를 추가로 실행시켜 각 쓰레드마다 hello()라는 함수를 실행시키는 간단한 예시 코드입니다. 실행 결과는 아래와 같습니다. 이번엔 ..
메모리가 많을수록 좋다. 코드를 짜니 스택오버플로우가 떴다. 등등 메모리 관련해서 이야기는 많이 합니다. 그러면 메모리와 힙, 스택은 정확히 무엇을 의미하는지 알아보겠습니다. 메모리의 용도 프로그램이 실행되기 위해서 우선 프로그램이 메모리에 로드가 되어야 합니다. 이 뿐만이 아니라 프로그램이 실행이 되면서 동적으로 추가되야할 부분이 있으면 메모리가 더 할당됩니다. 메모리 구조(공간) 프로그램에 할당된 메모리 구조는 아래와 같습니다. 1. 코드 영역 2. 데이터 영역 3. 스택 영역 4. 힙 영역 이러한 구조를 도식화 하면 아래와 같습니다. 그럼 이제 공간 하나하나씩 설명해보겠습니다. 코드(Code) 영역 실행할 프로그램의 코드가 저장되는 영역입니다. CPU가 프로그램을 실행할때 코드 영역에서 코드를 하나..
일상생활에서는 버퍼링 걸린다 라고 할때 쓰이고, 코딩을 하다보면 여러 분야에서 사용이 되는것이 버퍼입니다. 파일 입출력을 할때 크게 신경안쓰고 사용한 "버퍼" 과연 어떤 뜻인지 궁금하여 자세히 알아보았습니다. Buffer 의 사전적 의미 영단어 의미 1. 완충제 2. (기차나 철로의) 완충장치 3. (충격을) 완화하다 정보통신용어 의미 (네이버 지식백과 출처) 하나의 장치에서 다른 장치로 데이터를 전송할 경우에 양자간의 데이터의 전송속도나 처리속도의 차를 보상하여 양호하게 결합할 목적으로 사용하는 기억영역 즉 Buffer는 장치들 사이에서 데이터 전송할때 서로 다른 데이터 전송 및 처리 속도를 완충하기 위한 목적을 가진 장치임을 알 수 있습니다. Buffer는 데이터 전송 및 처리 속도 차이를 완충하기 ..
문득 트랜잭션 트랜잭션이라 이야기 하는데 그럼 과연 트랜잭션이 의미하는것은 무엇인지 궁금했습니다. 이를 해결하기 위해 트랜잭션을 공부하게 되었습니다. 트랜잭션의 성질과 정의를 공부했습니다. 제가 공부한 내용에 대한 설명은 아래와 같습니다. 특징 DB에서 병행제어 및 회복 작업시 처리되는 작업의 단위. 하나의 트랜잭션은 commit이 되거나 rollback이 된다. 이 두 가지 특징을 생각하면 동시에 들어온 요구사항을 제어할 수 있으며, 오류가 발생 시 이를 회복(복구)을 할 수 있습니다. 그리고 작업을 정상적으로 완료하여 관리자(시스템)에게 알려주는 것이 commit이며, 만약 오류가 발생할 경우 rollback을 통해 작업 전 상태로 복구를 완료 후 관리자에게 알려주는 것임을 알 수 있습니다. 성질(A..
Red-Hat
'개발잡담/공부' 카테고리의 글 목록