메모리가 많을수록 좋다. 코드를 짜니 스택오버플로우가 떴다. 등등 메모리 관련해서 이야기는 많이 합니다. 그러면 메모리와 힙, 스택은 정확히 무엇을 의미하는지 알아보겠습니다. 메모리의 용도 프로그램이 실행되기 위해서 우선 프로그램이 메모리에 로드가 되어야 합니다. 이 뿐만이 아니라 프로그램이 실행이 되면서 동적으로 추가되야할 부분이 있으면 메모리가 더 할당됩니다. 메모리 구조(공간) 프로그램에 할당된 메모리 구조는 아래와 같습니다. 1. 코드 영역 2. 데이터 영역 3. 스택 영역 4. 힙 영역 이러한 구조를 도식화 하면 아래와 같습니다. 그럼 이제 공간 하나하나씩 설명해보겠습니다. 코드(Code) 영역 실행할 프로그램의 코드가 저장되는 영역입니다. CPU가 프로그램을 실행할때 코드 영역에서 코드를 하나..
개발잡담
일상생활에서는 버퍼링 걸린다 라고 할때 쓰이고, 코딩을 하다보면 여러 분야에서 사용이 되는것이 버퍼입니다. 파일 입출력을 할때 크게 신경안쓰고 사용한 "버퍼" 과연 어떤 뜻인지 궁금하여 자세히 알아보았습니다. Buffer 의 사전적 의미 영단어 의미 1. 완충제 2. (기차나 철로의) 완충장치 3. (충격을) 완화하다 정보통신용어 의미 (네이버 지식백과 출처) 하나의 장치에서 다른 장치로 데이터를 전송할 경우에 양자간의 데이터의 전송속도나 처리속도의 차를 보상하여 양호하게 결합할 목적으로 사용하는 기억영역 즉 Buffer는 장치들 사이에서 데이터 전송할때 서로 다른 데이터 전송 및 처리 속도를 완충하기 위한 목적을 가진 장치임을 알 수 있습니다. Buffer는 데이터 전송 및 처리 속도 차이를 완충하기 ..
Base64 인코딩이란? Base 64란 이진 데이터를(Binary Data) 64개의 아스키코드 문자(char)로만 이루어진 텍스트로 표시하는 진법입니다. 아래 표를 보면 Padding 포함 64개로 이루어져 있습니다. 예시는 아래와 같습니다. Man이란 단어를 Bit로 8개씩 3단어 총 24Bit로 나열한 다음 이를 6Bit로 나눠서 이를 치환한 결과입니다. 이러한 방식으로 인코딩을 하는것을 Base64 인코딩이라고 합니다. Man은 총 24Bit로 Base64에서 나누는 6Bit와 나눠지는 숫자였습니다. 만약 Ma의 16Bit처럼 6으로 나눠지지 않는 경우는 아래와 같습니다. 이때 바로 Padding이 사용되어 빈칸을 매웁니다. Base64 사용하는 이유는? 예시로 사용한 Ma 같은경우 16비트에서..
문득 트랜잭션 트랜잭션이라 이야기 하는데 그럼 과연 트랜잭션이 의미하는것은 무엇인지 궁금했습니다. 이를 해결하기 위해 트랜잭션을 공부하게 되었습니다. 트랜잭션의 성질과 정의를 공부했습니다. 제가 공부한 내용에 대한 설명은 아래와 같습니다. 특징 DB에서 병행제어 및 회복 작업시 처리되는 작업의 단위. 하나의 트랜잭션은 commit이 되거나 rollback이 된다. 이 두 가지 특징을 생각하면 동시에 들어온 요구사항을 제어할 수 있으며, 오류가 발생 시 이를 회복(복구)을 할 수 있습니다. 그리고 작업을 정상적으로 완료하여 관리자(시스템)에게 알려주는 것이 commit이며, 만약 오류가 발생할 경우 rollback을 통해 작업 전 상태로 복구를 완료 후 관리자에게 알려주는 것임을 알 수 있습니다. 성질(A..
Spring Boot에서 MQTT를 이용하여 각종 IoT가 접목된 기기들을 컨트롤하고자 한다. 그러면 어떻게 Spring Boot에서 이를 사용할 수 있을까? 환경 버전 java : 11 spring boot : 2.7.6 1. MQTT 라이브러리 설치하기 우선 MQTT 라이브러리를 설치해야 이 기능을 사용할 수 있으므로 설치를 합니다. implementation 'org.springframework.integration:spring-integration-mqtt:5.5.14' 위 코드를 "build gradle" 파일 내에 있는 "dependencies" 에 추가합니다. 저는 5.5 보다 더 윗단계 라이브러리 사용시 호환성 문제로 작동하지 않는 부분이 있어 해당 버전을 사용했습니다. 2. 코드 작성 여..
갈수록 어마어마한 발전을 이루는 AI. 그 중에서 이미지 인식 기능도 매우 핫한 기능입니다. 이걸 맛보기로 한번 해보려고 합니다. 이미지 인식이란? 이미지 인식를 간략하게 표현하자면, 어떠한 이미지가 입력되면 해당 이미지 내의 객체가 무엇인지 알려주는 것이라고 생각하면 됩니다. 아래 예시 사진으로 한번 확인해 보시죠 보시면 평범한 사진이라도 객체의 특징을 잡아내서 무엇인지 알려주고 %까지 안내해줍니다. 굉장히 신기하면서 어려울 것 같은 이미지 인식을 우린 Yolo v5를 사용해서 간단하게 해봅시다. Yolo v5란? You Only Look Once 는 한번 보고 바로 인식을 하는데 목표를 둔 모델입니다. 이름 뜻 그대로 신속한 이미지 인식 성능을 보이는 모델입니다. 그럼 이를 사용해 detction(인..