하루기록

2021년 8월

소밍소밍 2021. 8. 13. 10:55

13일 (금)

  • 샤딩 DB간에는 데이터 조인이 불가능하다

17일 (화)

  • select in sorting하는 방법으로 order by field라는 있는데, 이건 개별 데이터별로 몇번째에 해당 데이터가 있는지 찾아서 인덱스로 새로운 값을 만들어서 그걸로 정렬하는 방식이다. 
  • mysql 테이블별 최대 row 개수 - innodb 2^48bytes 사이즈가 최대 파티션 사이즈이다. 2,814,749억개 정도. 테이블 하나는 1024개의 파티션까지 가질 있다. 8192 bytes. mysql version global, china 둘다 5.7. 테이블 사이즈가 1TB 넘어가면 파티셔닝을 권고한다. innodb table 1017개의 컬럼까지 생성할 있다. 64개의 인덱스까지 생성할 있다. https://dev.mysql.com/doc/refman/8.0/en/innodb-limits.html 1 row 65,535 bytes까지 가능하다. 

18일 (수)

  • java 17 - 9 14일에 general availablity. applet api deprecated for removal(deprecate 되었고 아직 삭제되지는 않음), pattern matching for switch (java 16에서는 if (o instanceof String s) 이렇게 사용할 있게 변경되었는데, 17에서는 switch (o) case Integer i: case String s: 이런식으로 switch에서도 pattern matching 사용할 있도록 변경됨), vector api 추가됨. 이건 따로 글로 정리하기 https://openjdk.java.net/projects/jdk/17/
  • dao(data access object) 실제로 db에 접근하는 객체. service와 db를 연결. SomeRepository 이게 dao이다.vo(value object) dto와 동일한 개념이지만 read only 속성을 갖는다(?)
  • domain&entity 실제 db 테이블과 매칭되는 클래스. entity dto 분리하는 이유는 entity 테이블과 매핑되어 변경 여러 클래스에 영향을 미치게 되는데 반면 dto(Response/Request) view 통신하기 때문에 view단에서 사용되는 필드나 로직을 추가하는 변경이 자주 일어나기 때문  
  • dto(data transfer object) 계층간 데이터 교환을 위한 객체. db에서 데이터를 얻어 service나 controller로 보낼 때 사용하는 객체. request/response에 사용되는 것도 dto이며, view를 위한 dto라고 보면 된다.