일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Baekjoon
- 개발자
- Java
- 그리디
- framework
- 스프링
- 애자일프로그래밍
- 읽기쉬운코드
- 엘라스틱서치
- 데이터베이스
- 개발
- 알고리즘
- 애자일기법
- 애자일
- spring boot
- 그리디알고리즘
- Elasticsearch
- cleancode
- 백준
- API
- Spring
- 코딩
- 코딩테스트
- 코드
- 자바
- JPA
- 클린코드
- 프레임워크
- database
- ES
- Today
- Total
목록스프링 (18)
튼튼발자 개발 성장기🏋️
단위 테스트 JUnit과 Mockito를 사용한 단위 테스트를 알아보는 시간~😄 JUnit 테스트는 테스트 케이스라고도 하는데 클래스 레벨에서 특정 기능을 테스트하는 것으로써 클래스 당 하나 이상의 테스트 케이스를 가진다. import org. junit. jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; public class StringTest { @Test public void testStringEquals() { String michael = "Michael"; String michael2 = michael; String michael3 = new String("Michael"); String michael4 = "Michae..
서킷 브레이커: 배치 내에서 호출하는 rest api에 과부화가 걸렸을 때 사용 서킷 브레이커 패턴을 구현하여 스프링 배치는 [스프링 리트라이]라는 라이브러리에 의존한다 implementation group: 'org.springframework.retry', name: 'spring-retry', version: '1.3.3' 서킷 브레이커로 래핑할 메서드를 식별 식별된 매서드에서 발생한 예외 건수가 임계값을 초과하면 서킷 브레이커가 해당 매서드에 대한 호출을 중지 및 대체 매서드로 트래픽을 라우팅 대체 매서드는 원래 메서드와 다른 처리방식 ex. api가 반환하는 값 대신 기본 값을 반환 특정 알고리즘을 기반으로 다시 원래 메서드로 트래픽을 되돌려 다시 정상인 상태로 되돌아 왔는지 테스트 서킷 브레이..
Spring을 쓰면서 데이터베이스에 접근할 때는 DTO는 필수조건일 것이라 생각이 든다. 나는 개인적으로 DTO를 Entity라고 생각하는 경우도 종종 있다. (그래야 이해하기 쉽기 때문...) 우리는 getter와 setter를 아주아주 자주 만들어 사용할 것이다. 굳이 spring이 아니더라도, 작은 어플리케이션 만들 때 조차 필요할 수 있다. 오죽하면 eclipse 자체에서 생성해주는 기능과 단축키까지 설정 되어 있겠는가..?ㅋㅋ 그것도 모자라서 Lombok이라고 하는 녀석은 어노테이션을 이용해서 자유롭고 편리하게 getter와 setter를 생성해서 사용할 수 있다. Lombok은 그냥 dependency를 걸어주고 바로 사용할 수 있는 녀석이 아니다. 사용 전에 필수 적으로 진행해야하는 절차가 ..
repository 프록시는 메소드 명으로부터 query를 가지고 오는 방법이 두 가지가 있다. 메소드 명으로부터 query를 직접 가지고 오는 방법. 수동적으로 정의된 query를 가지고 오는 방법. 이 두 가지 방법의 선택은 스토어에 따라 달라질 수 있다. 실제 어떤 query가 만들어 지는지는 어떠한 전략(?)이 있다. CREATE query 메소드의 이름을 가지고 query를 만든다. well-known prefix를 모두 제거하고 나머지 이름 부분 가지고 파싱해서 query를 만든다. (ex. findById()) USE_DECLARED_QUERY 선언 되어있는 query를 찾는다. 찾지 못하면 예외가 있으니 예외처리를 해주어야한다. 어노테이션을 사용하여서 어딘가에 정의되어 있을 수 있다. CR..
이전 글에서 query method를 만드는 4 step에 대해 알아 보았다. Repository를 상속한 인터페이스 만들기 query method 정의하기 String Data JPA 활성 시키기 주입 받아서 사용하기 상위 단계 중에 1step에 대해 알아보려고 한다. 보통 Repository와 CrudRepository와 PagingAndSortingRepositoryRepository 그리고 JpaRepository 중에 하나를 상속을(extends)를 받아 사용할텐데, 이 것을 어노테이션을 사용할 수도 있다. 바로 이런 식으로. @NoRepositoryBean interface MyBaseRepository extends Repository { Optional findById(ID id); S s..
사실 spring에서 MyBatis를 먼저 배우게 되는데 나는 생략하고 가장 핫한 JPA를 공부해볼까 한다. MyBatis를 경험해본 경과 상당히 귀찮고 반복되는 로직과 sql 작성으로인한 오타 등으로 나를 힘들게 했던 기억이 난다. JPA는 Java Persistence API로 RDB 관계를 표현하는 자바의 API로써 spring Data JPA는nce API로 RDB 관계를 표현하는 자바의 API로써 spring Data JPA는이러한 JPA에 대한 저장소를 서포트한다. 이 spring Data JPA는 JPA Data Source에 접근해야하는 프로그램 개발에 용이할 수 있다고 정의되어 있다. JPA reference는 다음 문서를 참고하자. 예제도 구할 수 있으니 꼭 참고하자. Spring Da..
Database를 연동하게 된다면, 우리는 코드 상에서 query를 날리는 로직이 필요할 것이다. 그렇다면 우리가 해야할 일은 다음과 같을 것이다. 드라이버 로드 -> connection 생성 (혹은 DB pool 사용) -> DB 연결 -> sql auery 실행 -> 자원해제 데이터베이스에 접근 할 때마다 상기 내용과 같은 작업이 반복적으로 이루어져야만 한다는 이야기다. 이를 해결하기 위해 JDBC를 사용하는 것이다. spring JDBC를 사용하기 위해 spring-jdbc maven lib이 필요하다. 찾는 방법은 이전 글의 maven Repository를 참고하자. #12 : spring 관련 docs 및 API 참고 자료 spring을 사용하려면 spring docs는 필수로 보아야하고, 어떤..
spring을 사용하려면 spring docs는 필수로 보아야하고, 어떤 라이브러리들이 있는지, 어떻게 가져다 사용하는지 정도는 기본으로 알고 있어야한다. 그래서 spring 관련 홈페이지를 끄적여본다. 1. spring docs : https://docs.spring.io/spring/docs/ 사용하는 버전에 맞는 docs 참고할 것. 2. MyBatis : https://mybatis.org/mybatis-3/ko/ 3. database reference : https://docs.oracle.com/cd/E11882_01/server.112/e41084/toc.htm 4. jQuery docs : https://api.jquery.com/ 5. W3C : https://www.w3schools.c..