반응형 프로그래밍73 LLM 앱 개발을 위한 첫 걸음 LangChain 이란? LangChain 이란?대규모 언어 모델(LLM)을 기반으로 하는 앱을 개발하기 위한 오픈소스 프레임워크입니다. LLM을 활용한 챗봇과 같은 애플리케이션 개발 과정을 모듈화, 체인, 통합, 에이전트, 메모리와 같은 개념으로 나누어 구현할 수 있는 구조를 제공합니다. LangChain을 이용하여 개발할 수 있는 애플리케이션의 종류는 다음과 같습니다. 챗봇질의 응답 시스템문서/동영상 요약데이터 분석 자동화AI 비서LangChain의 간략한 역사2022년 10월 해리슨 체이스(Harrison Chase)에 의해 프로젝트가 시작되었으며 23년 6월쯤 깃헙(Github)에서 가장 빠르게 성장하는 단일 오픈소스로 선정되었습니다. 24년 1월에 stable 버전인 v0.1.0을 공개하며 LLM 개발 프레임워크로 자리.. 2025. 2. 2. 나만의 AI 만들기 - LM Studio를 활용한 딥시크(DeepSeek) R1 사용하기 LM Studio 란? 로컬 컴퓨터에서 LLM(대규모 언어 모델)을 쉽게 실행하고 실험할 수 있게 해주는 데스크탑 애플리케이션(Desktop Application)입니다. 윈도우, 맥, 리눅스에서 모드 사용 가능하며 인터넷 연결 없이 오프라인 환경에서 사용 가능합니다. ollama 가 CLI 환경인 반면 사용자 친화적인 GUI 환경을 제공하여 더욱 편리하고 사용하기 좋습니다. LM Studio 와 Ollama 비교 LM Studio 의 만족도는 단연 Ollama 와 비교하여 압도적이라고 할 수 있습니다. 그 이유로는 CLI 환경이 아닌 GUI 환경을 제공한다는 점이 가장 큰 장점입니다. 또한, GUI 환경에서 여러 모델들을 다운로드 받아서 활용할 수 있다는 점에서 더욱 편리합니다. 반면 Ollama 의.. 2025. 1. 30. Hyper-V, Ubuntu에서 가장 확실한 디스크 공간 확장 방법(gparted) "> 달라진 Hyper-V 위상 윈도우 운영체제에서 가장 확실한 가상 머신을 생성하는 방법이 있습니다. Hyper-V 가 그것인데요. 예전에는 VMWare, VirtualBox 등을 사용하였지만 윈도우 운영체제에 Hyper-V 가 탑재되어 있어 유료 구매를 요하는 타제품들의 수요가 줄어들었습니다. 빨리 만들기 - Ubuntu 운영체제 Hyper-V 를 처음 사용하게되면 보통 빨리 만들기 기능을 통해 이미지를 불러옵니다. 이 과정에서 세부적인 설치 과정이 생략되게 됩니다. 빨리 만들기의 문제점 - 디스크 할당 용량이 고정되어 있다 Hyper-V 의 빨리 만들기의 문제점은 우분투 운영체제의 디스크 용량을 작게 잡는다는 점입니다. 아마 이 글을 보고 계신분들은 df -h 명령어를 통해서 확인해보면 루트.. 2025. 1. 21. Calculator:// 브라우저에서 계산기가 실행된다구요? 이 사이트에서 OOO을 열려고 합니다.윈도우 운영체제를 사용하는 유저분들이라면 웹 브라우저에서 "이 사이트에서 OOOO을 열려고 합니다." 라는 메시지 팝업을 볼 수 있습니다. 이는 특별한 규약을 통해 실행되는 규칙이 운영체제에 정의되어 있기 때문입니다. 대표적인 예로 discord 서비스가 웹으로 접근할 경우 아래의 그림과 같이 프로그램을 실행시키는 로직을 제공합니다. 아래와 같은 URL Protocol 을 웹 브라우저의 주소 표시줄에 입력하면 원하는 앱이실행됩니다. 만약 디스코드라면 아래와 같이 입력하면 됩니다. discord:// => 디스코드 앱 실행 calculator:// => 계산기 앱 실행 "> 어떤 원리로 실행되나요?윈도우 운영체제에 한하여 레지스트리에 등록된 값을 참고하여 실행됩니.. 2025. 1. 21. Windows 11, pyo3 와 maturin 을 활용해 러스트에서 파이썬 코드 실행하기 안녕하세요 K-인사이트입니다. 근황: 러스트와 윈도우 운영체제 최근 러스트와 윈도우 운영체제에 빠져서 헤어나오지 못하는 중입니다. 이직 혹은 전배를 준비중 입니다. 오늘은 Windows 11 환경에서 pyo3 와 maturin 을 활용한 rust 에서 파이썬 스크립트 실행하기에 대해 핵심을 설명드리겠습니다. 이 내용은 클로드나 퍼플렉서티에서도 제대로 답변을 하지 못하는 내용으로 더욱 글의 가치가 높다고 할 수 있겠습니다. 만약 AI 검색에 제 글이 노출된다면 열심히 블로그 글을 작성한 보람이 없을 수도 있겠습니다만... ㅎㅎㅎ 저작권 문제가 언젠가 해결되길 바라겠습니다. (보고있나 퍼플렉서티??) ">HTML 삽입미리보기할 수 없는 소스 파이썬과 러스트를 통합하기 위한 pyo3 와 maturin파이썬.. 2024. 11. 17. 러스트(Rust) 언어란? 그리고 러스트 개발을 위한 환경 구성 (feat. vscode, Windows) 안녕하세요 K-인사이트입니다. C++의 시대가 드디어 저물고 있습니다. 각종 메모리 버그 관련해서 많은 개발자들의 어려움을 자아내는 과거의 언어가 역사의 뒤안길로 사라지고 새로운 그리고 안전한 러스트(Rust) 언어의 시대가 부상하고 있습니다. 이제 개발자들은 각종 버그에서 벗어나 안전하게 메모리를 사용하면서 혹시나 일어날지 모르는 보안사고에 대해서도 안심을 할 수 있을 것입니다. 이 글에서는 윈도우 운영체제에서 러스트(Rust) 개발환경을 구성하고 Visual Studio Code를 이용한 개발환경 구축을 진행해보도록 하겠습니다. 러스트(Rust) 프로그래밍 언어란? 러스트(Rust)는 모질라 리서치에서 개발한 다중 패러다임, 범용 프로그래밍 언어입니다. 시스템 프로그래밍, 웹 서버 및 브라우저.. 2024. 5. 3. 데이터분석, 파이썬 판다스 데이터프레임 다양한 합치기 방법 (행, 열, merge, for, concat) 안녕하세요 K-인사이트입니다. 데이터를 분석하기 위해 여러 데이터를 다양한 방법으로 합치는 기술은 매우 필수적입니다. 분석의 과정은 오래걸리지 않으나 이를 합치고 자르고 다시 이어붙이는 과정에는 상당한 시간과 데이터에 대한 이해가 필요합니다. 프로그래밍 분야에서 SQL 영역에 속합니다. 예를들어 여러개 파일로 분할된 CSV 파일을 하나의 데이터프레임으로 만들 수 있습니다. 그리고 서로 다른 두 데이터프레임을 열을 기준으로 결합 할 수도 있습니다. 이 글에서는 기본적이지만 가장 중요한 데이터를 결합하는 다양한 방법에 대해서 알아보도록 하겠습니다. 파이썬 환경 구축 pipenv 를 통해서 간편하게 원하는 파이썬 환경을 구성할 수 있습니다. 관련된 내용은 아래의 링크를 참고해주세요. https://k-in.t.. 2024. 4. 23. 데이터분석, 파이썬 CSV 파일 불러오기, 경로 오류 처리, 한글깨짐(utf-8) 보정 (feat. numpy, pandas) 안녕하세요 K-인사이트입니다. 데이터 분석에서 가장 중요한 절차 중 데이터를 입력하고 이를 적절히 처리하는 과정입니다. 데이터 저장 및 유통에 가장 많이 사용되는 포맷은 csv(comma-separated values) 파일 포맷입니다. 간소한 포맷과 엑셀 등의 프로그램에서 읽어오기 용이한 형태입니다. 이 파일을 읽어오면서 데이터 분석의 관문이 열리게됩니다. 하지만 csv 파일을 불러올 때 데이터 분석을 어렵게 하는 요인들이 있습니다. 예를 들어, 불러오기 경로 오류, 한글 깨짐 오류 등이 있습니다. 이 글에서는 파일 불러오기와 관련된 다양한 유형들을 다루어 보도록 하겠습니다. 파이썬 환경 구축 pipenv 를 통해서 간편하게 원하는 파이썬 환경을 구성할 수 있습니다. 관련된 내용은 아래의 링크를 참고해.. 2024. 4. 22. NEXT.JS 페이지 이동(Navigating)과 코드 스플리팅 안녕하세요 K-인사이트입니다. 웹사이트 개발에서 페이지간의 이동을 구현하는 기술은 매우 중요합니다. 간단한 앵커 태그(a tag)를 활용해서 이를 구현하는 경우도 있으나 이는 전통적인 구현 방법입니다. 반응성이 높고 효율적인 네비게이션 구현 전략을 통해 고객 경험을 확대하는 등 긍정적인 효과를 높일 수 있습니다. 이는 고객의 체류시간을 늘리는 역할을 합니다. 이 글에서는 페이지 간에 이동(navigating)을 위한 next.js 의 기능을 살펴보고 간단한 응용 패턴인 활성 링크 표시하는 방법을 다루어 보도록 하겠습니다. 이전 글 바로가기 이 글은 이어진 글입니다. 샘플 프로젝트를 다운로드 받아 환경을 구성해야 한다면 아래의 글을 통해 편리하게 실습 환경을 구성할 수 있습니다. https://k-in... 2024. 4. 21. NEXT.JS 중첩 라우팅(Nested Routing)과 레이아웃(Layout) 적용 안녕하세요 K-인사이트입니다. 웹 사이트에서 공통된 레이아웃을 유지하며 새로운 페이지들을 개발하는 것은 중요한 작업입니다. 페이지들이 기존 디자인을 훼손하지 않으면서도 각 페이지들을 개발하는 속도 및 효율성이 높아야 합니다. Next.js 는 이러한 기능을 제공하기 위해 매우 편리한 방식으로 라우트를 추가하고 기존 디자인을 계승해서 UI 를 개발하는 방법을 제공합니다. 이 시간에는 Next.js 의 기능을 통해 복잡한 구조의 라우팅을 구현하고 부분 렌더링, 루트 레이아웃 등을 배워보도록 하겠습니다. 2024. 4. 21. 코프링, MSA를 위한 첫걸음 Spring Cloud Config 배워보자! 안녕하세요 K-인사이트 입니다. 마이크로서비스를 구현하기 위해 여러 서비스들을 배치하다보면 자연히 수많은 설정 정보들을 어떻게 관리하고 적용하는지가 중요한 화두가 될것 입니다. 만약 서비스가 2~3개 정도라면 수작업이 문제가 되지 않겠지만 4~5개 이상이라면 설정을 관리하는데 있어 부하가 많이 발생하고 복잡하게 연결된 메쉬 구조일때 더욱 많은 어려움을 감내해야 할 것입니다. 만약, 여러분이 설정 정보를 변경한다고 하였을 때 중앙에서 설정들을 관리하고 이를 배포 없이 업데이트를 할 수 있다면 어떨까요? application.yaml 파일 혹은 application.properties 변경 정도로 배포 스케줄을 관리해야하는 부담이 줄어들 것입니다. 이 글에서는 Spring Cloud Config 를 통해서 .. 2024. 4. 11. NEXT.JS 검색엔진 최적화(SEO)를 위한 폰트와 이미지 최적화 안녕하세요 K-인사이트입니다. 웹사이트에서 폰트는 매우 중요한 요소입니다. 전체적인 마감을 결정하고 서비스의 분위기를 형성하는데 도움을 줍니다. 잘 만들어진 웹사이트들을 보면 폰트 또한 세심하게 조절하여 배치된 것을 볼 수 있습니다. 즉, 여러분의 서비스의 품질을 결정짓는 요소 중에 하나입니다. 기술적인 관점에서도 이러한 폰트 파일을 어떻게 전달하는지도 중요한 요소입니다. Google은 CLS(Cumulative Layout Shift, 레이아웃 변경 횟수)라는 기준을 통해 웹사이트 성능과 사용자 경험을 평가를 합니다. CLS 측정 항목은 시각적 안정성을 측정하는 항목으로 사용자가 예기치 않은 레이아웃 변경을 경험하는 빈도를 수치화합니다. 그렇다면 폰트가 CLS에 어떤 영향을 끼칠까요? 브라우저가 웹사이.. 2024. 4. 6. 코프링, 성공적인 서비스를 위한 멀티 모듈 프로젝트 구성 (Feat. 코틀린 Gradle) 안녕하세요 K-인사이트 입니다. 창업 초창기 빠른 개발을 위해 프로젝트들이 새롭게 개발되고 발전함에 따라 서서히 개발자들의 발목을 잡게되는 요소가 있습니다. 바로 의존성 관리와 중복되는 코드의 범람이 그것입니다. 또한 각 프로젝트들이 강한 의존성을 가지게 됨과 동시에 비슷하지만 약간은 다르게 개발된 코드들을 두고 치열한 리뷰가 계속되는 악전고투를 해야만 릴리즈를 할 수 있게되는 상황이라면 멀티 모듈 프로젝트로 전환하는 방향을 생각해야합니다. 멀티 모듈 프로젝트란? 멀티 모듈 프로젝트는 하나의 서비스로 관리되지만 여러 프로젝트로 분할되어 있는 것을 한데 뭉쳐서 개발하는 프로젝트 구성 방법입니다. 일반적으로 회원 API를 개발한다면 IDE 를 실행해서 회원 API 를 위한 프로젝트를 생성할 것입니다. 하지만.. 2024. 4. 5. NEXT.JS 웹사이트 스타일링(CSS)을 위한 전문적인 방법들 안녕하세요 K-인사이트입니다. Next.js 를 활용해 SEO 최적화를 위한 프로젝트를 진행한다면 UI에 스타일을 적용하는 CSS를 익히는 것은 매우 중요한 일입니다. 좋은 기술을 사용하더라도 포장지 역할의 CSS가 미흡하다면 앙꼬 없는 찐빵인 셈입니다. Next.js 에코시스템은 이미 여러분의 걱정을 충분히 고려하여 스타일 적용을 위한 여러가지 방법들을 고안해 두었습니다. 어렵게 고민할 필요없이 이 글을 통해서 멋진 스타일링과 생산성 두마리 토끼를 잡아보시길 바랍니다. 이전 글 바로가기 이 글은 이어진 글입니다. 샘플 프로젝트를 다운로드 받아 환경을 구성해야 한다면 아래의 글을 통해 편리하게 실습 환경을 구성할 수 있습니다. https://k-in.tistory.com/203 NEXT.JS 일단 프로.. 2024. 4. 5. NEXT.JS 일단 프로젝트부터 생성해서 공부해보자! 안녕하세요 K-인사이트입니다. Next.js 란? 기존 리액트에 없는 서버 사이드 렌더링(SSR,Server-Side Rendering), 정적 사이트 생성(SSG, Static Site Generation), 증분 정적 재생성(ISR, Incremental Static Regeneration)과 같은 다양하고 풍부한 기능을 제공합니다. 오픈소스기반의 자바스크립트 웹 프레임워크입니다. 2024. 4. 2. Jupyter Notebook, No Attribute 에러 해결을 위한 모듈 리로드(reload) 방법 안녕하세요 K-인사이트입니다. Jupyter Notebook과 같은 대화형 개발 도구를 이용해 데이터를 분석하다보면 반복해서 사용하는 함수 등을 별도의 python 소스코드로 저장해서 개발하는 경우가 있습니다. 예를 들어, 그래프를 그리거나 텍스트 날짜 정보를 변환하거나 등이 있습니다. 그런데, import 구문들이 위치하는 셀(Cell)을 재실행해도 새롭게 추가한 함수를 찾을 수 없다는 AttributeError: module ‘xxx’ has no attribute ‘yy’ 에러를 만나는 경우가 있습니다. 2024. 4. 1. 면접, 단일 장애점을 예방하는 Microservice Architecture 개념 분해 안녕하세요 K-인사이트 입니다. 안정적인 시스템 운영과 유지보수는 모든 개발자들이 도달하기 위해 분투를 하는 영역입니다. 완벽은 존재하지 않지만 그 완벽에 다가가기 위해 여러 방법론들이 새롭게 등장하고 문제를 해결해 나가고 있습니다. 이 과정에서 과거 모놀리식 아키텍처(monolithic architecture)의 단점들을 극복하는 마이크로서비스 아키텍처(microservices architecture, 이하 MSA)가 등장하게 되었습니다. 이 글을 쓰는 시점에 수많은 대규모 서비스들이 MSA로 개발되고 있습니다. MSA란 무엇이며 어떤 효용이 있을지를 알아보겠습니다. 2024. 3. 27. 자바스크립트, JSONata, 프로토타입 폴루션 취약점 (CVE-2024-27307) with PoC Code 안녕하세요 K-인사이트입니다. 깃허브에서 무료 1만8천개의 별을 받은 JSONata 프로젝트에서 “Github, Inc. 9.8점 Critical” 위험도의 취약점(CVE-2024-27307)이 공개되었습니다. 해당 취약점을 통해 해커는 사용자가 제공한 JSONata 표현식을 평가하는 애플리케이션에서 서비스 거부, 원격 코드 실행 또는 기타 예기치 않은 동작이 발생시킬 수 있는 것으로 알려졌습니다. 아직 해당 CVE-2024-27307의 exploit 코드가 공개되어 있지 않은 상태입니다. JSONata의 깃헙 패치를 분석하여 원격 명령 실행(Remote Code Execution) 공격 코드를 도출하였으며 이 글에서 One Day Exploit PoC 코드를 공개드리도록 하겠습니다. 👏👏👏 이 글의 맨.. 2024. 3. 21. 파이썬 aiohttp, 파일 다운로드 취약점, static 리소스 보안 필요 (CVE-2024-23334) 안녕하세요 K-인사이트입니다. 깃허브에서 1만4천개의 별을 받은 aiohttp 프로젝트에서 "NVD 7.5점 High", "Github, Inc. 5.9 Medium" 위험도의 취약점(CVE-2024-23334)이 공개되었습니다. 해당 취약점을 통해 해커는 서버 내부 파일을 다운로드하는 등 기업이 보관하는 개인정보 및 내부 중요 정보 유출 위험을 초래할 수 있습니다. aiohttp 란? 비동기 웹 서버 개발을 위해 설계된 Python 라이브러리 입니다. aiohttp는 asyncio 라이브러리를 기반으로 하며, 비동기 코드를 작성하여 네트워크 연결, 웹 서버 및 클라이언트와의 상호작용을 효율적으로 다룰 수 있게 해줍니다. 취약점 정보 요약 aiohttp 는 flask와 django 라이브러리처럼 정적 리.. 2024. 3. 21. 파이썬 버전관리, pipenv를 이용한 개발환경관리 안녕하세요 K-인사이트 입니다. Maven, Gradle 처럼 파이썬 프로젝트의 버전 관리의 필요성을 느끼는 분들이 많을 것입니다. 예를 들어 특정 파이썬 인터프리터 버전을 고정해서 사용하고 싶거나 프로젝트에 최적화된 라이브러리 버전들을 픽스해둔 경우가 그렇습니다. 파이썬 프로젝트는 광활한 에코시스템을 가지고 있고 이를 통해 생산성을 배가하는 구조입니다. 그렇기에 이러한 라이브러리의 버전관리는 매우 중요한 요소입니다. 이번에는 pipenv 도구를 활용해서 버전을 관리하고 프로젝트 공유 및 다운로드 과정에서 발생하는 자질구레한 설치 이슈들을 한방에 잡는 솔루션을 알아보겠습니다. pipenv 란? 파이썬에서 공식으로 권장하는 패키지 관리 툴인 파이프니브(pipenv)는 가상 환경 관리 도구이기도 합니다. 파.. 2024. 3. 21. 코프링, 스프링 부트(Spring Boot) 코틀린으로 배워보자! 안녕하세요 K-인사이트 입니다. 사기업부터 공공기관까지 스프링 프레임워크는 대한민국의 표준이자 엔터프라이즈급 솔루션의 상징이었습니다. 그리고 오래된 역사와 에코시스템들이 생산성 향상에 기여를 하였습니다. 이어서 스프링 부트에게 왕좌를 내어주고 신뢰성의 상징으로 자리매김하는 지금에 이르러 코틀린이라는 강력한 언어가 탄생하였습니다. 이번 시간에는 코틀린을 이용해 스프링 부트 예시를 만들면서 스프링 부트가 코틀린에서 어떻게 구현되는지 알아보겠습니다. 또한, 코틀린으로 스프링 부트를 구현해야하는 이유에 대해서도 간략히 살펴보면서 여러분이 프로젝트에서 코프링을 해야될 이유도 간략히 제시를 드리겠습니다. 이 글 마지막에 실습 코드를 다운로드 받을 수 있도록 링크를 드렸으니 참고 부탁드립니다. 스프링 부트(Sprin.. 2024. 3. 20. 면접, REST API vs RESTful API 란 무엇? 안녕하세요 K-인사이트 입니다. REST/RESTful API 라는 용어는 일반적으로 많이 사용되지만 실제로 그 정의를 정확하게 이해하는 경우는 드물다고 할 수 있습니다. 아마도 열명 중 한명은 "JSON 데이터를 전달하기 위한 용도" 또는 "다른 시스템과 연동을 위한 API" 정도라고 설명할 것입니다. 이글에서는 REST API 의 역사와 구체적인 정의를 통해 우리가 일반적으로 사용하는 용어를 잘 이해하고 다시금 의미를 새기는 시간을 가져보도록 하겠습니다. 또한, 이제 막 프로그래밍을 배우는 분들에게도 이 글은 유용할 것이라고 믿습니다. 2024. 3. 19. 코틀린, let 확장 함수을 알아보자 안녕하세요 K-인사이트 입니다. 코틀린에서 let 확장함수는 nullable 과 nullsafe 를 체이닝을 통해서 구현할 수 있는 유용한 기능입니다. 인라인 if-else 의 가독성 문제를 해결하며 직관적으로 코드를 이해할 수 있어 선호됩니다. let 확장함수에 대해 알아보고 사용 방법을 배워보겠습니다. 2024.01.31 - [코틀린] - K000. 코틀린 시리즈 (연재물) K000. 코틀린 시리즈 (연재물) 안녕하세요 K-IN 입니다. 요즘 코틀린을 이용한 개발 프로젝트가 늘어나고 있습니다. 이에, 코틀린에 대해서 상세하게 정리하는 간행물을 제작하고자 합니다. 여기에 있는 링크들은 모두 코틀린 k-in.tistory.com let 확장 함수란? Kotlin 표준 라이브러리에서 제공하는 확장함수 중.. 2024. 3. 13. 코프링, 스프링 배치(Spring Batch) 코틀린으로 배워보자 안녕하세요 K-IN 입니다. 대규모 데이터 처리를 위해 스프링 배치(Spring Batch) 를 자주 이용했을 것입니다. 이번 시간에는 코틀린을 이용해 스프링 배치 예시를 만들면서 스프링 배치가 코틀린에서 어떻게 구현되는지 알아보겠습니다. 특기할 점은 스프링 배치 공식 문서에는 코틀린 버전으로 설명을 제공하고 있지 않습니다. 이 예시는 Java 로 구성된 공식 문서의 설명을 Kotlin 언어로 풀어내고 있어 코틀린을 처음 접하신 분들이 Spring Batch 를 구현하는 허들을 낮추어주는 효용이 있습니다. TLDR; 코드 제공 이번 과정에서 다룬 내용은 Bitbucket 을 통해서 다운로드 할 수 있습니다. 링크로 접근하셔서 clone 버튼을 눌러주세요. https://bitbucket.org/kinst.. 2024. 3. 7. 코프링, 코틀린 데이터 클래스와 FlatFileParseException 해결 안녕하세요 K-IN 입니다. FlatFileItemReader 이란? CSV 파일을 리소스 폴더에 두고 읽어오기 위해 필요한 클래스입니다. 이 클래스를 통해서 Dto 와 같이 데이터 클래스를 초기화할 수 있습니다. 예를들어 직원 정보가 담긴 CSV 파일을 읽어와 작업하는 경우에 많이 쓰이겠습니다. 코틀린과 FlatFileParseException 코틀린에서는 data 키워드를 통해서 Dto 클래스를 선언하면 편리합니다. 어떤 점에서 편리한지 궁금하시다면 아래의 글을 추천드립니다. 2024.03.07 - [프로그래밍/코틀린] - 코틀린, data 키워드와 데이터 클래스 코틀린, data 키워드와 데이터 클래스 안녕하세요 K-IN 입니다. 코틀린에 대해서 알아보겠습니다. 전체 강의 목록은 아래의 링크를 클릭.. 2024. 3. 7. 코프링, 스프링 @Bean 어노테이션(Annotations) 안녕하세요 K-IN 입니다. @Bean 어노테이션 Bean 어노테이션은 스프링 프레임워크에서 빈(Bean) 객체를 정의하는데 사용됩니다. 빈(bean)은 스프링 애플리케이션 컨텍스트에 등록되어 관리되는 객체이며 다음과 같은 기능을 제공합니다. 의존성 주입(Dependency Injection) 과 IoC 컨테이너 활용: Bean 어노테이션을 활용하면 스프링 IoC 컨테이너가 빈(Bean)을 인식하고 ✅ 객체 간의 의존성 주입을 자동으로 처리합니다. 빈의 라이프사이클 관리: 스프링은 Bean 어노테이션이 붙은 메서드의 라이프사이클을 관리하며 초기화 메소드나 소멸 메소드를 정의하여 빈의 라이프사이클 이벤트에 특정 동작을 수행할 수 있도록 합니다. Bean 어노테이션은 XML 기반의 설정 대신 코드 기반의 설.. 2024. 3. 7. 코프링, 스프링 @Configuration 어노테이션(Annotations) 안녕하세요 K-IN 입니다. @Configuration 어노테이션 Configuration 어노테이션은 해당 클래스가 스프링 컨텍스트의 구성(configuration)을 담당하는 클래스임을 나타냅니다. 스프링에서 Java 기반 설정을 지원하는 어노테이션 중 하나미여 XML 기반 대신 Java 클래스를 이용하여 스프링 빈과 설정을 정의할 수 있도록 해줍니다. 즉, Configuration 어노테이션은 스프링 배치에서 실행할 Job 을 정의하는 역할을 합니다. 만약, Configuration 어노테이션을 사용하지 않는다면 XML 파일을 통해 Job 을 정의해야 합니다. 따라서 개발자는 Configuration 어노테이션을 통해 Java 혹은 Kotlin 기반으로 설정을 스프링에게 제공할 수 있습니다. 만약,.. 2024. 3. 7. 코틀린, 정적 멤버와 컴패니언 객체(companion object) 안녕하세요 K-IN 입니다. 코틀린에 대해서 알아보겠습니다. 전체 강의 목록은 아래의 링크를 클릭해주세요. 2024.01.31 - [코틀린] - K000. 코틀린 시리즈 (연재물) K000. 코틀린 시리즈 (연재물) 안녕하세요 K-IN 입니다. 요즘 코틀린을 이용한 개발 프로젝트가 늘어나고 있습니다. 이에, 코틀린에 대해서 상세하게 정리하는 간행물을 제작하고자 합니다. 여기에 있는 링크들은 모두 코틀린 k-in.tistory.com companion object 란? 컴패니언 객체는 클래스 내에 정의되어 클래스 자체에 속하는 멤버를 가질 수 있는 특별한 객체입니다. 정적 멤버와 유사한 역할을 하지만 더욱 유연하고 확장 가능한 기능을 제공합니다. 아래의 에시는 companion object 를 통해서 my.. 2024. 3. 7. 코틀린, data 키워드와 데이터 클래스 안녕하세요 K-IN 입니다. 코틀린에 대해서 알아보겠습니다. 전체 강의 목록은 아래의 링크를 클릭해주세요. 2024.01.31 - [코틀린] - K000. 코틀린 시리즈 (연재물) K000. 코틀린 시리즈 (연재물) 안녕하세요 K-IN 입니다. 요즘 코틀린을 이용한 개발 프로젝트가 늘어나고 있습니다. 이에, 코틀린에 대해서 상세하게 정리하는 간행물을 제작하고자 합니다. 여기에 있는 링크들은 모두 코틀린 k-in.tistory.com data 키워드와 데이터 클래스 일반적으로 데이터 클래스는 데이터를 보유 및 저장을 목적으로 사용됩니다. 코틀린은 이를 간소하고 편리하게 만들기 위해 data 키워드를 제공합니다. 즉, data 키워드를 사용하면 컴파일러가 아래의 표준기능들을 자동으로 생성하게됩니다. equa.. 2024. 3. 7. K017. 코틀린 함수(Functions) 깊게 살펴보기 - Functions 파트8, 람다(Lambdas) 3 안녕하세요 K-IN 입니다. 코틀린에 대해서 알아보겠습니다. 전체 강의 목록은 아래의 링크를 클릭해주세요. 2024.01.31 - [코틀린] - K000. 코틀린 시리즈 (연재물) K000. 코틀린 시리즈 (연재물) 안녕하세요 K-IN 입니다. 요즘 코틀린을 이용한 개발 프로젝트가 늘어나고 있습니다. 이에, 코틀린에 대해서 상세하게 정리하는 간행물을 제작하고자 합니다. 여기에 있는 링크들은 모두 코틀린 k-in.tistory.com 코틀린 함수(Functions) 코틀린에서 함수에 대해서 이해하려면 아래의 개념들을 숙지해야합니다. "☆" 표기는 중요도를 나타냅니다. 분량이 많아 이글에서는 12번 항목까지만 다룹니다. 이전 내용 코틀린 함수를 자세히 배우려면 아래의 링크들을 참고해주세요. 2024.03.0.. 2024. 3. 7. 이전 1 2 3 다음 반응형