코드스테이츠 Day46
public class Solution {
public int rotatedArraySearch(int[] rotated, int target) {
for(int i=0; i<rotated.length; i++){
if(rotated[i]==target) return i;
}
return -1;
}
}
데이터 액세스 기술 유형
1) SQL 중심 기술 : mybatis, Spring JDBC 등
2) 객체(Object) 중심 기술
- ORM(Object-Relational Mapping)
- 쿼리문 직접 사용 빈도 적음
- Spring Data JDBC, JPA(Java Persistence API), Spring Data JPA 등
Spring Data JDBC 적용 순서 및 패키지 구조
1) build.gradle에 dependencies 추가(의존 라이브러리)
2) application.yml 설정 파일 수정
- path, database url, sql init 등
- application.properties보다 선호되는 추세
3) schema.sql에 필요한 테이블 설정
4) 패키지 구조
[API 계층]
- Controller class (@RequestMapping @RestController, Service, Mapper DI)
- PostDto class, PatchDto class, ResponseDto class 등 Dto class (유효성 검사)
- Mapper Interface (@Mapper(componentModel="spring"))
[Service 계층]
- Service class ( @Service, Repository DI )
- Entity class (@Id 필드 = PK) --> DB table
[DB access 계층]
- Repository interface (extends CrudRepository<Entity class, @Id type>)
[예외 처리]
- ErrorResponse class (멤버 필드 = property, private 생성자, of())
- Enum ExceptionCode
- BusinessLogicException class (extends RuntimeException, ExceptionCode DI)
- GlobalExceptionAdvice (@RestControllerAdvice, @Slf4j, @ExceptionHandler)
<느낀 점>
웹 브라우저 주소에 콘솔 주소 찍으면 DB 나오는 거 신기했다.
yml 작성은 형식이나 입력 값이 낯설다.
사실 낯설지 않은게 없지만...
알고리즘은 어려우면 차라리 당분간 버리고, 일단은 스프링에 집중하라는 이야기를 들었다.
조급해하지 말고 마음 편하게 가자. 적당히...
뭘해도 중간은 하겠지..