Framework란 Frame에서 알 수 있듯이 어떤 대상의 큰 틀이나 외형적인 구조를 의미하는데 프로그래밍 세계에서도 이와 유사한 의미를 가지고 있다. 프로그래밍 상에서의 Framework는 기본적으로 프로그래밍을 하기 위한 어떠한 틀이나 구조를 제공한다.그렇다면 애
소프트웨어의 구성을 큰 그림으로 표현한 것이 소프트웨어 아키텍처이다. 대표적인 예로 Java 플랫폼 아키텍처가 있다.\[Oracle Java SE 제품의 구성 요소]N-티어 아키텍처라고도 불린다. 소프트웨어 개발에서 가장 일반적으로 널리 사용되는 아키텍쳐이다. 각 계층
\[Spring Module]
다른 말로 스프링 IoC 컨테이너 또는 IoC 컨테이너, DI 컨테이너라도도 부른다. 스프링 프레임워크의 핵심 컴포넌트로 애플리케이션 빈의 생명주기를 관리한다.여기서 말하는 빈이란 스프링 컨테이너가 관리하는 객체를 의미한다.여기서 말하는 컨테이너란 무엇인가?소프트웨어
지난 포스팅에서 언급한 Spring Framework의 핵심 프로그래밍 모델 중 하나인 관점 지향 프로그래밍(Aspect-Oriented Programming, AOP)(https://velog.io/@sum3533279/Spring-Framework-%EA%
Spring의 모듈 중에 웹 계층을 담당하는 몇가지 모듈이 있다. 그 중 Servlet API를 기반으로 클라이언트의 요청을 처리하는 모듈 이름이 spring-webmvc이다. 이를 줄여서 Spring MVC라고 부르기도 하고 Spring MVC가 웹 프레임워크의 한
API 계층과 서비스 계층을 연동하는 의미는 API 계층에서 구현한 Controller 클래스가 서비스 계층의 Service 클래스와 메서드 호출을 통해 상호 작용한다는 것을 의미한다.API 계층에서 구현한 Controller 내의 핸들러 메서드가 다음과 같은 종류가
Controller 단에서 @ExcetpionHandler 어노테이션을 이용하여 예외처리하도록 handleException() 메서드를 추가하였다.해당 메서드는 회원 등록을 하는데 있어서 필요한 데이터를 Request Body로 받아오는 UserPostDto를 검증하는
✨ JDBC(Java Database Connectivity) Java 기반 애플리케이션에서의 코드 레벨에서 사용하는 데이터를 데이터베이스에 저장, 업데이트, 조회할 수 있도록 해주는 표준 API JDBC 동작 흐름 JDBC 드라이버 JDBC 드라이버는 데이터베이스
🤔 JPA란? JPA(Java Persistence API)는 Java 진영에서 사용하는 ORM 기술의 표준 사양이다. JPA 표준 사양을 구현한 구현체로는 대표적으로 Hibernate ORM이 있다. 데이터 엑세스 계층에서의 JPA 위치 데이터 엑세스 계층에서
🤔 트랜잭션이란? 데이터베이스에서 논리적 상태 변화, 즉 Insert, Update, Delete로 데이터베이스의 데이터가 변화가 있는 것을 트랜잭션(transaction)이라고 한다. 특징 >ACID 원칙 원자성(Atomicity) 둘 다 성공하던가 둘 다 실패하
테스트 기능 테스트 "애플리케이션을 사용하는 사용자 입장에서 애플리케이션이 제공하는 기능이 올바르게 동작하는지를 테스트" 개발자 이외의 제 3자가 테스트의 주체가 된다. 통합 테스트 "API를 호출하는 테스트 코드를 통해 서비스 계층과 데이터 엑세스 계층을 거쳐 D
<span style="background-color:Interceptor나 Servlet Filter를 이용하여 보안 기능을 직접 구현가능하지만 Spring Security에서 안정적인 기능, 검증된 로직이기 때문에 Spring Security를 이용하는 것이
OAuth란? 정의 인증을 위한 표준 프로토콜의 한 종류로써 보안된 리소스에 엑세스하기 위해 클라이언트에게 권한을 제공한다. 즉 "특정 애플리케이션(Client)에서 사용자의 인증을 직접 처리하는 것이 아니라 사용자 정보를 보유하고 있는 신뢰할 만한 써드 파티 애플리
QueryDSL을 사용하면 복잡한 쿼리를 Java로 표현가능하며 동적인 쿼리도 작성이 가능하다. 기존의 복잡한 쿼리들을 JPQL이나 native query로 작성하였는데 이번 프로젝트를 진행하면서 JPA와 QueryDSL을 적용하려 한다.QueryDSL을 사용하기 위해
QueryDSL을 적용한 Repository 테스트를 진행하는데 있어 다음과 같은 에러를 만났다. QueryDSL Configuration을 설정했는데도 다음과 같은 에러가 발생한다. 현재 JPA와 QueryDSL을 사용하고 있는 구조는 다음과 같다.BoardRepos
동시성 문제의 발생 원인은 여러 쓰레드에서 값을 바꿀때 주로 발생한다. 단, 읽기만 한다면 발생하지 않는다.예를 들어 spring boot 기준에서 static으로 정의한 필드를 바꾼다거나 싱글톤으로 작성된 인스턴스의 필드 값을 여러 쓰레드가 바꿀때 발생한다.Threa
ThreadLocal을 이용해서 각 쓰레드마다 저장소의 개념으로 값을 저장할 수 있다.ThreadLocal을 사용하고 나서 꼭 ThreadLocal의 값을 비워줘야한다.\-> 이유예를 들어 Was 에서 ThreadLocal을 사용한다고 하자.Thread를 새로 생성하는