728x90

분류 전체보기 75

[Spring] @Transactional의 동작 방식과 전파 속성

목차트랜잭션이란?@Transactional 어노테이션 동작 방식@Transactional 속성@Transactional 전파 속성(propagation)정리 1. 트랜잭션이란?트랜잭션은 데이터베이스의 상태를 변화시키는 작업의 논리적 단위로서 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)의 ACID 특성을 보장한다.Atomicity (원자성) - 트랜잭션의 모든 쿼리가 DB에 반영되거나, 모두 반영되지 않아야 한다.Consistency (일관성) - 트랜잭션 처리 결과는 항상 일관성이 있어야 한다.Isolation (격리성) - 서로 다른 트랜잭션을 서로의 연산에 개입할 수 없다.Durability (지속성) - 트랜잭션이 성공적으로 ..

Spring Boot 2025.05.02

[AI] MCP(Model Context Protocol), AI와 앱을 연결하는 새로운 표준

목차MCP(Model Context Protocol)란?Function Calling, Google A2A와 비교MCP의 아키텍처와 구성 요소MCP 장점MCP 활용 사례 및 사용해보기 1. MCP(Model Context Protocol)란?2024년 11월 Anthropic이 MCP(Model Context Protocol)를 오픈소스로 공개했다. MCP는 LLM에 컨텍스트를 제공하는 방식을 표준화하는 개방형 프로토콜이다. MCP는 AI 모델을 다양한 데이터 소스 및 도구에 연결하는 표준화된 방식을 제공한다. 이전에는 각 AI 모델이 특정 데이터 소스나 도구와 통합되기 위해 별도의 커스텀 코드를 작성해야했지만, MCP를 통해 이러한 복잡성을 줄이고 간소화 시켜준다. MCP는 Claude, OpenAI,..

AI 2025.04.20

[Spring] Gradle 핵심 정리

목차Gradle의 등장 배경과 핵심 개념Spring 프로젝트에 Gradle 설정하기Maven vs GradleGradle 관련 명령어 1. Gradle의 등장 배경과 핵심 개념Java 빌드 도구 역사에서 Ant와 Maven에 이어 2012년 Gradle이 등장했다. Maven의 XML 기반 선언적 접근은 복잡한 빌드 로직 구현에 한계가 있었고, 이를 해결하기 위해 Gradle이 만들어졌다. Gradle의 특징은 다음과 같다. 1) Groovy 기반 DSL Gradle은 XML 대신 Groovy(또는 Kotlin) 기반의 DSL을 사용해 가독성이 높고 유연한 빌드 스크립트를 작성할 수 있다. 2) 태스크 기반 빌드 모델 모든 빌드 과정을 태스크 단위로 나누어 관리하며, 태스크 간 의존성 설정이 가능하다.t..

Spring Boot 2025.03.27

[Spring] 효율적인 패키지 구조와 네이밍 컨벤션

목차패키지 구조의 중요성과 기본 원칙스프링 프로젝트 초기 세팅을 위한 패키지 구조 가이드네이밍 컨벤션과 예시도메인 중심 vs 계층 중심 구조다양한 패키지 구성 예시 1. 패키지 구조의 중요성과 기본 원칙패키지 구조는 단순한 코드 정리 이상의 의미를 갖는다. 잘 설계된 패키지 구조는 코드의 가독성을 높이고, 유지보수를 용이하게 하며, 개발자 간 협업을 효율적으로 만든다. 스프링 프로젝트에서 패키지 구조가 중요한 이유는 다음과 같다. 1.1 코드 탐색성 향상개발자가 코드를 처음 접할 때, 패키지 구조는 프로젝트의 전체 구조를 이해하는 첫 번째 단서가 된다. 논리적이고 명확한 패키지 구조는 새로운 개발자가 빠르게 프로젝트에 적응할 수 있게 도와준다.1.2 의존성 관리패키지는 의존성 관리의 기본 단위다. 잘 설..

Spring Boot 2025.03.27

[Linux] 명령어 모음3 - 시스템관련

목차du (Disk Usage)df (Disk Free)cat /proc/cpuinfolscputopmpstatifconfiggpustatlspci | grep -i VGA 메모리, CPI, GPU 관련 명령어를 정리해보자. 1. du (Disk Usage)디스크 사용량 확인옵션-h : 용량을 보기 좋게 단위로 표시-a : 모든 하위 디렉토리에 포함된 파일까지 표시-s : 지정한 디렉터리 내에 존재하는 모든 파일의 합을 보여줌예시du -sh video/ 2. df (Disk Free)디스크 여유 공간 확인파일시스템, 디스크 크기, 사용된 용량, 사용가능한 용량, 사용된 용량의 비율, 마운트된 지점을 순서대로 보여준다.옵션-h : 용량을 보기 좋게 단위로 표시-k : KB 단위로 확인-m : MB 단위로 ..

Linux 2025.03.27

[Linux] 명령어 모음2 - 권한관련

목차sudo (Super User DO)chmod (Change Mode)chown (Change Owner)chgrp (Change Group)passwduseradduserdelgroupaddgroupdel 1. sudo (Super User DO)일반 사용자가 관리자 권한으로 명령을 실행 2. chmod (Change Mode)파일이나 디렉토리의 권한을 변경예시chmod 755 file.txt 3. chown (Change Owner)파일이나 디렉터리의 소유자를 변경옵션-R : 하위 파일까지 변경예시소유자 변경: chown user1 file.txt소유자와 그룹 변경 chown root:root file.txt 4. chgrp (Change Group)파일이나 디렉터리의 그룹을 변경예시chgrp g..

Linux 2025.03.27

[Linux] 명령어 모음1 - 파일 및 디렉터리관련

목차ls (list)cd (change directory)pwd (Print Working Directory)mkdir (Make Directory)touchcp (Copy)mv (Move)cat (Concatenate)grep (Global Regular Expression Print)find 1. ls (list) : 목록 조회ls: 파일 및 목록 조회옵션-l: 파일의 자세한 정보 표시 (파일 종류, 권한, 소유자, 그룹, 크기, 수정 시간 등)-a: 숨겨진 파일 및 디렉터리 포함-lh : 파일 크기를 보기 쉽게 표시예시ls -lls -als -lh 2. cd (change directory) : 디렉터리 이동cd: 홈으로 이동cd ..: 상위 디렉터리로 이동cd - : 이전 디렉터리로 이동 3. p..

Linux 2025.03.27

[Java] 객체지향 프로그래밍이란?

목차객체지향 프로그래밍이란?객체지향의 특징절차지향 vs 객체지향객체지향 설계의 핵심 원칙 1. 객체지향 프로그래밍이란?객체지향 프로그래밍(OOP)은 실세계의 사물을 객체로 모델링하여 개발하는 프로그래밍 기법이다. Java가 대표적인 객체지향 언어지만, Python, C++, C#도 객체지향 패러다임을 지원한다. 객체지향의 핵심은 역할, 책임, 협력의 개념이다.역할: 각 객체는 시스템 내에서 특정 역할을 맡는다.책임: 객체는 자신이 맡은 역할에 따른 책임을 가진다.협력: 여러 객체가 서로 메시지를 주고받으며 협력한다.예를 들어, 온라인 쇼핑몰 시스템에서 '주문' 객체는 주문 정보를 관리하는 역할을 하며, 주문 상태 변경에 대한 책임을 가지고, '결제' 객체와 협력하여 전체 주문 프로세스를 완성한다. 2. ..

Java 2025.03.27

[서버] RESTful API 란?

목차RESTful API의 개념과 등장 배경REST 아키텍처의 핵심 구성요소RESTful API 설계 원칙RESTful API 와 다른 방식 비교적용 시 참고사항 1. RESTful API의 개념과 등장 배경REST(Representational State Transfer)는 2000년 로이 필딩(Roy Fielding)이 자신의 박사 논문에서 처음 소개한 소프트웨어 아키텍처 스타일이다. 필딩은 웹의 창시자 중 한 명으로, HTTP 프로토콜 설계에도 참여했다. 그는 웹의 장점을 최대한 활용할 수 있는 아키텍처로 REST를 제안했다. RESTful API란 REST 아키텍처의 제약조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 말한다. 쉽게 말해, 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하면서..

카테고리 없음 2025.03.27

[Java] Checked Exception과 Unchecked Exception

목차Checked ExceptionUnchecked ExceptionError vs Exception 1. Checked Exception Checked Exception은 컴파일 시점에 확인되며, 반드시 처리해야하는 예외이다. 예를 들어 IOException, SQLException 등이 있으며 이에 대해서는 throws나 try~catch로 처리해야한다. Checked Exception를 사용하는 경우는 다음과 같다.외부 환경과의 상호작용에서 발생 가능한 예외에 적합.ex) 파일 입출력, 네트워크 통신 등 (보통 예측 가능하며 처리 가능하다) 2. Unchecked Exception Unchecked Exception은 런타임 시점에 발생하며, 컴파일러가 처리 여부를 강제하지 않는다. 예를들어 Run..

Java 2025.03.06
728x90