시작하기, 뭐든

MSA 교육 정리 - 추가 정리 필요 본문

카테고리 없음

MSA 교육 정리 - 추가 정리 필요

Gascon 2022. 1. 25. 15:42

-CBD

 

- MSA 도입 이유

데브옵스 기반으로 한 MSA

서비스 분리, 도메인 혹은 서비스 단위로 독립적인 DB를 사용하는게 일반적.

 

* 서비스 단위로 개별 DB 사용 문제

- 트랜잭션 문제가 걸림.

기존에는 분산 트랜잭션을 사용했음. MSA는 다양한 DB를 사용함. 

NoSQL은 트랜잭션 단위가 없음.

(데이터 정합성을 위해 트랜잭션은 정말 중요함. )

 

-비동기 메시징 (카프카)

비동기 메시징에서 발생하는 데이터 정합성 문제를 해결한다.

카프카를 실행하려면 JAVA_HOME 설정을 꼭 해줘야함.

 

-EDA

 

 

-DDD

도메인 드립 디벨롭먼트

 

-스프링 부트

pom.xml에 data jpa를 설정해두면 서버 구동할 때 db를 찾게됨.

db를 못찾아서 에러가 남.

 

-Spring 등장 배경

- EJB -> 여렵고, 복잡하고, 느림.

- EJB가 저래서 Spring Framework를 만듦 - 2002

 

- Spring Framework Boot

스프링 프레임워크도 어렵고 복잡해지기 시작해서 부트가 생김

  -> 핵심기술 : DI(Dependency Injection) - IoC

                    AOP(Aspect Oriented Programming)

      => 이 2가지를 부트가 대신 해주는 거임.

 

 - AOP

  핵심은 "프록시" 

 

-Controller와 RestController 차이

@RestController -> @Controller + @ResponseBody(return을 responseBody로 바로 인식해서 뿌려줌)

 

-jpa

 

-optional

NULL 체크 시 함수를 이용해서 할 수 있게끔>..??

 

- @Entity와 DTO의 차이

Entity에서 변경하면 변경된 설정이 DB에 바로 반영됨. 편리하긴 하지만 위험함.

Entity는 EntityManager와 연결되어있기 때문에 바로 db에 반영이 됨.

Entity에서는 Setter를 쓰지 않음

 

db와 분리하기 위해 DTO를 쓰는거임.

 

- @GeneratedValue(strategy = GenerationType.IDENTITY)

-kafka

비동기 메세지 시스템

 

* 동기 : 대표적인 동기통신 -> http, db

http가 비동기로 돌아갈 수 있도록 해준게 ajax

장점 ->데이터 정합성, 화면 정합성에 좋음. 쉽고 명확함

단점 ->단 요청이 끝날때까지 다른 작업을 수행하지 못하는 단점이 있음.(비효율적인 대기시간)

 

 

* 비동기 : ajax, kafka(db와 비슷하지만 비동기로 돌아가는 것)

장점 -> 

단점 -> 어려움

Comments