개발자 125

프롬프트 엔지니어링(2) - 개요

본 블로그 포스트는 The RED : 프롬프트 엔지니어링, LLM(ChatGPT) 기반의 AI 서비스 개발의 강의의 내용을 복습하는 목적으로 만들어졌습니다. 1.프롬프트 엔지니어링이란? 2. 프롬프트 엔지니어링의 중점 보통 프롬프트 엔지니어링이라 하면 생성에 초점을 맞추게 됩니다. 하지만, 가장 중요한 부분은 어떤 정보를 이용하고 어떻게 조합할지 이것이 프롬프트 엔지니어링의 핵심입니다. 최종적으로 프롬프트 엔지니어링으로 이루고자 하는 목표는 바로 초개인화된 프로그램을 만드는 것입니다. 즉, 프롬프트를 가지고 바로 답변을 하는 것이 아닌 사용자가 원하는 내용을 정확히 찾아와서 사용자가 요청한 내용을 합쳐서 사용자가 원하는 정확한 정보를 제공하는 이것이 프롬프트 엔지니어링의 가장 중요한 부분입니다. 3. 생..

프롬프트 엔지니어링의 기초 (1) Rule-Base AI , Machine Learning

Rule-Based AI 란? 규칙 기반 시스템은 자신의 할 일만 하도록 프로그래밍 된 시스템 Machine Learning 라벨링 안된 데이터 등으로 업무를 해석하고 분류하고 수행하는 프로그래밍 위 말로 바로 이해하기 어려우니 아래 그림과 같이 설명하겠다. 예를 들어, 위 사진과 같이 인간이 오렌지의 특징을 기술하면 AI가 오렌지라고 인식하는 Rule-base AI와 오렌지 사진을 보고 오렌지라 말해주면 그 특징을 기술하는 것이 Machine Learning 이다. 위와 같이 다른 형태의 오렌지를 인식하고 싶을경우 Rule-base에서는 직접 찾아서 입력해야하는 반면 Machine Learning에서는 이것도 오렌지야라고 학습시킬 시 AI가 사진에서 오렌지의 특징을 학습하는 것이다. 그렇다면 Unsup..

[김영한강의] 자바 복습 3. 전/후위 증감 연산자

1. 전/후위 증감 연산자 public static void main(String[] args) { // 전위 증감 연산자 사용 예 int a = 1; int b = 0; b = ++a; // a의 값을 먼저 증가시키고, 그 결과를 b에 대입 System.out.println(" a = " + a + ", b= " + b); // 후위 증감 연산자 예 a = 1; b = 0; b = a++; // a의 현재 값을 b에 먼저 대입하고, 그 후 a 값을 증가시킴 System.out.println(" a = " + a + ", b= " + b); } 대입할때 전위증감연산자는 a의 값을 증가시키고 b에 대입한다. 후위증감연산자는 a의 값을 먼저 대입하고 a를 증가시킨다. 매우 자주 사용하는 증감연산자였지만, 대..

[김영한강의] 자바복습 2. 연산자 우선순위

1. 괄호 () 2. 단항 연산자 (예: ++ , -- , ! , ~ , new , (type) ) 3. 산술 연산자 ( * , / , % 우선, 그 다음에 + , - ) 4. Shift 연산자 ( > , >>> ) 5. 비교 연산자 ( = , instanceof ) 6. 등식 연산자 ( == , != ) 7. 비트 연산자 ( & , ^ , | ) 8. 논리 연산자 ( && , || ) 9. 삼항 연산자 ( ? : ) 10. 대입 연산자 ( = , += , -= , *= , /= , %= 등등 연산자 우선순위는 상식선에서 생각하고, 애매하면 괄호를 사용하자 누구나 코드를 보고 쉽고 명확하게 이해할 수 있어야 한다. 개발자들이 연산자 우선순위를 외우고 개발하는 것이 아니다! 복잡하면 명확하게 ..

[김영한강의] 자바 복습 1. 변수 초기화

실무를 경험하면서 가장 많이 느꼈던 것은 모래위에 성을 쌓는다는 느낌을 받았다. 김영한님의 강의를 통해 자바를 복습하면서 내가 자세히 알지 못하고 사용했던 것에 대해 정리하고자 한다. 1. 변수 초기화의 개념 자바의 변수 초기화란 아무것도 없는 값에 값을 넣는 행위를 뜻한다. package variable; public class Var5 { public static void main(String[] args) { // 1. 변수 선언, 초기화(아무것도 없는 값에 값을 넣는행위) 각각 따로 int a; a = 1; System.out.println(a); int b = 2; // 2. 변수 선언과 초기화를 한번에 System.out.println(b); int c = 3, d = 4; // 3. 여러 변..

[Docker] Centos7 Docker 설치하기 및 오류해결

Docker 설치에 관한 것은 아래 홈페이지에 잘 나와 있습니다. 여기서는 이렇게 했구나~ 용도로 참고해주세요+ 오류해결 docs.docker.com/engine/install/centos/ Install Docker Engine on CentOS Learn how to install Docker Engine on CentOS. These instructions cover the different installation methods, how to uninstall, and next steps. docs.docker.com 1. Yum-utils 업데이트 [root@pulunick] su - [root@pulunick] 암호입력하시구 [root@pulunick] yum install -y yum-util..

개발자/Docker 2023.11.14

url 유효기간 설정_세션동작방식

@GetMapping("/file/downloadURL") public ResponseEntity downloadURL(@RequestParam String fileId, HttpServletRequest request) throws MalformedURLException { // fileId를 통해 파일 정보 조회 FileManageVO fileManageVO = fileManageService.selectFile(fileId); String orgnFileNm = fileManageVO.getOrgnFileNm(); // 원본 파일 이름 String strgFileNm = fileManageVO.getStrgFileNm(); // 저장된 파일 이름 String strgFilePth = fileMana..

개발자/Spring 2023.07.13

div 박스에 글이 넘칠때 + breakword를 사용한 후 \n이 안먹힐때

.talk_cont .talk_r .speech_bubble.bgyellow { background: #ffe817; max-width: 280px; overflow-wrap: break-word; white-space: pre-wrap; } 이런식으로 overflow-wrap에 break-word를 걸어두고 white-space에 pre-wrap을 걸게되면 정상적으로 글이 들어가는 것을 확인할 수 있다. 다만, 왜 url같은 것은 정상적으로 div박스에 안들어가고 넘치는지 알 수가 없었다. 아는 사람은 댓글 부탁해요

[오늘의 오류_회사]타임리프로 onclick 이벤트에서 전달받은 값을 JS로 넘기는 법/th:onclick과 onclick의 차이

현재 만들고있는 프로젝트의 html을 js와 분리 작업을 진행하던 중 controller부터 전달받은 데이터를 js로 넘기는 것이 잘 안됐었다. 스크립트를 선언하고 넘겨도 되지만 html을 최대한 깔끔하게 하고싶어 방법을 찾던 중 타임리프를 이용하면 가능했었다. th:onclick="deletePost([[${post.cd}]]) 이런식으로 타임리프를 이용하면 쉽게 값을 JS단으로 넘길 수 있다. 1줄요약 : 서버에서 가져오는 값이 있을때는 th:onclick 브라우저의 이벤트 발생은 onclick 이하 원문 th:onclick과 onclick의 차이점은 HTML과 Thymeleaf의 렌더링 방식에서 차이가 있습니다. 일반적으로 HTML에서 onclick은 클라이언트 사이드에서 동작하는 이벤트 처리기를 ..

[오늘의 오류_회사]스프링부트 오류_실행이 안될때_실행이 되다가 멈출때_리팩토링 시 발생할 수 있는 오류

스프링부트를 실행할때 실행이 되다가 바로 종료되는 경험을 해본 적 있을 것이다. 나의 경우 많은 오류를 겪었지만 오늘 PM의 요청으로 DatabaseConfig의 위치를 옮기던 중 실행이 안되는 오류를 겪었다. 이 오류의 경우 디버깅을 하지 않는 이상 오류나는 위치를 확인하기 어렵다. 오류의 이유는 databaseConfig와 Application이 같은 선상에 위치하지 않기 때문이다. 즉, 같은 패키지 안에 있지 않기 때문에 발생한다. 그래서 같은 패키지 안에 위치하게 해주거나, Application을 하나 더 상위 패키지로 위치하게 해주면 오류는 해결된다.