Representational State Transfer : 자원의 상태 전달네트워크 아키텍처Client, Server : 서로 독립적으로 분리되어야 한다.Stateless : 요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다.Cache : 클라이언트는 서버의
프로덕션 제품(=실제 고객들에게 제공되는) 수준의 스프링 기반 어플리케이션을 쉽게 만들 수 있다.스프링 부트 어플리케이션에는 스프링 구성이 거의 필요 X.java-jar로 Java 어플리케이션을 실행 할 수 있다.톰캣이 내장되어 있어 설치할 필요 X.스프링 개발에 대해
springboot에서 요청을 받는 부분리소스 취득CRUD 중 Read멱등성, 안정성을 가진다.Path Variable, Query Parameter를 가질 수 있다.GetApiController : 기본 주소 = http://localhost:9090/api
리소스 생성, 추가CRUD 중 CREATE매번 데이터를 생성하기 때문에 멱등성과 안정성을 가질 수 없다.Path variable, Query Parameter(설정할 수 있으나 보통 사용X), DataBody
리소스 갱신, 생성CRUD 중 Create, Update멱등성을 가진다. 처음 한번은 데이터가 생성되고, 그 이후에는 계속해서 업데이트 되기 때문에 데이터는 항상 하나이다. 즉 항상 같은 상태를 유지하기 때문에 멱등하다고 할 수 있다.Path Variable, Quer
CRUD 중 DELETE멱등성을 가지지만 안정성을 갖진 않았다.Path Variable, Query Parameter, DataBody(사용할 수 있지만 권장하지 않는다)삭제할 리소스가 없는데 삭제를 요청해도 멱등성을 가지기 때문에 200 ok가 나온다.Talend A
여러 가지 모듈 중 스프링 부트, 스프링 클라우드, 스프링 데이터, 스프링 배치, 스프링 시큐리티에 중점을 둔다.IoC/DI 의존 관계 주입AOP 관점 중심 프로그램PSA 이식 가능한 추상화스프링에서 일반적인 자바 객체를 new로 생성하여 개발자가 관리하는 것이 아닌,
관점지향 프로그래밍스프링 어플리케이션은 특별한 경우를 제외하고는 MVC 웹 어플리케이션에서는 Web Layer, Business Layer, Data Layer로 정의한다. \- Web Layer : REST API를 제공, 클라이언트 중심의 로직 적용Business
null pointer exception 같은 부분을 방지하기 위해서 미리 검증 하는 과정이다.검증할 값이 많은 경우 코드가 길어진다.구현에 따라 service logic과 분리가 필요하다.검증 코드들이 흩어져 있는 경우 확인이 어려우며, 재사용의 한계가 있다.따라서
에러 페이지4XX Error or 5XX ErrorClient가 200 외에 처리를 하지 못할 때는 200과 함께 에러 Message 전달@ControllerAdvice : Global 예외 처리 및 특정 package/Controller 예외처리@ExceptionHa
Application <-> ORM(JPA(Hibernate(spring data jpa))) <-> JDBC <-> RDBORM : Appilictoin과 DB를 연결해주는 것JPA : Java 진영에서 정의한 orm의 표준 스펙Hibernate :
fastcampus 웹 개발 마스터 초격차 패키지를 수강하며 정리한 내용들입니다.톰캣과 같은 웹 애플리케이션들을 서블릿 컨테이너라고 하는데, 이는 기본적으로 필터와 서블릿으로 구성되어 있다.filter1,2,3-->--서블릿1, DispatchServlet-->--co
fastcampus 웹 개발 마스터 초격차 패키지를 수강하며 정리한 내용들입니다.
Authentication은 인증 결과만 저장하는 것이 아니고, 인증을 하기 위한 정보와 인증을 받기 위한 정보가 하나의 객체에 동시에 들어 있다. AuthenticationProdiver를 통해 어떤 인증에 대해서 허가를 할 것인지 직접 보고 인증을 해주는 방식을 가
@Transient : 영속성 처리에서 제외하는 어노테이션, 디비에 반영하지 않는 테스트 데이터들에 사용
데이터베이스에 연결되어 사라지지 않고 지속적으로 접근할 수 있다.EntityManager : persistence context의 가장 주체적인 역할을 하는 bean.jpa를 통해 springboot가 persistence를 처리해주었기 때문에 특별한 설정없이 사용할
All or Noting의 개념으로 작업 단위를 일부분만 실행하지 않는다.트랜잭션이 성공적으로 완료되면 일관적인 DB상태를 유지해야 한다.한 트랜잭션 내의 데이터 조작에 관해서 다른 트랜잭션으로부터 독립적으로 동작해야 한다.데이터는 영구적으로 보관된다.필드 주입이라고
spring이 제공하는 트랜젝션에 대한 기능으로, 동시에 발생하는 트랜젝션 간에 데이터 접근을 어떻게 처리할지에 대한 단계를 정의한다.격리 단계가 올라갈수록 데이터의 정확성을 보장해주지만, 동시 접근에 대한 성능은 떨어진다.사용하는 DB의 디폴트 격리 단계를 따른다.
@Transaction의 디폴트 설정이다.기존에 사용하던 트랜잭션이 있다면 재활용 하고, 없다면 새로운 트랜잭션을 만들어 사용한다. 트랜잭션을 재활용(공유)하기 때문에 한 메서드에서 예외가 발생하여 트랜잭션이 롤백된다면 다른 메서드 역시 정상 동작하더라도 함께 롤백되기
@OneToOne 이나 @OneToMany 등 연관 관계가 있는 경우에 cascade를 설정할 수 있다.ALL, PERSIST, MERGE, REMOVE, REFRESH, DETACH 옵션을 줄 수 있다.디폴트는 빈 리스트 상태이다.사용법 : 아래와 같은 연관 관계에서
@Column(columnDefinition) -> auto DDL시 사용하는 속성columnDefinition은 sql 타입을 치환해줌jpql -> @Query, jpa entity기반으로 쿼리를 생성1) 숫자 기반의 파라미터 맵핑방법\-> ?1 = 1번째 파라미터