(TIL) 20220112, 한글 테스트 코드

2022. 1. 13. 01:55TIL(Today I learned)

반응형

📕Facts(한 것)


  • User POST 작성 완료
  • 이메일 중복처리 구현 중
  • mariaDB 한글 입력 오류 해결
  • EC2와 RDS 연결완료
  • List 객체를 도메인에 추가
  • 테스트 코드 메서드 명 한글로 작성 중

 

📕Findings(배운 것)


회원가입을 간단하게 작성 완료 했다.

Jwt를 활용하지는 않았고, 간단히 동작 확인을 해야했어서 이정도만 구현했다.

TDD로 작성했고, 올바른 정보가 들어올 때, 아닐 때 모두 테스트를 마쳤다.

 


mariaDB한글을 처리하기 위해서 저번에 다 설정을 한 줄 알았는데,

collation 부분에서 한 개 처리를 덜 해줘서 한글 깨짐 현상이 생겼었다.

오늘 RDS에 접속해서 collation을 UTF8mb4_general_ci로 모두 수정하니 정상작동했다.

(한글입력을 위해서는 DB table을 삭제했다가 다시 생성해야한다.)


EC2와 RDS를 연결하기 위해서 이 블로그 저 블로그 다니면서 설정을 완료했다.

이제는 내 로컬 콘솔에서도 RDS를 수정할 수 있게 되어서 편하다.

datagrip으로 보는게 훨씬 편하지만, 아직 프로그램이 익숙하지 않고

콘솔로 드랍하고, foreign key 수정하고 하는게 더 편하다.

 


    @ElementCollection(targetClass = String.class)
    private List<String> stack;

domain에 List객체를 넣으려고 하니,@Entity 어노테이션을 붙이는 순간 에러가 발생했다.

그래서 stackoverflow에 뒤적거리니 이러한 해결책을 발견했고, 

해결할 수 있었다.

 

@ElementCollection은 다음과 같은 특성을 가지고 있다.

 

  • 연관된 부모 Entity 하나에만 연관되어 관리된다. 따로 관리가 불가능 하다. (@OnetoMany와 다르다.)
  • 항상 부모와 함께 저장되고 삭제되므로 cascade 옵션은 제공하지 않는다. (cascade = ALL)
  • 부모 Entity Id와 추가 컬럼(basic or embedded 타입)으로 구성된다.
  • 기본적으로 식별자 개념이 없으므로 컬렉션 값 변경 시, 전체 삭제 후 새로 추가한다

 

테스트 코드 메서드 명을 한글로 작성하고 있다.

나름 재밌고, 가독성도 훨씬 좋다.

 @Test
    void 올바르지_않은_회원정보로_회원가입을_하려는_경우() throws Exception {
        mvc.perform(
                post("/users")
                        .contentType(MediaType.APPLICATION_JSON)
                        .content("{}")
        )
                .andExpect(status().isBadRequest());
    }

 

📕Feeling(느낀 점)


내가 리딩경험이 없다보니, 잘하고 있는건지 잘 모르겠다.

코드 리뷰를 해주면서도, 내가 잘 하고 있는지도 의문이 들긴 한다.

 

 

📕여담


코드 컴플리트 마지막 스터디에 참여하지 못해서 안타깝다....!

 

반응형

'TIL(Today I learned)' 카테고리의 다른 글

(TIL) 20220114  (0) 2022.01.15
(TIL) 20220113, 코드리뷰를 내가?  (0) 2022.01.14
(TIL) 20220111, 사용자 생성  (0) 2022.01.12
(TIL) 20220110, RDS와의 조우  (0) 2022.01.11
(TIL) 20210109, 배포와 도커  (0) 2022.01.09