일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Python
- 큐
- 자바스크립트
- 자문형
- 로보어드바이저
- Algorithm
- JavaScript
- 신한투자증권
- 프로그래머스
- pyhton
- algorithms
- 자료구조
- React #Web #프런트엔드
- BAEKJOON
- 모던자바스크립트
- RPA
- JS
- Ai
- frontend
- 파이썬
- BFS
- 백준
- algoritms
- 알고리즘
- 일임형
- SSAFY
- programmers
- 혁신금융서비스
- 스택
- dfs
- Today
- Total
Step by Step
240527 본문
MapRepository => JPARepository
Service
1) 필드 타입, 변수명
2) 반환 타입 고려하여 코드 수정
3) 메소드면, 매개변수 수정(insert() => save(), selectByUserId() => findByUserId())
📌 위 고려사항을 바꾸지 않고 Service를 사용하는 방법,,,?
기존 Repository 인터페이스와 JPARepository 인터페이스 사이에 중간 인터페이스를 생성하여, Service 계층에서는 이 중간 인터페이스를 사용하도록 합니다. 이 방법을 통해 구현체가 변경되더라도 Service 계층에서 사용하는 인터페이스는 변하지 않으므로, 변수명, 타입, 메소드명 등을 변경할 필요가 없습니다.
Map을 (JPA)DB로 업그레이드 할 때, Scale up을 한다.
MapRepository
JPA 메소드와 이름, 매개변수, 반환타입, 기능을 전부 통일 한다. => 1번은 고려가 안됨.
하지만 인터페이스를 구현하면 1번도 고려 가능,,!
Optional 기능은 뭘까?
사용 목적 : NPE를 막기 위해,,
No Such Element Exception => 모순적이다.
사용 방법 :
1) get()을 하기 전에 안에 값이 있나 없나 확인을 해야한다.
2) 따라서, inPresent() 와 get()을 같이 사용해야한다.
3) orElseThrow() -> 2번보다는 예외처리할 때 이것을 사용한다.
GloblaExceptionHandler
프로젝트 모든 컨트롤러의 예외 처리를 전역으로 담당
다른 계층에서 터져도 Throws 등을 통해 컨트롤러로 전달
=> 결국 모든 프로젝트 코드에서 예외처리를 도맡아 한다!
Member join할 때는 Member 기본 생성자 없이도 잘 됨
login할때는 왜 필요할까?
Entity를 만드는 방향
1) join : DTO -> Entity(개발자)
2) login : Entity(hybernate) -> DTO
* Java Reflection API
클래스 타입을 구체적으로 알려주지 않아도 클래스 멤버(필드,메소드)에 접근할 수 있게 도와주는 자바 API
ex) reflection X : 다형성
Relection API 사용 용도
보통은 프레임워크나 라이브러리에서 사용
Gateway
프로토콜을 사용해서ㅏ 두 시스템이 통신할 수 있게 도와주는 컴퓨터
API request-> API 게이트 웨이 -> 어플리케이션(ec2, db)
MSA 실습
1. 루트 모듈의 build.gradle을 잡고 프로젝트를 켠다.
2. 서브 모듈의 압축을 풀고 드래그앤 드롭으로 루트 모듈 안으로 move시킨다.
3. multi-module의 setting.gradle
4. multi-module.gradle을 수정한다.
jar 차이
jar : 배포(단독 실행), 라이브러리(실행 x)
Gradle 명령어
- Bootjar : {project-name}.jar - 단독실행가능, 어플리케이션 배포용
- Jar : {projcet-name}-plain.jar - 단독 실행 불가, 라이브러리 배포용
- Build : 두가지 jar 모두 생성
'Spring' 카테고리의 다른 글
240520 (0) | 2024.05.21 |
---|---|
240517 (0) | 2024.05.17 |
240516 (0) | 2024.05.17 |
240513(@JsonNaming, @JsonProperty) (0) | 2024.05.13 |
Log의 종류 & 리팩토링(?) (0) | 2024.05.09 |