본문 바로가기
6장 API 만들기 • API와 REST API API 식당을 예시로 들면 손님(클라인언트) - 점원(API) - 주방(서버)의 관계에서 클라이언트의 요청을 서버에 전달하고, 서버의 결과물을 클라이언트에게 돌려주는 역할을 한다 REST API URL의 설계 방식이다 URL만 보고도 어떤 행동을 하는 api인지 알수 있게 한다 rest api 규칙 restful 한 api를 만들기 위해서 동사를 url에 쓰지 않는다 동사는 http의 post, get, put, delete 메서드로 사용한다 • 블로그 개발을 위한 엔티티 구성 id, title, content를 가지는 엔티티 만들기 생성자, 게터를 롬복을 사용하면 편리하다! @Entity @Getter @NoArgsConstructor(access = AccessLevel... 2023. 11. 23.
5장 ORM • 데이터베이스와 ORM JPA : 자바에서 RDBMS를 사용하는 방식을 정의해둔 인터페이스 하이버네이트 : JPA의 구현체인 ORM 프레임워크, 하이버네이트를 이용하면 DB 종류에 상관없이 자유롭게 사용가능하다 엔티티 : db 테이블과 매핑되는 객체, db 테이블과 직접 연결되기에 일반객체와 구분되게 엔티티라 한다 엔티티 매니저 : 엔티티를 관리해 db와 어플리케이션 사이에서 crud를 한다 엔티티 팩토리 : 엔티티 매니저를 생성하는 곳 스프링 부트에서는 직접 엔티티 매니저 팩토리를 만들지 않고 내부에 하나의 엔티티 매니저 팩토리를 두고 @PersistenceContext나 @Autowired를 사용해서 엔티티 매니저를 사용한다 • 영속성 컨텍스트 영속성 컨텍스트는 엔티티를 관리하는 가상의 공간이다 1.. 2023. 11. 22.
4장 스프링 부트 3 테스트 • 테스트 코드 개념 given - when - then 패턴으로 테스트 코드를 작성한다 Junit이나 AssetJ를 이용해서 테스트 코드를 작성한다 • Junit 테스트 작성 *Assertions 는 Junit껄로 임포트한다 public class JUnitTest { @DisplayName("1 + 2 = 3이다") @Test public void junitTest(){ int a = 1; int b = 2; int sum = 3; Assertions.assertEquals(a+b, sum); } } •자주 사용하는 JUnit 테스트 어노테이션 public class JUnitCycleTest { @BeforeAll static void beforeAll() { System.out.println("@.. 2023. 11. 22.
3장 스프링 부트 3 구조 이해하기 • 스프링 부트 3 구조 살펴보기 스프링 부트는 각 계층이 양 옆의 계층과 통신하는 구조를 따른다 프레젠테이션 계층 비즈니스 계층 퍼시스턴스 계층 데이터베이스 각 계층은 서로 소통이 가능하고, 영향을 끼치지는 못한다 • 프레젠테이션 계층 http 요청을 받고 이 요청을 비즈니스 계층으로 전송한다 컨트롤러가 프레젠테이션 계층의 역할을 한다 • 비즈니스 계층 서비스를 만들기 위한 로직인 비즈니스 로직을 처리한다 주문 서비스를 만들때 비즈니스 로직은 1. 주문 개수, 가격 등 데이터 처리 로직 2. 예외처리 로직 3. 주문 받기/ 취소하기 프로세스 로직 서비스가 비즈니스 계층의 역할을 한다 • 퍼시스턴스 계층 DAO 객체 등을 사용해서 db 관련 로직을 처리한다 DAO : 데이터베이스 계층과 상호작용 하기 위.. 2023. 11. 21.
2장 스프링 부트 3 시작하기 • 스프링 부트 3, 자바 17 기능들 텍스트 블록 - """ 안에 여러 줄의 텍스트 ex) 쿼리문을 넣을 수 있다 formatted 메서드 json을 파싱할떄 String textBlock = """ { "id" : %d "name" : %s } """.formatted(2, "juice); 형태로 함수 하나로 파싱할 수 있다 레코드 데이터 전달 객체를 빠르고 간편하게 만든다 레코드는 상속이 안되고 파라미터에 정의한 필드는 private final로 정의된다 레코드는 getter를 자동으로 만든다 record Item(String name, int price){ //여기 들어가는 파라미터는 private final로 정의된다 } Item juice = new Item("juice", 3000); jui.. 2023. 11. 21.
1장 스프링 기초 지식 백엔드 알아두면 좋은 지식 자바 어노테이션 - 메타 데이터로 사용하는 코드에 추가하는 표식 IoC와 DI 제어의 역전 - 클래스에 안에서 객체를 직접 생성하는 방식이 아닌 받아온 객체를 할당하는 방식 객체를 할당하는 건 스프링 컨테이너가 한다 의존성 주입 @Autowired등의 어노테이션으로 스프링 컨테이너에서 객체를 주입해준다 A에서 B를 주입받는 방법 public class A{ @Autowired B b; } 스프링 빈 - 스프링 컨테이너가 생성하고 관리하는 객체 @Component 등을 붙이면 빈으로 등록되어 스프링 컨테이너가 관리 AOP - 관점 지향 프로그래밍, 핵심 관점과 부가 관점을 나누어서 개발한다 계좌 이체 프로그램에서 핵심 관점 : 계좌 이체 부가 관점 : 로깅, db연결 PSA - .. 2023. 11. 21.