빈 스코프는 말 그대로 빈이 존재할 수 있는 범위를 뜻한다. 스프링은 다음과 같은 다양한 스코프를 지원한다.싱글톤(Singleton) : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다.프로토타입(Prototype) : 스프링 컨테
MVC 패턴에서도 여러 가지 구조를 가진다.여러 가지 구조를 가진 MVC 패턴 중 위 그림의 구조를 그대로 사용하고 있는 것이 Spring MVC이다.일반 MVC 패턴도 유지보수하기에 좋은 패턴임은 확실하나, 구조가 복잡해지는 한계가 있다.이러한 한계를 극복하게 해주는
Java Persistence APIJPA는 오늘날 스프링에서 많이 활용되고 있지만, 스프링이 제공하는 API가 아닌 자바가 제공하는 API다.자바 ORM 기술에 대한 표준 명세로, 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스다.ORM
ORM 구현체 개발 시 더티 체킹이라는 말을 자주 볼 수 있다.더티 체킹이 어떤 것을 뜻하는 지 간단히 살펴보자.예를 들어 다음과 같은 코드가 있습니다.(Spring Data Jpa가 익숙하시겠지만, 네이티브한 코드 먼저 보고 가겠습니다.)save 메소드로 변경 사항을
웹 서버 HTTP 기반으로 동작한다 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 웹 애플리케이션 서버(WAS-Web Application Server) -HTTP 기반으로 동작 웹 서버 기능 포함+ (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 *동...
서블릿은 클라이언트의 요청에 대해 동적 컨텐츠를 생성하는 자바 언어 기반의 웹 컴포넌트(Web Component)이다. 다른 자바 기반의 컴포넌트들처럼, 서블릿은 플랫폼(OS)으로부터 독립적인 자바 클래스들이다.urlPatterns(/hello)의 URL이 호출되면 서
HTTP APIHTML이 아니라 데이를 전달하고 주로 JSON 형식 사용한다. 데이터만 주고 받고,UI화면이 필요하면 클라이언트가 별도처리!먼저 브라우저 렌더링이란 브라우저가 서버로부터 요청해 받은 내용을 브라우저 화면(view)에 표시해주는 작업을 말합니다. 즉, 브
HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법을 알아보자. 주로 3가지 방법을 사용합니다. Get 요청 파라미터 /url?username=hello&age=20 (url에 파라미터 넣을땐 ? 삽입) 메시지 바디 없이, URL의 쿼리
JSP, MVC 패턴 JSP > jsp란? * JavaServer Pages* 의 약자이며 HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구이다. JSP 가 실행되면 자바 서블릿(Servlet) 으로 변환되며 웹 어플리케이션 서버에서 동작
프론트 컨트롤러 도입 후프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받는다프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출한다.입구를 하나로!공통 처리 가능프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨스프링 웹 MVC와 프론트 컨트롤러
이전편에 v3까지 알아봤다. 이번 편에서는 v4에 대해 알아보자 !이전편 링크 참조앞서 만든 v3 컨트롤러는 서블릿 종속성을 제거하고 뷰 경로의 중복을 제거하는 등, 잘 설계된 컨트롤러이다. 그런데 실제 컨트톨러 인터페이스를 구현하는 개발자 입장에서 보면, 항상 Mod
자바 진영의 TDD 방법론의 JUnit에 대해 공부하고자 한다. 필자는 김영한님의 스프링 강의에서만 Junit을 다루다가 이번 기회를 통해 깊게 배우려고 한다.코드의 안전성을 높일 수 있음기능을 추가하거나 변경하는 과정에서 발생할 수 있는 Side-Effect를 줄일
지난 시간에 이어 Junit에대해 배워본다!TDD 방법론1진행시 테스트를 진행할 환경은 구축이 되있다 가정하고 진행하겠습니다!👉 테스트 환경 구축 참조기본 MVC구조를 사용한다 하면Controller : 클라이언트와 테스트Service : 기능들이 트랜잭션을 잘 타는
이전 편 보러가기해당 포스팅에선 JUnit 에서 트랜잭션이 어떤 식으로 동작하는지 알아 볼것이다!메서드 실행(트랜잭션 시작) -> 종료(트랜잭션 종료) -> RollBack실제 서버에서는 RunTimeException이 발생할 때 RollBack이 되고, 이슈가 없다면
springboot 에서 chatGPT API를 연동해보는 간단 프로젝트를 만들어 보겠습니다.생각보다 어렵지 않으니 순서대로 따라오시면 됩니다.우선 chatGPT API 를 이용하기 위해 API-KEY가 필요합니다.https://platform.openai.c
최근 Spring Cloud로 개발하는 마이크로서비스 애플리케이션 강의 Spring Cloud에 대해 학습한 것을 정리하고자한다.이번 글에서는 Eureka개념과 Eureka Server 생성 예제를 정리한다.Eureka는 클라우드 환경의 다수의 서비스(예: API 서버
Spring Security는 우리가 스프링 관련 프로젝트를 진행할 때, 로그인 기능을 구현하다 보면 자연스럽게 접할수 있다. 모두의 마당, 식구하자 프로젝트를 진행하면서 시큐리티를 다뤘지만, 구현에 집중하느라 Security 내부 동작에 대해선 이해가 부족한 채로 진
참고 : Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Spring Cloud Config 분산 시스템에서 서버, 클라이언트 구성에 필요한 설정 정보(application.yml)를 외부 시스템에서 관리 하나의 중앙화 된 저장소에서 구성요소
참고 : Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 해당 포스팅은 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의를 듣고 정리한 글입니다. 실습 환경을 따라하시려면 [이전 글](https://velog.io/@mw
참고 : Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)해당 포스팅은 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)강의를 듣고 정리한 글입니다. 실습 환경을 따라하시려면 이전 글에 나온 실습을 진행하시고 해당 포스팅을 읽는