Computer Science/etc5 Producer-Consumer Pattern이란? (개념 /예제) 서론 이번 글에서는 멀티 스레드 환경에서 자주 사용하는 생산자 소비자 패턴에 대해 알아보려한다. 바로 한번 알아보자. Producer-Consumer Pattern이란? 생산자 소비자 패턴은 작업 목록을 가운데 두고 작업을 생산해내는 주체와 작업을 처리하는 주체를 분리시키는 설계 방법을 말한다. 이 말이 지금은 당장 와닿지 않을 수 있다. 그러나 멀티 스레드를 구성해야하는 상황이라면 해당 내용은 필히 이해하고 구성하기를 권장한다. 이렇게 작업을 '생성'하는 부분과 '처리'하는 부분이 각각 감당할 수 있는 부하를 조절할 수 있다는 장점이 있다. 여기서 Producer는 작업을 새로 만들어 큐에 쌓아두고, Consumer는 (블락킹)큐에 쌓여 있는 작업을 가져다 처리하는 구조이다. Producer는 디스크I.. Computer Science/etc 2022. 7. 29. AES & SHA-256 암호화란 ? (개념 / 종류 / 특징) 서론 이번글에서는 AES란 암호화에 대해 정리해볼려 한다. 우선 프로그래밍에 앞서 사용자의 개인 정보에 대해서 암호화는 필수라고 생각한다. 필자는 이번에 대표적인 AES의 암 복호화에 대한 개념들을 정리해보려한다. 암호화란 ? 요즘의 우리는 컴퓨터, 휴대폰 등 전자 기기에 은행(금융) 정보나 본인의 민감 정보들을 넣어놓고 지낸다. 이러한 정보들을 외부에서 함부로 들춰보거나 해킹을 하면 안되기 때문에 우리 개발자들은 해당 정보들을 암호화를 하기 시작했다. 이러한 정보들을 암호화 처리할 경우 해당 정보를 읽을 수 없는 형식으로 변환을 하게 되는데, 우리는 이를 암호문이라 부르며 해당 정보에 접근하기 위해서는 암호화 키가 필요하다. 이 암호화 키를 이용하여 암호화 한것을 복호화하고 해당 정보들을 해당 키를 이.. Computer Science/etc 2022. 2. 18. 윈도우 후킹(Window Hooking)이란? ( Win32 API / API 정의) 서론 원격 제어 프로그램을 만들다 보니 후킹이라는 용어가 나오는데 공부하는 김에 해당 내용을 정리해 놓을려고한다. 후킹은 보통 해킹 용어로 많이 사용된다고 하는데, 나는 해킹보단 프로그램 기능 구현 할 때 사용할 것이기에 후킹이 어떤 녀석인지 이해 갈 정도로 가볍게 알아보자. 후킹이란 무엇일까? 위키 백과사전에 등록된 내용은 이렇다. 소프트웨어 공학 용어로 운영체제나 응용 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메세지, 이벤트 등을 중간에서 바꾸거나 가로채는 방법을 말한다. 위의 내용을 토대로 후킹에 윈도우 말이 앞에 붙으면 말그대로 OS에서 제어하는 윈도우의 기능(API)를 중간에 제어권을 가로챈다는 말이다. 이렇게 후킹하여 기존 윈도우에서 제어하는 키.. Computer Science/etc 2021. 12. 26. JIT와 AOT 컴파일러는 무엇일까? (JIT, AOT 방식 / 특징 / 사용언어) JIT(Just-In-Time) 방식 브라우저에서 파일들을 다운로드 한 뒤에 한번 컴파일해서 브라우저 엔진이 실행할 수 있는 저수준 언어로 바꿔준 후 화면을 렌더링 하는 방식이다. > 실행 시점에 바이트코드를 기계어로 번역한다. 특징 - 실행속도가 상대적으로 느리다. (why? 소스코드가 서버에서 컴파일 되는것이 아닌 사용자의 브라우저에서 컴파일 되는 방식이라서) - 앱설치 속도, 설치 용량 등이 AOT에 비해 빠르고 적게 차지한다. - 브라우저에서 여러 에러들을 발생시키고 확인할 수 있으며 디버깅이 가능하다.\ - CPU 사용이 AOT에 비해 높다 사용 - Java에서 사용되는 JVM(Java Virtual Machine) - C#에서 사용되는 CLR(Common Language Runtime) - P.. Computer Science/etc 2021. 12. 21. PS(Problem Solving) 에러와 디버깅에 관련하여.. PS란 보통 백준이나 프로그래머스와같은 온라인 문제풀이 사이트와 같은 곳에서 주어진 문제에 대해 제한된 시간과 메모리 내에서 문제를 해결하는 행위를 일컫는다고 한다. (여태 PS 란 단어 몰랐다가 요번에 백준에서 문제푸는데 런타임 에러가 자꾸 나서 이것저것 찾다가 첨 알았음) 아래의 사이트에는 PS 풀이 중 디버깅과 런타임 에러에 관련하여 좋은 정보를 정리해둔 글이다. 이 글을 보신분들은 한번씩 들어가셔서 보시면 좋을 것 같다. https://www.secmem.org/blog/2020/09/19/rte/ 모두 화이팅! Computer Science/etc 2021. 9. 29. 이전 1 다음 💲 많이 본 글