분류 전체보기 140

Claude 를 통한 MCP 구현

1. Claude Desktop 설치https://claude.ai/download 2. 회원가입 및 로그인 3. 좌측 상단의 줄 세개를 클릭 4. 파일 > 설정 탭을 클릭 5. 개발자 버튼 클릭 후, 설정 편집 클릭(화면이 조금 다를 수 있음) 6. 폴더가 열리며 claude_desktop_config.json 파일이 클릭되어 있을텐데, 해당 파일을 실행 7. 아직까지는 아무 값이 없으므로, 아래의 링크에서 필요한 기술의 소스코드 복사 (ex : firecrawl, jetbrains ...) GitHub - modelcontextprotocol/servers: Model Context Protocol ServersModel Context Protocol Servers. Contribute ..

웹 개발 종합 2025.04.19

MCP(Model Context Protocol)

LLM (Large Language Model, 대규모 언어 모델)자연어 처리(NLP) 기술을 기반으로 하는 인공지능 모델(ChatGPT, Claude ... )자연어로 이루어진 방대한 텍스트 데이터를 학습하여 문법, 어휘, 의미 등을 이해하고,질문을 받았을 때 이를 추론하여 텍스트를 생성한다 기존의 방식에서는 도구와 LLM이 서로 연결되어 데이터를 주고받을 수 있도록 구현 해주어야 하므로,새로운 도구가 추가될 때마다 코드를 수정하거나 도구와의 연결 작업이 필요했다.MCP라는 기술은 원래 주목받지 못하였으나, 이와같은 LLM의 단점 덕분에 주목받게 된 프로토콜이다. MCP (Model Context Protocol)표준화된 프로토콜을 사용하여 Tool을 서버로 노출시키고, LLM이 해당 도구를 사용할 수..

웹 개발 종합 2025.04.19

[Spring] Spring AOP(Aspect-Oriented Programming)

핵심 기능(주관심사)과 공통 기능(보조 관심사, 부가기능)을 분리하여 코드의 재사용성, 유지보수성, 가독성을 향상시키는 방법 주 관심사 : 실제 로직 (ADD 함수 등)보조 관심사 : 보안, 로그, 트랜잭션 등 중간에 'Proxy' 객체를 두어, 보조관심사를 자동으로 끼워 넣는다. AOP 동작 흐름 (Spring AOP 기준)클라이언트가 메서드 호출 (예: ADD(x, y))Proxy 객체가 대신 호출을 가로챔보조관심사 로직 실행 (예: 로그 찍기, 트랜잭션 시작 등)실제 핵심 로직(ADD()) 실행결과를 기반으로 보조관심사 마무리 작업 (예: 트랜잭션 커밋, 로그 종료 등)클라이언트에게 결과 반환 주 사용 목적로깅 (Logging)메서드 실행 시점, 매개변수, 리턴 값 등을 기록보안 (Security..

Springboot 2025.04.16

[Spring] Filter, Interceptor, AOP의 차이점

1. Filter (javax.servlet.Filter)어디서?서블릿 이전, 가장 바깥단 (DispatcherServlet 도달 전)언제?요청이 WAS(서버)에 도달하자마자 실행됨 (ServletContainer 수준)예시인코딩 설정, XSS 방지, 인증 체크 등설정 방법web.xml 또는 @WebFilter단점스프링 외부에서 동작, 스프링 빈 접근 어려움 public class MyFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletE..

Springboot 2025.04.16

[FrontEnd] jQuery 화살표 함수(=>)의 this

기본 함수 (function)의 this기본 함수는 호출될 때의 컨텍스트에 따라 this가 결정일반 함수는 실행 당시의 객체 컨텍스트에 따라 this가 동적으로 바뀜 화살표 함수 (=>)의 this화살표 함수는 this를 렉시컬(lexical)하게 바인딩한다 렉시컬(lexical) : 함수를 정의할 때 상위 스코프의 this를 고정하는 것const obj = { name: 'Hello', clickBtn: () => { console.log(this.name); // this는 obj가 아님! 외부 스코프의 this }};obj.clickBtn(); // undefined  이 때의 this는 obj가 아니라 obj를 감싸는 외부 스코프(전역)의 this즉, 함수가 어디에서 정의되었는지에 따라..

FrontEnd 2025.04.10

[JS] querySelector vs getElement

1. getElementById, getElementsByClassName, getElementsByTagName✅ 장점성능이 빠름 (특히 getElementById)❌ 단점getElementsByClassName과 getElementsByTagName은 HTMLCollection을 반환 → 배열 같지만 실제 배열 아님 (Array methods 사용 불가)복잡한 CSS 선택자는 사용할 수 없음 2. querySelector, querySelectorAll✅ 장점CSS 선택자 문법 지원 → #id, .class, div > span, ul li.active 등 복잡한 선택 가능더 유연하고 강력함querySelector는 단일 요소, querySelectorAll은 NodeList 반환 → 반복문 가능 (..

FrontEnd 2025.04.07

[Spring]Front Controller, Dispatcher Servlet, Spring MVC 처리 Flow

Front Controller MVC 구조에서 함께 사용되는 디자인 패턴 중 하나로, 애플리케이션의 진입점(entry point) 역할을 수행하는 컨트롤러.클라이언트가 보내는 모든 요청을 자신이 먼저 받게 되고, 이러한 요청들을 세부 컨트롤러에게 전달하는 역할을 수행한다.Dispatcher Servlet은 spring에서 Front Controller 패턴을 구현한 것이다 Spring MVC 처리 Flow 0. 서블릿 초기화 (WAS 기동 시)Spring Boot나 Spring Web MVC 프로젝트가 시작될 때DispatcherServlet은 Servlet으로 등록되어 있고, web.xml 또는 Spring Boot의 자동 구성을 통해 초기화됨초기화 시점에 HandlerMapping, HandlerAd..

CS 2025.04.03

HttpSession(서버 세션)

HttpSession ≠ 세션 스토리지(Session Storage)  Session Storage (브라우저 Web Storage API)브라우저에서 제공하는 클라이언트 측 임시 저장소탭/창을 닫으면 자동 삭제됨 (지속성 없음)저장 위치: 사용자 브라우저 메모리 HttpSession서버가 사용자 정보를 일정 시간 유지하기 위해 사용하는 저장소사용자별로 하나씩 생성되고, 사용자 개별 데이터(예: 로그인 정보)를 저장하기 위해 사용속도: 세션 접근은 일반적으로 빠르지만, 많은 데이터를 저장하거나 많은 사용자가 있으면 속도 저하 가능메모리: 힙 메모리(Heap Memory)에 세션을 저장하며,  사용자 수가 많아질수록 메모리 사용량 급증사용자 수가 많아질수록 메모리 사용량 급증하기 때문에 요즘 웹은 Http..

Java 2025.04.03

[Security] Spring Security의 흐름

앱 실행 시 Spring Boot가 @Configuration, @EnableWebSecurity에 의해 WebSecurityConfig 를 자동 실행1. corsConfigurationSource()CORS(Cross-Origin Resource Sharing) 설정출처(도메인, 포트, 프로토콜)를 기준으로 HTTP 요청을 보내는 것을 허용할지 제어하는 보안 메커니즘CSRF, XSS 같은 공격을 막기 위해 반드시 구현하여야 한다 2-1. authenticationManager()인증을 처리하는 매니저내부적으로 UserDetailsService를 통해 사용자 정보를 불러옴로그인 시 JwtAuthenticationFilter에서 authenticationManager를 사용해서 인증 처리함 JwtAutho..

Springboot 2025.04.02