2022년 5월 8일 TIL

yshjft·2022년 5월 7일
0

데브코스 TIL

목록 보기
28/45

✔︎ Spring과 Spring Boot에서의 Datasource, JdbcTemplate

Spring

필요한 모든 것을 하나하나 Bean으로 설정해야한다.

Spring Boot(spring-boot-starter-jdbc)

  • 필요한 것들을 알아서 Bean으로 설정해준다.

    In Spring Boot JDBC, the database related beans like DataSource, JdbcTemplate and NamedParameterJdbcTemplate will be configured and created during the startup

✔︎ 테스트에 대하여

  • 테스트와 개발을 분리하여 생각하지 말고 하나로 생각하자.
  • private 메서드가 너무 커서 테스트 하기 힘들다면 클래스로 분리하는 것을 고려하자. 메서드 안에 너무 많은 역할을 가지고 있는 것일 수 도 있다.
  • 테스트 코드가 Mocking을 떡칠이 되면 가독성이 떨어진다. 따라서 이 때는 Mocking 라이브러리 보다는 직접 stub을 구현하여 테스트 코드를 작성하자.
  • @WebMvcTest를 이용한 controller 테스트를 해보자.
  • 실제 HTTP call을 날리는 테스트 또한 해보자.

✔︎ 서비스 로직 분리

서비스를 하나의 클래스에서 다 관리할 수 없어 분리해야하는 상황이 있을 수 있다. 분리된 클래스에는 @Service 어노테이션을 적용하자. (🤔사실 이 부분 아직 잘 이해가 안간다)

✔︎ DTO

  • DTO가 너무 종류가 많아질 경우 추상화가 필요하다.
  • DTO를 잘 사용하는 것도 중요하지만 VO를 잘 사용하는 것도 중요하다!
  • 변경되면 안되는 값일 경우 final 키워드를 사용하자.

✔︎ Optional.map()

Optional 객체의 값에 수정을 가해서 다른 값으로 변경하는 메서드이다.

public Optional<String> extractName(Person person) {
    return Optional.ofNullable(person)
        .map(p -> p.getName());
}

✔︎ Builder Pattern

Property가 4 ~ 5개가 된다면 Builder 패턴을 사용하자.

✔︎ MySql INDEX

검색에 자주 사용되는 컬럼에 적용하여 좀 더 빨리 DB에 접근할 수 있다.

CREATE INDEX 인덱스명 ON 테이블명(컬럼명)
ALTER TABLE 테이블명 ADD INDEX 인덱스명(컬럼명)

✔︎ 면접에 대하여

기본적인 것(자료구조)에 대한 공부를 잘 해놓자

profile
꾸준히 나아가자 🐢

0개의 댓글