0. 알아보게 된 이유 Hexagonal Architecture를 학습하면서 자연스럽게 함께 등장하는 개념인 DDD(Domain-Driven Design)가 무엇인지 제대로 이해해보고 싶었다. 예전에 스터디 형식으로 DDD를 학습하려고 시도한 적이 있었지만 끝까지 완주하지 못했고, 개념도 명확하게 정리되지 않은 상태로 남아 있었다. 이번에는 DDD...
Ollama 사용법 정리
Open LLM 실행 환경을 구성해주는 Ollama 도구의 사용법을 정리한다. Open LLM이란? Open LLM은 공개된 가중치나 공개 라이선스를 기반으로 누구나 내려받아 실행하거나, 필요에 따라 튜닝 및 확장할 수 있는 대규모 언어 모델(Large Language Model)을 의미한다. 일반적으로 Open LLM은 다음과 같은 특징을 ...
FastAPI란?
0. 학습 이유 재직 중 국비 교육으로 Multi AI Agent 프로젝트 과정을 수강하게 되었고, 백엔드 구현 기술로 FastAPI를 사용하게 되었다. 기존에 Python을 사용해 본 경험은 4년전 첫 직장에서 입사 초기에 3~4개월 가량 진행했던 Spoon Radio 백오피스 Django 프로젝트를 Kotlin + Spring Boot로 컨버팅...
Hexagonal Architecture란?
0. 학습 이유 이 글을 읽기 전에 DDD에 대한 기본적인 이해가 있으면 좋다. Hexagonal Architecture는 도메인을 중심으로 설계를 하는 구조이기 때문에 DDD의 개념을 알고 있으면 내용이 훨씬 쉽게 이해된다. 아래 글에서 DDD의 핵심 개념을 먼저 정리했으니 해당 글을 읽고 이 글을 보면 도움이 될 것이다. DDD란? 시리...
AI Agent 정리 (1) - AI 에이전트 개념, 구조, 플랫폼 생태계
AI Agent 정리 (1) — AI 에이전트 개념, 구조, 플랫폼 생태계 최근 LLM 기반 서비스가 발전하면서 단순한 챗봇을 넘어 스스로 판단하고 도구를 사용하며 작업을 수행하는 AI Agent 구조가 등장했다. 위키독스의 AI 에이전트 개발 문서를 정독하면서 AI 에이전트 개념 구조와 플랫폼 생태계까지의 내용을 정리해본다. 1. 왜 ...
관리자 권한, 메뉴 관리 (5)
user_menu_authority 이전 포스팅글들에서 구성한 정보를 가지고 어떤 식으로 인가 처리를 하는지에 대해 작성해보려 합니다. 실제 코드에서는 @PreAuthorize, @PostAuthorize를 이용하여 authority에 대한 사용자 제한을 구현했습니다. 테스트 컨트롤러 테스트를...
관리자 권한, 메뉴 관리 (4)
user_menu_authority 이전에 포스팅에서 작성한 UserDetails를 구현한 User엔티티를 AuthenticationProvider에서 어떤 식으로 사용하는지 작성해보려 합니다. AuthenticationProvider에 대한 설명은 생략하겠습니다. 해당 설정으로 기대하는 기능은 로그인한...
관리자 권한, 메뉴 관리 (3)
user_menu_authority 이전에 작성한 구성 정보를 가지고 spring security적용하여 메뉴별 CRUD권한 체크와 로그인 사용자의 접근 가능한 메뉴정보를 가져오는 기능을 작성해 보려 합니다. 이를 통해 가지고 있는 권한에 맞는 메뉴와 CRUD권한별 인가 설정을 할 수 있게 되었습니다. spring security ...
관리자 권한, 메뉴 관리 (2)
user_menu_authority 이전에 작성한 ERD를 가지고 실제 스프링 프로젝트에서 어떤 식으로 데이터를 마이그레이션 하고 mapper를 작성하였는지 작성해보려 합니다. mapper 는 mybatis를 사용 데이터 마이그레이션 실제 프로젝트를 진행하다 보면은 개발 환경에 따라 데이터베이...
관리자 권한, 메뉴 관리 (1)
최근에 참여한 프로젝트에서 3DEPTH메뉴에 해당하는 CRUD 작업의 권한을 권한 유형을 통해 관리하고자 하는것이 요구사항이었습니다. 위의 요구사항을 충족시키기 위해 ERD 설계를 진행하면서 데이터 베이스 내에서 메뉴에 접근하는 권한을 어떻게 하면 효율적으로 관리할 수 있을지 구조를 고민하는 과정에 대해 작성해 보...