지금 날씨는 한여름이지만 나에게는 봄이 왔다. 비록 이른 봄이지만 나에게 온 만큼 온 힘을 다해 공부해보려한다. 아예 기초도 모르는 상태기에 기초부터 다져본다. 🌸SPRING🌸 Application Framework : 애플리케이션 개발을 빠르고 효율적으로 할 수
Spring Framework Framework 기본적으로 프로그래밍을 하기 위한 틀이나 구조를 제공 프로그래밍을 위한 기본구조 제공 이상의 많은 기능 제공 서로 다른 애플리케이션간의 통신 데이터를 데이터 저장소에 저장 다양한 기능들을 라이
Spring Framework의 특징 Spring 삼각형 POJO라는 것을 Spring의 핵심 개념들인 IoC/DI, AOP, PSA를 통해 달성할 수 있다는 의미를 갖고있다 POJO(Plain Old Java Object) 프로그래밍 POJO : 순수 J
SOLID (객체 지향 설계 원칙)로버트 마틴이 명명한 객체지향 프로그래밍 및 설계의 다섯가지 기본 원칙을 마이클 페더스가 두문자어 기억술로 소개한 것유지보수에 쉽고, 유연하고, 확장이 쉬운 시스템을 만들 수 있다S 단일 책임 원칙(SRP, Single Responsi
아키텍처(Architecture)건축 분야에서 유래된 용어로, 요구 사항을 만족하는 건축물을 짓는데 있어 청사진 같은 역할너무 복잡하지 않고, 최대한 심플함을 유지해야함시스템 아키텍처(System Architecture)하드웨어, 소프트웨어를 모두 포함하는 어떤 시스템
Spring BootSpring Framework : 엔터프라이즈 애플리케이션을 개발하기 위한 핵심 기능을 제공하는 Spring Project 중 하나Spring BootSpring Framework의 편리함에도 불구, Spring 설정의 복잡함으로 인해 Spring
Spring Web MVCSpring Framework : Spring에서 지원하는 모든 기능들을 포함한 것spring-webmvc : 서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 모듈Spring Web MVC를 줄여 Spring MVC라고 부
Spring Boot 기반의 애플리케이션에서 주로 사용되는 Java 패키지 구조기능 기반 패키지 구조(package-by-feature)계층 기반 패키지 구조(package-by-layer)테스트와 리팩토링이 용이하고, 향후 마이크로 서비스 시스템으로 분리가 상대적으로
HTTPHTML 등의 문서를 전송하는 Application Layer 프로토콜Header와 Body로 구성HTTP HeaderHTTP 메시지(Messages)의 구성 요소 중 하나클라이언트의 요청이나 서버의 응답에 포함되어 부가적인 정보를 HTTP 메시지에 포함시켜준다
DTO (Data Transfer Object)마틴 파울러(Martin Fowler)가 ‘Patterns of Enterprise Application Architecture’ 책에서 처음 소개한 엔터프라이즈 애플리케이션 아키텍처 패턴 중 하나데이터를 전송하기 위한 용
Client와 Server의 관계 웹 브라우저는 웹 서버로부터 HTML 컨텐츠를 제공받는 클라이언트 웹 브라우저는 웹 서버가 응답으로 전해주는 HTML 컨텐츠를 전달받아 브라우저 내에서 보여줌 서버쪽의 리소스를 이용하는 측이 Client 하지만 서버도 다른 서버로
Mapper Mapper 필요 이유
예외처리 없이 유효성 검사 실패 시 응답 메세지클라이언트는 위 Response Body의 내용만으로는 요청 데이터 중 어떤 항목이 유효성 검증에 실패했는지 알수없기에 에러메세지를 더 구체적으로 알 수 있도록 바꾸는 작업 필요@ExceptionHandler(https&#
JDBC(Java Database Connectivity)Java에서 제공하는 표준 사양(또는 명세, Specification)Java 기반 애플리케이션의 코드 레벨에서 사용하는 데이터를 데이터 베이스에 저장 및 업데이트 하거나 데이터베이스에 저장된 데이터를 Java
JPA(Java Persistence API/Jakarta Persistence API)Java 진영에서 사용하는 ORM(Object-Relational Mapping) 기술의 표준 사양(또는 명세, Specification)Java의 인터페이스로 사양이 정의되어 있기
Entity와 Table 간의 Mapping 예시 엔티티 매핑 관련 애너테이션 |Annotation|Attribute|설명| |:-:|:-:|:-:| |@NoArgsConstructor(필수)|-|매개변수가 없는 생성자 자동 생성| |@AllArgs
TransactionDB의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위애플리케이션의 신뢰성이 깨지는 상황이 발생하면 트랜잭션이라고 부를 수 없다여러 작업을 하나의 작업단위로 인식하여 전부 성공하거나 전부 실패(All or Nothing) 둘 중 하
테스트를 먼저 하고 구현은 그 다음에 한다개발 흐름서비스 제작에 관여하는 사람들이 모여 서비스에 대한 컨셉과 해당 컨셉에 따른 요구 사항을 지속적 수집수집된 요구 사항에 맞춰 서비스를 화면으로 제공하기 위한 UI(User Interface)를 설계하며 구체적 기능 요구
단위 테스트(Unit Test) 테스트 어떤 대상에 대한 일정 기준을 정해놓고, 그 대상이 정해진 기준에 부합하는지 부합하지 못하는지를 검증하는 과정 테스트 이유 : 테스트를 잘 거쳐 테스트 대상이 검증 과정에 잘 통과하게 만들어 최대한 더 나은 결과를 얻기
단위 테스트를 제일 쉽고 빠르게 적용할 수 있는 부분은 helper class와 utility classUtility Class 논쟁유틸리티 클래스의 메서드들은 일반적으로 클래스의 객체로 인스턴스화 필요 X정적 메서드로 구성객체 지향 세계에서는 유틸리티 클래스 사용을
HamcrestJUnit 기반 단위 테스트에서 사용할 수 있는 Assertion FrameworkJUnit Assertion 메서드보다 더 많이 사용됨Hamcrest 사용 이유Assertion을 위한 Matcher가 한 문장으로 이어져 가독성 향상테스트 실패 메세지를
Slice Test Slice Test 각 계층에 구현해 놓은 기능들이 잘 동작하는지 특정 계층만 잘라서(Slice) 테스트하는 것 통합테스트 슬라이스 테스트 후 통합테스트까지 마무리해야 비로소 개발자의 테스트 작업이 마무리된다고 할 수 있지만 일반적
API 문서화 API 문서화 클라이언트가 REST API 애플리케이션에 요청을 전송하기 위해서 알아야 하는 요청정보(요청 URL, Request Body, Query Parameter 등)을 문서로 정리한것 API사용을 위한 정보가 담겨있는 문서를 API문서
Snippets Snippets : 테스트 케이스에 API 스펙 정보를 추가하여 생성한 문서 일부의 조각 모음 Gradle 프로젝트에서의 템플릿 문서 디폴트 경로 : src/docs/asciidoc 템플릿 문서에서의 Snippets 사용 방법 : `incl
우측 상단 Gradle 윈도우 탭 클릭Tasks → Build → bootJar (or build) 더블 클릭으로 실행buildassemble, check와 같은 빌드와 관련된 모든 task 실행실행 가능한 Jar 파일 외의 plain Jar 파일을 하나 더 생성boo