학습 기록/스프링 부트3 백엔드 개발자 되기[자바편] (35) 썸네일형 리스트형 [06장.1] 1. API와 REST API API란? : 프로그램 간에 상호작용하기 위한 매개체 : 클라이언트의 요청을 받아 서버에 전달하고, 서버의 결과물을 클라이언트에 전달 REST(Representational State Transfer) APIfks? : URL의 설계 방식 : 자원(데이터)를 이름으로 구분해 자원의 상태를 주고받는 API 방식 REST API 특징 1) 서버/클라이언트 구조 2) 무상태 3) 캐시 처리 가능 4) 계층화 5) 인터페이스 일관성 REST API 장점 1) 무슨 행동을 하는 API인지 명확하게 파악 가능 (즉, 주소와 메서드를 보고 요청 내용 파악 가능) 2) 상태가 없어 클라이언트와 서버의 역할이 명확히 분리 3) HTTP 표준을 사용하는 모든 플랫폼에 사용 가능 REST API 단점 1) HTTP 메서드(.. [05장.4] 1. 스프링 데이터와 스프링 데이터 JPA 스프링 데이터(Spring Data) 1) 비즈니스 로직에 더 집중할 수 있도록 데이터베이스 사용 기능을 클래스 레벨에서 추상화 2) 인터페이스에서 CRUD를 포함한 여러 메서드 포함 3) 알아서 쿼리 생성 4) 페이징 처리 기능 5) 메서드 이름으로 자동 쿼리 빌딩 6) 각 데이터베이스 특성에 맞춰 기능 확장 * 페이징 처리 : 하나의 페이지에 표시해야 할 데이터가 많은 경우, 데이터를 나누어 표시 스프링 데이터 JPA(Spring Data JPA)란? : 스프링 데이터의 공통적인 기능에서 JPA의 유용한 기술이 추가된 기술 : 스프링 데이터의 인터페이스 PagingAndSortingRepository를 상속받아 JPARepository 인터페이스를 생성 : JPA를 편리하게 사용하는 메서드 제공 [기.. [05장.3] 3. 엔티티 상태 엔티티는 4가지(비영속, 분리, 관리, 삭제) 상태 1. 엔티티를 처음 생성하면 영속성 컨텍스트와 관계없는 상태인 비영속성 상태 2. persist() 메서드를 통해 영속성 컨텍스트가 관리하는 관리 상태로 변환 3. detach() 메서드를 통해 영속성 컨텍스트가 관리하고 있지 않은 분리 상태로 변환 4. remove() 메서드를 통해 영속성 컨텍스트에서 삭제하는 삭제 상태로 변환 public class EntityManagerTest{ @Autowired EntityManager em; // 엔티티 매니저 프록시 생성 public void example(){ Member member = new Member(1L, "홍길동"); // 비영속성 상태 em.persist(member); // 엔티티 관리 e.. [05장.3] 2. 영속성 컨텍스트 영속성 컨텍스트란? : 엔티티 매니저가 엔티티를 저장하는 공간 : JPA의 중요한 특징 중 하나로, 엔티티를 관리하는 가상의 공간 : 데이터베이스에서 효과적으로 데이터를 가져오고, 엔티티를 편하게 사용할 수 있도록 해줌 기존에는 데이터 조작을 위해 쿼리를 직접 작성해야 했지만, 현재는 스프링 부트에서 이런 쿼리를 자바 코드로 작성하고 이를 JPA가 알아서 쿼리로 변경해주고 있음 영속성 컨텍스트 기본 특징 1. 1차 캐시 : 엔티티를 보관하는 장소 : 트랜젝션을 시작하고 종료할 때까지만 1차가 유효 : 끄고 켤 수 있는 옵션이 아니며, 영속성 컨텍스트 자체를 1차 캐시로 봐도 무방함 : 엔티티 조회시 1차 캐시에서 조회하며, 값이 없을 경우 데이터베이스에서 조회한 이후 1차 캐시에 저장한 다음 반환 2. .. [05장.3] 1. JPA와 Hibernate, Entity JPA(Java Persistance API)란? : 자바에서 사용하는 표준 ORM : 자바에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 JPA는 인터페이스이기 때문에 실제 사용을 위해 ORM 프레임워크가 필요 Hibernate란? : JPA를 사용하기 위해 JPA를 구현한 구현체이자 자바용 ORM 프레임워크 : 자바 객체를 통해 데이터베이스 종류에 상관없이 데이터베이스를 자유자재로 사용할 수 있도록 함 : 내부적으로는 JDBC API를 사용 데이터 엑세스 계층(Data Access Layer) : 데이터 저장/조회 등의 작업은 JPA를 거쳐 구현체인 Hibernate ORM을 통해 진행되며, JDBC API를 통해 DB에 접근 엔티티(Entity)란? : 데이터베이스 테이블과 매핑되는 객.. [05장.2] ORM(Object-relation mapping) ORM(Object-relation mapping)이란? : 자바의 객체와 데이터베이스를 연결하는 프로그래밍 기법 : 자바 언어로만 데이터베이스를 다룰 수 있게 하는 도구로 데이터베이스를 객체처럼 사용 가능 [장점] 1) SQL을 직접 작성하지 않고 사용하는 언어로 데이터베이스에 접근 가능 2) 객체지향적으로 코드를 작성할 수 있기 때문에 비즈니스 로직에만 집중 가능 3) 데이터베이스 시스템이 추상화되어 있기 때문에 MySQL에 PostgreSQL로 전환하더라도 추가 작업이 거의 없어 종속성이 줄어듦 4) 매핑하는 정보가 명확해 ERD에 대한 의존도를 낮출 수 있고 유지보수에 유리 [단점] 1) 프로젝트의 복잡도가 커질수록 사용 난이도가 올라감 2) 복잡하고 무거운 쿼리는 ORM으로 해결이 불가능한 경우.. [05장.1] 1. 데이터베이스 관리자, DBMS 데이터베이스란? : 데이터를 매우 효율적으로 보관하고 꺼내볼 수 있는 곳 : 많은 사람들이 안전하게 데이터를 사용하고, 관리 DBMS(DataBase Management System)이란? : 데이터베이스를 관리하기 위한 소프트웨어 : 많은 사람들이 동시 접근 등에 대한 요구사항을 만족 : 가장 많이 사용하는 DBMS는 테이블 형식의 관계형 DBMS 2022.10.04 - [공부 자료/DataBase] - [데이터베이스] Database 기본 2022.10.05 - [공부 자료/DataBase] - [데이터베이스] 관계형 데이터베이스 [데이터베이스] 관계형 데이터베이스 관계형 데이터베이스(Relational database) : 구조화된 데이터를 하나의 테이블을 사용하는 데이터베이스 : 수직적 확장을 고.. [04장.3] 제대로 테스트 코드 작성해보기 [1단계] 테스트 코드 파일 생성 : 테스트 코드를 작성할 클래스의 이름 위에 마우스 커서를 놓고 클릭한 다음 Window - Alt + Enter, Mac - command+N - Test클릭 시 Test코드 파일이 자동 생성됨 [2단계] 테스트 코드 작성 @SpringBootTest // 테스트용 애플리케이션 컨텍스트 생성 @AutoConfigureMockMvc // MockMvc 생성 class TestController{ @Autowired protected MockMvc mockMvc; @Autowired private WebApplicationContext context; @Autowired private MemberRepository memeberRepository; @BeforeEach p.. 이전 1 2 3 4 5 다음