TIL

TIL_20221028

번잔중 2022. 10. 28. 22:59

오늘 할 일

🐢 코드 스테이츠 47일차

[Spring MVC] JDBC 기반 데이터 액세스 계층

  • Daily Coding
  • Spring Data JDBC 기반의 도메인 엔티티 및 테이블 설계
  • Spring Data JDBC를 통한 데이터 액세스 계층 구현

다른거

  • 1일 1커밋
  • 복습

오늘 배운 것

😐 [Spring MVC] JDBC 기반 데이터 액세스 계층

Spring Data JDBC 기반의 도메인 엔티티 및 테이블 설계

  • 엔티티와 테이블을 설계하고, 관계별로 코드를 작성하는 방식을 선택한다.

애그리거트 객체 매핑 규칙

  • 모든 엔티티 객체의 상태는 애그리거트 루트를 통해서만 변경할 수 있다.
  • 하나의 동일한 애그리거트 내에서는 엔티티 간에 객체로 참조한다.
  • 애그리거트 루트와 애그리거트 루트 간의 엔티티 객체 참조는 Id를 이용하여 참조한다. 
  • 1대1 또는 1대 N이면 AggregateRefence 클래스를 사용해서 Id를 참조해주면 된다.
  • N대N의 경우는 우선 1대N, N대1 관계로 변경해주고 1대N, N대1의 관계를 중간에서 Id를 참조하게 해주는 클래스를 통해 1대N대1 관계로 만들어 준다.

엔티티 구현

  • @Id 애너테이션을 사용하여 식별자를 지정할 수 있다.
  • @Table 애너테이션을 붙이면 이름을 설정해줄 수 있다. 기본적으로 클래스명과 테이블 이름이 매핑되지만 예약어와 같은 이름의 테이블을 사용하게 되는 경우,  @Table("ORDERS") 같은 형태로 바꿔줄 수 있다.
  • @MappedCollection 애너테이션은 엔티티 클래스 간에 연관 관계를 맺어주는 정보를 의미한다. idColumn의 경우 자식 테이블에 추가되는 외래키에 해당하는 컬럼명을 지정한다. keyColumn의 경우 외래키를 포함하고 있는 테이블의 기본키 컬럼명을 지정한다.

리포지토리(Repository)

  • 데이터 액세스 계층에서 데이터베이스와 상호작용하는 역할을 하는 인터페이스를 리포지토리라고 한다.
  • CrudRepository 인터페이스를 통해서 편리하게 데이터를 데이터베이스의 테이블에 저장, 조회, 수정, 삭제할 수 있다.

쿼리 메서드(Query Method)

  • 쿼리 메서드를 이용해서 SQL 쿼리문을 사용하지 않고 데이터베이스에 질의를 할 수 있다.
  • find + By + SQL 쿼리문에서 WHERE 절의 컬럼명 + (WHERE 절 컬럼의 조건이 되는 데이터) ’ 형식이며, WHERE 절의 조건 컬럼을 여러 개 지정하고 싶다면 ‘And’를 사용하면 된다.
  • 예시(EMAIL 컬럼과 NAME 컬럼을 조건으로 지정) - findByEmailAndName(String email, String name)
  • findBy + 이름 형태에서 이름은 반드시 엔티티 클래스의 멤버 변수명을 적어주어야 한다.

다른거

- 1일 1커밋

프로그래머스에서 Lv.0 치킨 쿠폰을 풀었습니다. 생각보다 로직을 간단하게 만들기 어려웠습니다. 서비스 치킨을 시켜도 쿠폰을 주는 보기 드문 착한 치킨집임을 기억하셔야 문제에 대한 로직을 정확하게 구현할 수 있습니다. 재귀로 해보고 싶어서 재귀로도 해봤습니다. 탈출조건을 이상하게 걸어서 한참 헤메다가 고치고 풀었습니다…

 

Programmers 치킨 쿠폰

 

GitHub - chaning49/algorithm: 코딩테스트를 위한 알고리즘 공부

코딩테스트를 위한 알고리즘 공부. Contribute to chaning49/algorithm development by creating an account on GitHub.

github.com

느낀점

  • 너무나도 방대한 양의 내용을 배워서 정신이 없었다. 사실 나중에 가서는 뭔지 모르고 코드를 따라 적은 것 같은데, 주말동안 다시 봐야 조금이나마 이해할 수 있을 듯하다.
  • 쉬운 문제같이 생겨도 방심하지 말고 꼼꼼하게 푸는 습관을 들이자!
  • 이번주는 잠을 거의 못자서 운동을 많이 못했다. 주말에 푹 쉬고 컨디션을 끌어올려야겠음!! 무리하면 다침!!

내일 할 일

  • 1일 1커밋
  • 복습

'TIL' 카테고리의 다른 글

TIL_20221030  (0) 2022.10.30
TIL_20221029  (0) 2022.10.29
TIL_20221027  (0) 2022.10.27
TIL_20221026  (0) 2022.10.26
TIL_20221025  (2) 2022.10.25