[AI] DX, AX란? - X의 의미
·
AI/AI
기업과 조직의 혁신을 이끄는 두 가지 중요한 개념인 DX (Digital Transformation)와 AX(AI Transformation)에 대해 이야기해보겠습니다. 1. DX (Digital Transformation)란?DX (Digital Transformation)는 기존의 아날로그 업무 프로세스를 디지털 기술을 활용하여 혁신하는 과정을 의미합니다.주요 내용:디지털 기술 활용: 클라우드, ERP, CRM 등 다양한 IT 인프라를 도입하여 업무를 자동화하고 효율성을 높입니다.목적: 비용 절감, 업무 효율성 증대, 사용자 경험 개선 등 기존 시스템을 혁신하는 데 중점을 둡니다.2. AI Transformation (AX)란?AI Transformation (AX)는 기존의 디지털 전환(DX)을 한..
[LLM] AI 언어 모델 종류 정리(LLM, SLM, sLLM, VLM, Vertical)
·
AI/LLM
1. 서론이번 글에서는 LLM, SLM, sLLM, VLM, Vertical AI 등의 다양한 언어모델의 개념을 정리하고, 각각의 차이점과 활용 가능성을 살펴보겠습니다.2. AI 모델의 주요 개념1. LLM (Large Language Model) - 대규모 언어 모델LLM은 대량의 데이터를 학습하여 다양한 자연어 처리를 수행하는 AI 모델이다.예시: GPT-4, Claude, Gemini, Llama특징: 자연어 생성, 번역, 코드 작성, 문서 요약 등의 기능 수행한계: 방대한 자원이 필요하며, 최신 데이터 반영이 어려움 2. SLM (Small Language Model) - 소형 언어 모델SLM은 LLM 대비 경량화된 모델로, 성능은 유지하면서도 효율적으로 작동한다.예시: Mistral 7B, Ph..
[LLM] LLM 모델과 에이전트의 차이점
·
AI/LLM
1. 서론Teddy님이 링크드인에 올려주신 너무 좋은 글을 참고하여 정리한 내용입니다. 평소에 Teddy님의 영상과 글을 자주 보고 있는데, 정말 많은 도움을 받고 있습니다. 항상 좋은 인사이트를 공유해 주셔서 감사합니다! 🙌 아래는 Teddy님이 정리해 주신 내용을 기반으로 LLM 모델과 에이전트의 차이점을 정리한 내용과 함께, 제가 생각하는 부분을 덧붙여 보았습니다.2. LLM 모델 vs 에이전트최근 AI 개발자들 사이에서 LLM 모델과 에이전트에 대한 관심이 높아지고 있습니다. 두 개념이 비슷해 보일 수 있지만, 기능적으로 상당한 차이가 있습니다. 🧠 1. 지식의 범위LLM 모델: 학습 데이터 내에서만 정보를 제공하며, 최신 데이터나 외부 시스템과의 연결이 불가능합니다.에이전트: API 호출, ..
[Spring] REST API 개발 시 Location 헤더의 필요성과 사용 방법
·
Spring/Spring
1. Location 헤더란?Location 헤더는 HTTP 응답 헤더 중 하나로, 서버가 클라이언트에게 새로 생성된 리소스의 URI를 명시적으로 전달할 때 사용됩니다. 주로 POST 요청으로 리소스를 생성한 후 응답 코드 201(Created)와 함께 제공되며, 클라이언트가 생성된 리소스를 쉽게 접근할 수 있도록 돕습니다.2. Location 헤더가 필요한 이유RESTful API 설계에서 Location 헤더는 다음과 같은 이유로 유용합니다.리소스 위치 명확화: 클라이언트는 Location 헤더에 포함된 URI를 통해 서버가 생성한 리소스의 정확한 위치를 알 수 있습니다. 예를 들어, 차단된 계정에 대한 URI를 전달받으면 클라이언트는 해당 URI를 통해 차단 상태를 쉽게 조회하거나 해제 요청을 할 ..
[AWS] 배포(Deployment), AWS EC2(Elastic Compute Cloud)의 개념
·
DevOps/AWS
개발자라면 한 번쯤은 "이제 기능 구현도 끝났고, 테스트도 끝났으니 배포하자!"라는 말을 들어봤을 것입니다.이때의 배포는 무슨 뜻일까요? 오늘은 배포(Deployment)의 개념과 서버 배포에 필수적인AWS EC2(Elastic Compute Cloud)에 대해 알아보겠습니다.  1. 배포(Deployment)란 무엇인가?배포(Deployment)란 개발된 애플리케이션을 다른 사용자들이 인터넷을 통해 사용할 수 있도록 만드는 과정을 의미합니다. 우리가 만든 웹 애플리케이션이나 서버가 실제로 다른 사람들에게 제공되려면 인터넷 상에서 실행되고 있어야 합니다. 이를 위해 배포는 필수입니다. 개발할 때는 주로 localhost라는 주소로 웹 애플리케이션을 테스트합니다. 하지만 localhost는 개인 컴퓨터에서..
[Java] String vs StringBuilder vs StringBuffer - 성능 비교 실험
·
Java/Java
Java에서 문자열을 다루는 방법은 다양하며, 대표적으로 String, StringBuilder, StringBuffer가 있습니다.이 세 가지 클래스는 각각의 특징과 성능이 다르기 때문에, 사용 상황에 따라 적합한 것을 선택하는 것이 중요합니다.이번 포스트에서는 String, StringBuilder, StringBuffer의 차이점과 장단점을 비교해 보겠습니다.  1. String, StringBuilder, StringBuffer란?Java에서는 문자열을 다루기 위한 여러 가지 클래스가 제공됩니다:String: 불변(immutable) 객체로, 한 번 생성되면 수정할 수 없습니다.StringBuilder: 가변(mutable) 객체로, 동기화를 지원하지 않아 싱글 스레드 환경에서 빠르게 동작합니다...
[Java] StringBuilder 메서드 정리
·
Java/Java
알고리즘 문제를 풀며 자주 사용했던 StringBuilder를 더 깊이 공부하고, 주요 메서드를 정리했습니다. StringBuilder는 문자열을 효율적으로 다룰 수 있는 강력한 도구로, 이를 잘 활용하면 성능을 크게 향상시킬 수 있습니다. 1. StringBuilder란?StringBuilder는 가변(mutable) 문자열을 처리하기 위해 Java 1.5(Java 5)에서 도입된 클래스입니다. Java의 String 클래스는 불변(immutable)이기 때문에 문자열을 조작할 때마다 새로운 객체가 생성되는데, 이는 성능 문제를 야기할 수 있습니다. 반면 StringBuilder는 기존 객체를 수정하여 효율적으로 문자열을 조작할 수 있습니다. StringBuilder의 특징가변성: 문자열을 추가, 수정..
[Kotlin] 8. 객체 지향 프로그래밍 (OOP)
·
Kotlin/Kotlin 입문
1. 객체 지향 프로그래밍의 필요성객체 지향 프로그래밍(OOP)은 코드의 재사용성과 유지 보수성을 향상시키기 위해 필요한 프로그래밍 패러다임입니다.OOP는 현실 세계의 개념을 클래스와 객체로 모델링하여 문제를 직관적으로 해결할 수 있도록 돕습니다.코드의 중복을 줄이고, 프로그램의 확장성을 높여주는 주요한 특징을 가지고 있습니다. 2. 객체 지향 프로그래밍의 주요 개념객체 지향 프로그래밍은 네 가지 주요한 특징으로 구성됩니다: 캡슐화, 상속, 다형성, 추상화.1. 캡슐화 (Encapsulation)캡슐화는 데이터를 보호하고, 외부에서 직접 접근할 수 없도록 은닉하는 개념입니다.클래스 내부의 필드와 메서드를 캡슐화하여, 객체의 상태를 안전하게 유지할 수 있습니다.예시)접근 제어자 private, protec..
[Kotlin] 7. 함수
·
Kotlin/Kotlin 입문
1. 함수의 필요성함수는 입력값에 따라 출력값을 만들어 반환하는 수학적 개념과 유사합니다.함수를 사용하면 반복되는 로직을 효율적으로 관리하고 재사용할 수 있습니다.예시) function이 2x + 1일 때:          input: 2 ⟶ output: 5          input: 8 ⟶ output: 17 2. 함수 사용함수는 특정 작업을 수행하는 코드의 블록입니다. 함수를 정의하고 필요할 때마다 호출함으로써 코드 중복을 줄이고 프로그램의 구조를 개선할 수 있습니다.함수 선언과 호출// 함수 선언(예시)fun 함수명(input1: 변수타입, input2: 변수타입): 반환되는변수타입 { return 반환값}// 함수 선언fun sum(a: Int, b: Int): Int { retu..
[Kotlin] 6. 배열
·
Kotlin/Kotlin 입문
1. 배열의 필요성배열은 여러 데이터를 하나의 변수에 할당하여 관리할 수 있게 해주어, 코드의 효율성을 높여줍니다.예를 들어, 여러 회원의 운동 기록을 각각 다루는 대신 배열을 사용하여 간단히 관리할 수 있습니다.fun main() { val member1 = 100 val member2 = 300 val member3 = 250 println("member1의 3대 운동은 $member1입니다") println("member2의 3대 운동은 $member2입니다") println("member3의 3대 운동은 $member3입니다")}2. 배열 사용하기배열을 생성하는 방법은 2가지가 있습니다2.1) 배열의 크기를 정하고 초기값 지정하여 생성fun main() { ..
JoonYong