[Compiler] ARM Scatter file의 목적과 예제, scatter-loading
·
개발/개발 공통
임베디드에서 ARM 빌드하는 경우 자주 사용하는 scatter file에 대해서 간단하게 알아보도록 하겠습니다.  ARM Scatter file의 목적과 예제, scatter-loading    Scatter File이란?  Scatter file은 ARM 컴파일러에서 메모리 배치를 정의하는 파일입니다. 임베디드 시스템 개발에서는 제한된 메모리 자원을 효율적으로 활용하기 위해 코드와 데이터를 특정 메모리 영역에 배치해야 하는 경우가 많습니다. Scatter file은 이러한 메모리 배치를 설정하는 데 사용됩니다.ARM Linker는 scatter file에 정의된 지침을 따라 코드, 데이터, 스택, 힙 등을 적절한 메모리 영역에 배치합니다. 이를 통해 개발자는 하드웨어 특성에 맞는 메모리 관리와 성능 최..
포트 포워딩(Port Forwarding)에 대해서
·
개발/개발 공통
인터넷을 통해 외부에서 내 컴퓨터나 네트워크 장치에 접근해야 할 때가 있습니다. 이럴 때 유용하게 활용되는 기술 중 하나가 포트포워딩(Port Forwarding)입니다. 포트포워딩은 마치 건물의 특정 방으로 방문객을 안내하는 리셉션처럼, 외부에서 들어오는 요청을 내부 네트워크의 특정 장치로 안전하고 정확하게 전달해 주는 역할을 합니다. 이번 글에서는 포트포워딩의 개념, 작동 원리, 그리고 실생활에서의 활용 사례를 살펴보겠습니다.  포트 포워딩(Port Forwarding)에 대해서     포트와 포트포워딩의 기본 개념  1. 포트란 무엇인가요?컴퓨터 네트워크에서 포트(port)는 데이터를 주고받기 위해 열어놓은 창구와 같은 역할을 합니다. 각 포트는 숫자로 식별되며, 프로토콜과 서비스에 따라 특정 포트..
[LLM] LangChain, RAG를 위한 유용한 프레임워크
·
개발/개발 공통
최근 자연어 처리(NLP)와 인공지능(AI) 분야에서 점점 더 많은 관심을 받고 있는 도구가 있습니다. 바로 LangChain입니다. LangChain은 다양한 AI 모델과 시스템을 연결하고 확장할 수 있는 파워풀한 프레임워크로, 개발자와 데이터 과학자들에게 큰 도움이 되는 도구입니다. 이 글에서는 LangChain이 무엇인지, 어떻게 설치하고 사용할 수 있는지, 그리고 실제 예시를 통해 LangChain의 강력함을 살펴보겠습니다. AI 프레임워크 LangChain 사용 방법, 예시 LangChain LangChainLangChain’s suite of products supports developers along each step of their development journey.www.langcha..
[LLM] ChatGPT와 프롬프트 엔지니어링
·
개발/개발 공통
ChatGPT와 프롬프트 엔지니어링은 무엇인지 개념과 특징에 대해서 정리해 보도록 하겠습니다.   ChatGPT와 프롬프트 엔지니어링 목차ChatGPT란?프롬프트 엔지니어링이란?프롬프트 엔지니어링의 특징프롬프트 엔지니어링을 통해 성능을 높이는 예시   ChatGPT란?  최근에 많은 화제가 되어서 이제는 모르는 사람이 많이 없긴할텐데 정확하게 아시는 분은 생각보다 많지 않으신 것 같습니다. ChatGPT는 OpenAI에서 개발한 대화형 인공지능 모델로, GPT(Generative Pre-trained Transformer) 기술을 기반으로 합니다. GPT는 자연어 처리(NLP) 분야에서 강력한 성능을 보이는 언어 모델로, 방대한 데이터셋을 학습해 사람처럼 자연스럽게 글을 쓰거나 질문에 답할 수 있습니다...
[LLM] LLM의 문제점과 극복하기 위한 RAG에 대해서
·
개발/개발 공통
오늘은 LLM에 대해서 간단히 알아보고 문제점을 극복하기 위한 방법 중 RAG 기법에 대해 간단히 알아보도록 하겠습니다.  LLM의 문제점과 RAG에 대해서     LLM의 문제점 LLM은 거대 언어 모델의 약자로 이제는 모르시는 분이 많이 없을 것 같습니다. 많은 양의 언어 데이터를 학습하여 사람과 자연어로 대화할 수 있고 코드 생성, 번역 등 다양한 목적에 맞게 활용할 수 있는 도구입니다.대표적으로 ChatGPT와 같은 모델이 있고 2023년 ChatGPT 등장 후 많은 변화가 일어나고 있는데요.실제로 써보신 분들은 아시겠지만 몇 가지 문제점들이 있긴 합니다. 아무리 AI가 발전하고 학습을 잘했다고 하더라도 실제로는 한계점들이 있습니다. 기본적으로 학습된 데이터를 바탕으로 다음에 올 내용을 예측하는 ..
[데이터베이스] SQL과 NoSQL의 차이에 대해서
·
개발/개발 공통
데이터베이스를 선택해야 할 때 고민해야 할 포인트 중에 중요한 SQL과 NoSQL에 대해서 알아보도록 하겠습니다.   SQL과 NoSQL의 차이에 대해서    데이터베이스란? 데이터베이스는 현대 IT 인프라의 핵심으로, 데이터 저장, 관리, 검색에 필수적인 역할을 합니다. 데이터베이스는 크게 SQL과 NoSQL로 나뉘며, 각각의 장점과 단점을 가지고 있습니다. 이 글에서는 SQL과 NoSQL의 차이점을 설명하고, 구체적인 사례를 통해 어떤 상황에서 어떤 데이터베이스를 선택해야 할지에 대해 다루겠습니다.    SQL: 구조화된 데이터를 위한 선택  SQL(Structured Query Language)은 **관계형 데이터베이스 관리 시스템(RDBMS)**에서 사용됩니다. SQL 데이터베이스는 데이터를 테이..
[자격증] ISTQB CTFL 공부 기간, 합격 후기
·
개발/개발 공통
오늘은 지난번 공부하려다가 포기한 ISTQB CTFL 시험에 대한 소개와 공부 방법, 합격 후기 등을 소개하는 글을 써보겠습니다.   ISTQB CTFL 공부 기간, 합격 후기    ISTQB, 지난 포스팅 ISTQB® 란?ISTQB®(International Software Testing Qualifications Board)는 국제소프트웨어테스팅자격위원회로,2002년 11월 에든버러에서 공식 출범하여 벨기에에 헤드쿼터를 둔 비영리단체이다.세계적으로 단일하고, 보편적으로 적용되는 소프트웨어와 시스템 테스팅 전문가의 국제자격제도를 지원하며,전세계 테스팅 전문가들의 자발적인 활동으로 운영된다. 출처 : https://www.kstqb.org/about/about2.asp ISTQB는 위 설명에서 보시다시피..
[Design Pattern] Composite 패턴
·
개발/개발 공통
Composite 패턴구조 패턴 (Structural Pattern) 중 하나입니다. Composite 패턴은 클라이언트로 하려면 객별 객체와 복합 객체를 모두 동일하게 다룰 수 있도록 합니다. 설명이 패턴의 핵심 아이디어는 개별 객체와 복합 객체(Composite)를 동일한 인터페이스를 갖도록 설계하여 사용하는 것입니다. 이렇게 하면 클라이언트 코드가 개별 객체든 복합 객체든 동일한 방식으로 다룰 수 있게 됩니다. 대표적인 예제로 메뉴를 선택하는 상황을 생각해 볼 수 있습니다. 메뉴의 종류가 많은데, 하위 메뉴가 하위 메뉴를 포함하는 경우들이 있습니다. 예를 들어 분식집 메뉴가 아래와 같다고 생각해 봅니다. 참치김밥, 치즈김밥, 라면, 떡볶이 그러면 아래와 같이 카테고리를 나눌 수 있고, 오늘의 메뉴와..
[객체지향 SOLID 원칙] 의존성 역전 원칙(DIP)의 이해와 예제
·
개발/개발 공통
SOLID 원칙 중 마지막이면서 다소 어려운 의존성 역전 원칙에 대해서 예제를 통해 이해해 보도록 하겠습니다. 의존성 역전 원칙(DIP)의 이해와 예제 의존성 역전 원칙이란 객체들간의 의존관계는 있을 수밖에 없습니다. 이때 어디에서 어디로 의존하느냐가 중요합니다. 의존성 역전 원칙을 따르면, 상위 계층(정책 결정)이 하위 계층(세부 사항)에 의존하는 전통적인 의존관계를 반전(역전)시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있습니다. 이 원칙은 다음과 같은 내용을 담고 있습니다. 첫째, 상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다. 둘째, 추상화는 세부 사항에 의존해서는 안된다. 세부사항이 추상화에 의존해야 한다. 이 원칙은 '상위와..
[객체지향 SOLID 원칙] 인터페이스 분리 원칙(ISP)의 이해와 예제
·
개발/개발 공통
네 번째 SOLID 원칙인 인터페이스 분리 원칙에 대해서 예제를 통해 이해해 보도록 하겠습니다. 인터페이스 분리 원칙(ISP)의 이해와 예제 인터페이스 분리 원칙이란 인터페이스를 사용할 때 가능한 적은 인터페이스를 사용해야 한다는 원칙입니다. 거대한 인터페이스를 사용한다면 해당 인터페이스에서 사용 불가능하거나 의미 없는 인터페이스까지 사용할 수 있고 의존하게 되므로 불안정한 코드가 되거나 가독성에 좋지 않습니다. 따라서 꼭 필요한 전용 인터페이스를 사용하는 것을 선호해야 합니다. 2023.01.14 - [개발/개발 공통] - [객체 지향] SOLID 원칙에 대해서 알아보자 [객체 지향] SOLID 원칙에 대해서 알아보자 객체 지향을 공부하면서 SOLID 원칙을 빼놓을 수 없다. SOLID 원칙에 대해서 ..