MSA 환경에서 ClientA 는 A 서버로, ClientB 는 B서버로 동적라우팅 이 필요하다💡 Spring Cloud Gateway 를 통해 동적라우팅을 구현할 수 있다 Spring MVC vs Spring WebFluxSpring MVC : 전통적인 동기(블로킹) 웹 프레임워크SpringWebFlux : 비동기(논블로킹) 리액티브 웹 프레임워크리액티브 : 요청을 보내고 결과를 기다리지 않은 채 다음일을 먼저 처리구분Spring MVCSpring WebFlux처리방식동기(Blocking)비동기(Non-blocking)대표의존성spring-boot-starter-webspring-boot-starter-webfluxHTTP server기본 : 톰캣기본 : Netty변수 주요 타입String, L..
인프런 스프링 입문 - 김영한 강의를 참고하였습니다. a. Spring AOP 가 필요한 경우ex) 모든 메서드의 호출 시간을 측정 ( 인프런 스프링 입문 - 김영한 강의)ex) 사용자 무슨 액션을 하는지 로그를 쌓는 경우/*** 사용자 상품 주문* - 상황 : 사용자가 몇시에, 어떤 액션을 했는지 알기 위해서 사용자 로그를 쌓아야한다. * - 핵심 로직 (상품 주문) + 부가 로직 (로그 쌓기) */@Transactionalpublic List saveOrder(Long goodsId){ log.debug("== 사용자 {} 상품 주문 시작 ==",goodsId); orderRepository.save(goodsId); log.debug("== 사용자 {} 상품 주문 저장 완료, 사용자 로..
@Column(updateable = false)JPA 엔티티속 수정되지 않은 컬럼에다가 @Column(updateable = false) 설정을 하곤한다. 위 애노테이션이 과연 어떻게 작동하는가? 알아보려 한다. @Column(updateable = false) 테스트 코드 작성테스트할 Customer 엔티티 생성@NoArgsConstructor@AllArgsConstructor@Builder@Getter@Entitypublic class Customer{ @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String firstName; private String lastName; ..
Cache 자주 사용하는 데이터를 빠르게 접근하기 위한 임시저장공간 데이터 조회 속도 향상과 성능최적화를 목적으로 한다. --> DB 부하를 줄일 수 있다. Spring Cache 동작 방식 캐시 애노테이션이 적용된 메서드를 호출캐싱된 데이터가 있는지 확인 있으면 바로 반환 없으면 DB 조회 후에, 결과 캐싱에 저장 이후 같은 메서드, 같은 키 값 호출시 캐시에서 값 가져옴 Spring Cache 저장 위치 기본 저장소 (JVM memory) 또는 외부 캐시 저장소 (Redis.. 등등) 필요기본 저장소 (JVM memory)간단한 개발단계에서만 사용, 실무에서는 외부 캐시 저장소 사용JVM Heap memory 에 저장되기에, 서버 재시작시 캐싱된 데이터 없어짐 Redis 인메모리 데이터 저장소..
관계형 DB 에서 M:N 연관관계 비즈니스 서비스를 DB 를 모델링 하는 과정에서 다대다 관계가 나올 수 있다.1개의 주문은 N개의 상품을 주문한다.1개의 상품은 M개 주문에 포함될 수 있다.이렇게 되면 관계형DB 입장에서는 관계를 표시할 수가 없다.하나의 레코드에서 하나의 FK 만 가져야 하기 때문이다.“콩나물” 상품을 M개 주문했다면 상품테이블에 주문 외래키로 뭐를 가져야할지?1번 주문에 여러개 상품을 주문했다면, 주문테이블에 상품 외래키로 뭐를 가져야할지?즉 서로의 외래키가 애매해진다.. b. 다대다 연관관계 해소를 위한 중간테이블 필요하나의 레코드에서 한 개의 FK 명시를 위해서는 중간테이블이 필요하다중간테이블을 만들어서, 1:N 관계를 2개를 만든다.1개 주문에 N개의 주문 상품을, 1개의 ..
a. 객체 설계 단계에서는 단방향 연관관계로 끝내야 한다. 단방향으로만으로도 관계 매핑이 완료된거임 → 양뱡향으로 해버리면 객체 입장에서 고려할것이 많아짐양방향은 사실 단방향의 2개일 뿐테이블 설계하면서 객체 설계 같이 진행할 것 → 이미 테이블간의 관계는 이미 정해짐무엇이 1:1 관계이고, 1:N 관계인지 N:M 관계인지는 테이블 설계하면서 나올것임 이때 → 외래키를 갖고 있는 객체가 주인으로 단방향 연관관계 맺으면 됌다중성이 헷갈릴때에는 반대로 생각해보기다중성 : @ManyToMany 인지, @OneToMany인지..실무에서 다대다는 지양해야함!양방향은 언제 ?설계 단계에선 하지 않음, 실무하다가 정말 필요하다 생각되면 그 때 추가하면 된다.테이블 수정할 필요도 없고! (테이블 영향도 없음) mapp..
1. 사이트에서 generate https://start.spring.io/ 요즘에는 gradle project를 대부분 사용한다. 템플릿 엔진으로 1. Spring web 2. Thymeleaf 를 사용한다. 2. build.gradle파일을 오픈해준다. intellj에서 자바 실행이 안될경우에 프로젝트jdk, gradle jdk를 설정해주어야한다. 3. 프로젝트 구조에서 project sdk를 수정해준다. 4.setting에서 Gradle jdk를 설정해준다.
- Total
- Today
- Yesterday
- sql
- UML
- 백엔드
- 안드로이드
- 파이썬
- 기초100제
- JPA
- eclipse
- 코드업
- 유스케이스
- 이클립스
- 객체지향
- set
- 코딩
- 자바
- laravel
- sourcetree
- Spring
- 자바기초
- 스프링
- 깃
- 다이어그램
- 파이썬기초
- 객체지향모델링
- 개인프로젝트
- 코드업기초
- 레이아웃
- 모델링
- java
- web
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |