20201210-TIL

나영원·2020년 12월 11일
1

T.I.L.

목록 보기
96/145

오늘 공부할 내용

  • 어제 스프링강의 복습
  • 저녁 스프링강의
  • TiL 정리 및 Git & 블로그 업데이트

오늘 공부한 것 & 배운 내용

스프링 강의전 복습

  • 어제 수업은 그래도 강사님이 조금씩 여유를 주시면서 진행해 주셔서 대부분 수업을 잘따라갈 수 있었다. 수업 중간에 질문도 하고 적극적으로 참여하려고 노력을 했는데 잘한 것 같다

  • 수업전에 JPA가 불편한데 왜사용할까 궁금했는데 부트에서 사용해보니 너무 편한다.. 이렇게 편하게 써도 될까 싶을 정도로 편하지만 깊이있는 사용을 위해서는 DB에 대한 지식이 필요한 것 같은데 지난번에 배운것으론 많이 부족해서 걱정이 된다..추가학습이 필요하다

  • FK로 memberID를 넣었는데 이게 어떻게 FK가 되는지 잘이해가 가지 않는다.. DB join에 대해서 좀더 추가 공부를해야될 것 같다

    • 외래키는 2개의 테이블을 묶어주는데 사용된다
    • 외래키는 하나의 테이블에 프라이머리 키이다
    • Persons table이 있고 Order table이 있을대 order 테이블에 Person Table에 PersonID컬럼이 들어와 있다면 Persion ID가 2개의 테이블을 이어주는 외래키이다
      • Person ID는 Person Table에 프라이 머리키 이다.
  • @JoinColum(name="MemeberID") 를 해주면 외래키의 컬럼명을 지정할 수 있다. 안써주면 테블이름외래키컬럼명으로 자동지정된다

  • ManyToOne은 N:1관계를 뜻하고 OneToMany는 1:N관게를 뜻한다

    • 즉 외래키를 가지고 있는 컬럼을 to에 왼쪽으로 두어 다대일을 설정하는 것이다
  • 엔티티의 수정은 모든 컬럼을 수정하는 것을 기본으로하는데 이는 preparedStatement처럼 SQL문을 정형화해서 값만바꾸어주어 컴파일(문법체크)를 생략할 수 있게 해주어 성능체크에 도움이 되기 때문이다

  • @Query로 등록한 SQL은 프로젝트가 로딩되는 시점에서 파싱되기 때문에 컴파일에서 오류발생하지 않는다.

    • 그래서 한번에 쿼리등록하지 않고 하나씩 확인하면서 등록해야 한다
  • SQL에서 ||은 concat과 동일한 기능을 한다

  • 엔티티 수정 과정

      1. tx.commit => 1)flush() => 1.엔티티와 스냅샷비교 ==> 3. UPDATE SQL생성 ==> 4.flush(SQL UPDATE) => 5. commit
  • 엔티티의 준영속 상태가 왜 필요한지 아직은 잘 모르겠다. 어느 상황에서 필요한지 알면 준영속 상태를 더 잘이해할 수 있을 거 같다

공부하면서 느낀점

알고리즘 공부효과

  • 새로운 도구들을 배우면서 어떤 기능을 사용하면 데이터를 어떻게 처리한다라는 것을 대략을적으로 배우게 되는데 그때 데이터를 처리하는 알고리즘에 대해서 생각하게 된다. 이런 부분이 알고리즘을 공부하는 효과가 아닌가 생각이든다. 코딩테스트 외에도 정말 필요한 공부였구나 생각하면 더 공부효과도 올라갈 수 있을 것 같다

내일 공부할 내용

  • 어제 스프링강의 복습
  • 저녁 스프링강의
  • TiL 정리 및 Git & 블로그 업데이트
profile
배우는 개발 일기

0개의 댓글