애플리케이션 경계를 설정 : 요구사항에 맞춰서 어떤 애플리케이션의 기능을 특정 범위로 제한하는 것
객체 지향 프로그래밍 설계를 할 때, 자주 발생하는 문제들을 피하기 위해 사용되는 패턴디자인 패턴 중 하나Model + View + Controllerhttps://hanamon.kr/mvc%EB%9E%80-mvc-design-pattern/https:
모든 프로젝트 중에서 해당 프로젝트를 식별하게 해주는 식별자Java의 패키지 이름 규칙을 따라야 함도메인 명을 역순으로 표현해당 프로젝트의 이름을 사용단, 소문자로만 작성특수 문자 사용 X물리적으로 생성되는 프로그램(프로젝트)의 이름을 정한다. Artifact와 비슷하
소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것Framework는 뼈대, 틀이라는 의미를 가지고 있다.즉, 소프트웨어적인 관점에서 어떤 애플리케이션을 만들기 위한 뼈대/틀/구조를 제공하는 것이라고 이
어떠한 시스템을 구축하는데 있어 해당 시스템의 비지니스적 요구 사항을 만족하는 전체 시스템 구조를 정의하는 것이해 당사자들이 전체 시스템 구조를 이해하는데 무리가 없도록 일반적으로 이미지나 도형 등을 많이 사용함시스템 아키텍처하드웨어와 소프트웨어를 모두 포함하는 어떤
Spring Boot는 Spring Framework의 설정의 복잡함을 해결하고자 생겨난 Spring Project이다. Spring Boot의 장점 1. XML 기반의 복잡한 설계 방식 지양 - 설정이 간단해졌다. 2. 의존 라이브러리 자동 관리 Spring Bo
ComponentScan
ACAC를 사용하여 스프링 컨테이너를 인스턴스화한다.DependencyConfig 클래스를 인자로 받고 있다.인자로 받는 해당 클래스를 설정 클래스(Config Class)라고 한다.설정 클래스는 해당 애너테이션이 달린 클래스이다.@Configuration@Compon
생성자 주입setter 주입필드 주입일반 메서드 주입생성자에 의존 관계인 객체를 주입하는 방법생성자에 @Autowired를 하면 스프링 컨테이너에 @Component로 등록된 빈에서 생성자에 필요한 빈들을 찾아 주입해준다.생성자가 1개만 존재하는 경우에는 @Autowi
용어 Aspect
Spring MVC Spring Framework = Spring에서 지원하는 모든 기능들 Spring Web MVC Spring Framework의 모듈 중 웹 계층을 담당하는 모듈 = 웹 프레임워크 중 하나 클라이언트의 요청을 편리하게 처리해주
REST API 기반 웹 애플리케이션의 계층은 크게 API 계층(API Layer), 비즈니스 계층(Business Layer), 데이터 액세스 계층(Data Access Layer)으로 구분된다.API 계층은 웹 브라우저나 모바일 기기 등 클라이언트로부터 들어오는 요
DTO란? Data Transfer Object 데이터를 전송하기 위한 객체 데이터 전송은 다음과 같은 경우에 일어난다. 클라이언트 -> 서버 시의 요청 데이터 서버 -> 클래이언트 시에 응답 데이터 엔터프라이즈 애플리케이션 아키텍쳐 패턴 중
서비스 계층 API 계층에서 전달 받은 클라이언트의 요청 데이터를 기반으로 실질적인 비즈니스 요구사항을 처리하는 계층 1. DI를 사용하여 API 계층과 Service 계층 연동 API 계층과 Service 계층 연동 = DTO vs Entity DTO : API
Pagination은 두 단계로 할 수 있다.Repository 메소드에 Pageable 파라미터 추가해당 메소드에 인자로 PageRequest 전달(PageRequest = Pageable의 구현체)https://velog.io/@2yeseul/Spring-
Q1) 인텔리제이에서 코드를 수정할때마다, 다시 main 메서드를 실행시켜줘야 하나요?A1) 스프링에서 지원하는 개발자 툴이 있는데, 이것을 받아서 사용하면 자동 실행을 해준다.하지만 조금 시간이 오래걸려서 오히려 직접 실행시키는 게 빠를 때가 있어서 추천하진 않는다.
JPA란? Java Persistent API Jakarta Persistence라고도 불림 Persistence: 지속성, 무엇가를 오래 지속되게 하다. Java에서 사용하는 ORM 기술의 표준 사양(명세) ORM: 엔티티 클래스 객체와 데이터베이스 테이
Spring Data 패밀리 기술 중 하나로, JPA 기반의 데이터 액세스 기술을 좀 더 쉽게 사용할 수 있게 해준다.Spring Data JDBC와 Spring Data JPA은 Spring Data라는 그룹에 포함되어 있다.💡 JPA vs Hibernate ORM
여러 개의 작업을 하나의 그룹으로 묶어서 처리하는 처리 단위물리적으로는 여러 작업이지만, 논리적으로는 하나의 작업으로 인식한다.All or Nothing : 전부 성공하든가, 전부 실패하던가\-> 데이터의 무결성을 보장작업을 더 이상 쪼갤 수 없다는 성질All or N
Hibernate의 ddl-auto: create을 통해 스키마를 자동으로 생성하도록 설정했다.Member 엔티티 객체의 필드는 다음과 같다.하지만 생성된 테이블의 속성을 보면 다음과 같다.속성들의 순서가 엔티티 클래스와 다른데, 이는 Hibernate가 데이터베이스에
클라이언트 > Controller Post 요청 > Service의 회원가입 로직 > Event 발행 > Email 전송 로직 실행try-catch : exception이 발생할 여지가 있는 곳에 작성하여, 예외 처리를 한다.throws Exception : 해당 메서
기능 테스트사용자가 애플리케이션의 전반적인 기능을 테스트Frontend + BackEnd + DB + (외부 서비스) 까지 모두 연동되어 있다.통합 테스트개발팀에서 클라이언트 측 툴 없이 테스트를 진행하는 것BackEnd + DB애플리케이션의 여러 계층이 연관되어 있다
$ : 최상위 위치mockmvc : 다른 계층들과 연동된다., tomcat을 사용하지 않고 프로그램을 돌려줌mos → 다른 계층들과의 연동을 끊어준다.서비스 계층
Mock
https://wonit.tistory.com/493
클라이언트가 API를 사용하기 위해서 알아야 하는 요청 정보를 문서로 정리한 것을 말한다.요청 URIrequest bodyquery parameterAPI 사용을 위한 어떤 정보가 담겨 있는 문서를 API 문서 또는 API 스펙(사양, Specification)이라고
getMember()에 대한 슬라이스 테스트 코드를 작성하고 있었다.urlTemplate not found. If you are using MockMvc did you use RestDocumentationRequestBuilders to build the reques
방법 - 1) 인텔리제이에서 Gradle의 Tasks > build > :bootJar 또는 :build task를 더블 클릭방법 - 2) 터미널에서 ./gradlew build 실행빌드가 정상적으로 종료되면, build/libs에 Jar 파일이 생성된다.Jar 파일이
인터넷에서 데이터를 주고받을 수 있는 프로토콜Hyper Text Transfer Protocol Secure Socket layerHTTP + S HTTP over SSL/TLSHTTP over SecureHTTP 통신을 하는 과정에서 데이터를 암호화해서 주고받는 방법
Cookie Session
Spring MVC 기반 애플리케이션의 인증과 인가 기능을 지원하는 보안 프레임워크Spring에서 지원하는 Servlet Filter나 Interceptor로 보안 기능을 직접 구현하는 방법도 있지만, 보통 Spring Security를 사용한다.보안에 대해서 잘 알고
https://sudo-minz.tistory.com/m/133
인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공하는 서비스우리는 물리적인 서버실을 통해서 서비스를 제공해 왔다.컴퓨팅 능력을 향상시키기 위해서는, 서버실의 컴퓨터의 갯수를 늘리거나 하나의 컴퓨터의 성능을 업그레이드해야 하는데 공간의 한
우리가 잘 알고 있는 서블릿 컨테이너로는 Tomcat이 있을 것이다.항상 서블릿 컨테이너라는 말을 사용해왔지만, 아직 명확하게 설명할 수 있는 단계는 아닌 것 같아 이번 기회에 다시 정리하려고 한다.서블릿이란 무엇일까?웹 서버랑 서블릿 컨테이너랑 같은 의미일까?Spri
메인 프로젝트에서 작성해둔 코드를 SOLID 원칙에 따라 리팩토링 해보려고 한다.프로젝트 진행 시에, 멘토님께서 SOLID를 외우기 보다는 체득해서 어떻게 사용했고 이를 코드에 어떻게 적용했는지가 중요하다고 하셨다.그래서 이번 주에는 SOLID를 체득하고, 이를 적용해