본문 바로가기

ZB 백엔드 스쿨/블로그 과제13

스프링 핵심가이드) 북스터디 7주차 : 12장 서버 간 통신 12장 서버 간 통신 최근 개발 서비스들은 마이크로 서비스 아키텍처 (MSA)를 주로 채택하고 있음. MSA는 애플리케이션이 가지고있는 기능(서비스)이 하나의 비즈니스 범위만 가지는 형태. 각 애플리케이션은 자신이 가진 기능을 API로 외부에 노출하고, 다른 서버가 그러한 API를 호출해서 사용할 수 있게 구성되므로 각 서버가 다른 서버의 클라이언트가 되는 경우도 많음. 다른 서버로 웹 요청을 보내고 응답을 받을 수 있게 도와주는 RestTemplate과 WebClient에 대해 기술. 12.1 RestTemplate이란 ? - RestTemplate : 스프링에서 HTTP 통신 기능을 손쉽게 사용하도록 설계된 템플릿. HTTP 서버와의 통신을 단순화한 이 템플릿 이용시 RESTful 원칙을 따르는 서비.. 2023. 11. 5.
스프링 핵심가이드) 북스터디 7주차 : 11장 액추에이터 활용하기 11장 : 액추에이터 활용하기 애플리케이션 정상 동작 모니터링 환경 구축은 중요. 스프링 부트 액추 에이터 : HTTP 엔드 포인트나 JMX를 활용해 애플리케이션 모니터링하고 관리할 수 있는 기능 제공. * JMX(Java Management Extensions) : 실행 중인 애플리케이션의 상태를 모니터링하고 설정을 변경할 수 있게 해주는 API. JMX를 통해 리소스 관리하려면 MBeans(Managed Beans)를 생성해야 함. 11.1 액추에이터 종속성 추가 액추에이터 기능을 사용하려면 애플리케이션에 spring-boot-starter-actuator 모듈의 종속성 추가. 11.2 엔드포인트 액추에이터의 엔드포인트틑 애플리케이션의 모니터링을 사용하는 경로. 스프링 부트에는 여러 내장 엔드포인트가.. 2023. 11. 5.
스프링 핵심가이드) 북스터디 6주차 : 10장 유효성 검사와 예외처리 10 유효성 검사와 예외처리 유효성 검사 / 데이터 검증 : 비즈니스 로직이 올바르게 동작하기 위해 데이터를 사전 검증하는 작업 10.1 일반적인 애플리케이션 유효성 검사의 문제점 일반적으로 사용되는 데이터 검증 로직의 문제점 : 1. 계층별로 진행하는 유효성 검사는 검증 로직이 각 클래스 별로 분산되어 있어 관리가 어려움. 2. 검증로직에 중복이 많아 여러 곳에 유사한 기능의 코드가 존재할 수 있음. 3. 검증해야 할 값이 많으면 검증하는 코드가 길어져 가독성이 떨어짐. => Bean Validation이라는 데이터 유효성 검사 프레임워크로 위의 문제들을 해결. Bean Validation은 어노테이션을 통해 다양한 데이터를 검증하는 기능을 제공. - 유효성 검사를 위한 로직을 DTO같은 도메인 모델과.. 2023. 10. 29.
스프링 핵심가이드) 북스터디 5주차 : 09장 09 연관관계 매핑 9.1 연관관계 매핑 종류와 방향 - One to One - One to Many - Many to One - Many To Many 어떤 엔티티를 중심으로 연관 엔티티를 보느냐에 따라 연관관게의 상태가 달라짐. DB에서는 두 테이블의 연관관계를 설정하면 외래키를 통해 서로 조인해서 참조하는 구조로 생성, JPA를 사용하는 객체지향 모델링에서는 엔티티간 참조 방향 설정 가능. - 단방향/양방향으로 설정할 수 있다. 연관관계가 설정되면 한 테이블에서 다른 테이블의 기본키 값을 외래키로 갖는다. 외래키를 가진 테이블이 '주인'이 된다. 주인은 외래키를 사용(등록, 편집, 수정)할 수 있고 상대엔티티는 읽기만 가능. 9.3 일대일 매핑 9.3.1 일대일 단방향 매핑 하나의 상품에 하나의 상.. 2023. 10. 20.
스프링 핵심가이드) 북스터디 4주차 : 08장 Spring Data JPA 08 Spring Data JPA 활용 8.2 JPQL(JPA Query Language) : JPA에서 사용할 수 있는 쿼리 의미. JPQL은 엔티티 객체를 대상으로 수행하는 쿼리이기 때문에 매핑된 엔티티의 이름과 필드의 이름을 사용. ex) SELECT p FROM Product(엔티티 타입) p WHERE p.number(엔티티 속성) = ?1; SQL은 테이블이나 칼럼의 이름 사용. 8.3 쿼리 메서드 리포지토리는 JpaRepository를 상속하는 것 만으로 다양한 CRUD 메소드 제공. 8.3.1 쿼리 메서드의 생성 쿼리메서드는 동작을 결정하는 주제(Subject)와 서술어(Predicate)로 구분. find...By, exists...By 키워드로 쿼리의 주제를 정함. By는 서술어의 시작.. 2023. 10. 16.
스프링 핵심가이드) 북스터디 3주차 : 06장 06 데이터베이스 연동 6.1 마리아DB설치 실무에서는 root 계정 사용하지 않음. 문자 인코딩 방식 UTF-8 설정 : Use UTF8 as default server's character set에 체크 GUI도구 : HeidisSQL 6.2 ORM ORM(Object Relational Mapping) : 객체 관계 매핑 자바와 같은 객체지향 언어에서 의미하는 객체와 RDB(Relational Database)의 테이블을 자동으로 매핑하는 방법 Persistance : 영속성. 데이터를 생성한 프로그램이 종료되어도 데이터는 남아있는 것 -> DB Persistance Framework : 영속성을 가진 DB와 Spring Boot를 이어주는 것 - 종류 : SQL Mapper, ORM - SQL M.. 2023. 10. 8.
스프링 핵심가이드) 북스터디 2주차 : 04~05장 API를 작성하는 다양한 방법 04 스프링 부트 애플리케이션 개발하기 4.1 프로젝트 생성 1. 인텔리제이 IDEA에서 생성 - ultimitate 버전에서만 가능 2. Spring Initalizr - Community 버전에서 사용. 4.2 pom.xml(Project Object Model) - pom.xml은 메이븐의 기능을 사용하기 위해 작성하는 파일. - 프로젝트, 의존성 라이브러리, 빌드 등의 정보 및 해당 프로젝트를 관리하는데 필요한 내용있음. - 빌드관리도구 ? ) JVM이나 WAS가 프로젝트를 인식하고 실행할 수 있게 작성한 소스코드와 프로젝트에 사용된 파일들(.xml, .jar, .properties)를 빌드하는 도구. 개발 규모가 커질수록 라이브러리들, 라이브러리 간 버전 호환성 체크에 용이 - 메이븐 : 자바 .. 2023. 9. 30.
스프링 핵심가이드) 북스터디 1주차 : 02~03장 02 개발에 앞서 알면 좋은 기초 지식 2.1 서버간 통신 - 마이크로서비스 아키텍처(MSA: Microservice Architecture) : 서비스 규모를 작게 나누어 구성한 아키텍처 ex) 하나의 포털 사이트에 블로그, 카페, 메일 프로젝트 등의 애플리케이션을 기능별로 나눠서 개발. -> 장점 : 서버 업데이트시, 애플리케이션 유지보수 시 필요한 기능들만 업데이트 가능. 단, 독립적으로 개발하게 되변 각 서비스 간 통신해야하는 경우가 발생. 이런 경우 통신을 '서버 간 통신'이라고 함. - 서버간 통신 : 한 서버가 다른 서버에 통신을 요청하는 것을 의미. 한 대는 서버, 다른 한 대는 클라리언트 방식. 통신 방식 중 가장 많이 사용되는 것 -> HTTP/HTTPS 방식. 2.2 스프링 부트의 동.. 2023. 9. 24.
스프링 핵심가이드) 북스터디 1주차 : 01장 01 스프링 부트란 ? - 스프링 : 자바 언어를 이용해 엔터프라이즈급 개발을 편리하게 만들어주는 '오픈소스 경량급 애플리케이션 프레임워크' 엔터프라이즈급 개발 ? ) 기업 환경을 대상으로 하는 개발 - 제어 역전(Inversion of Control) : 객체 제어의 주체가 객체를 사용하는 클래스 자신이 아닌 외부에 있음. 자바에서처럼 클래스 내에 필요한 객체를 선언하고 new를 통해 의존성을 생성하는 방식이 아닌 Spring Container/ IoC Container가 객체의 의존성을 관리. 이런 제어 역전을 통해 의존성 주입(Dependency Injection), 관점 지향 프로그래밍 (AOP)가 가능해짐. - 의존성 주입(DI) 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 .. 2023. 9. 24.
728x90