개발로그(002)

원태연·2022년 8월 29일
0

개발로그

목록 보기
2/4
post-thumbnail

2022년 08월 29일(월)

✅ 오늘 한 일

Programmers 문제 풀기
디프만 지원서 작성
JPA Basic 강의 수강

👀 발생했던 오류

  1. JPA 강의 프로젝트 생성 시, pom.xml의 Dependency 버전 오류
    조금 시간이 지난 강의라, 버전들이 많이 업데이트 되었는데 Java 11과 맞는 최신 버전으로 업데이트
    공식 홈페이지 들어가니 친절하게 다 나와있더라..(h2, hibernate)

  2. h2 자잘한 오류
    jdbc:h2:~/{dbname}으로 최초 실행 시, 해당 경로에 DB를 생성한다.
    "/users/{}/{dbname}" not found, either pre-create it or allow remote database creation 에러가 발생... 찾아보니 Connection을 누르기 전에 test connection을 누르면 생기는 오류라고 하네..?엥
    해결은 h2 껏다 키면 되었다..!

    pom.xml에서 설정한 버전과 일치해야함..!
    h2 버전 확인은 SELECT H2VERSION() FROM DUAL

🎓 배운 점

  1. ORM에 대한 개념. 일반적으로 사용법만 익히고 대충(?) 사용하던 JPA에 대해 공부하기 시작했다. 등장 배경부터, 추구하는 패러다임에 대해 알게 되었다.
    ORM -> 객체지향 ~ 관계형 DB의 패러다임 불일치를 해결하기 위해 등장
    SQL을 직접 작성하는 경우 유지보수에 매우매우 불편. 객체패러다임으로 접근 할 수 있는 JPA는 큰 장점을 가짐
  1. JPA의 구조. Hibernate는 JPA 인터페이스를 구현한 구현체라는 얘기를 들었었다. JPA == Hibernate가 아니라는 점. 크게 중요한 내용은 아니지만, 알고 있으면 좋을 것 같다.

  2. JPA의 동작. Application단위의 EntityFactory, DB 커넥션 단위의 EntityManager의 생성과 간단한 cache 기능, batch로 SQL 생성, 지연 로딩 등을 간단히 알게됨.
    JDBC를 사용했을 때 보다 하나의 Layer가 더 존재하는 거 치고 빠르게 동작하기 위해 많이 최적화 되어있다고 느낌

  3. Docker에 timezone 변경
    docker exec -it {container} /bin/bash : 도커에 접속
    rm -rf /etc/localtime : 현재 적용중인 localtime 심볼릭 링크 삭제
    ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime : 심볼릭 링크를 한국으로 생성
    date : 시간 확인

❗️앞으로 알아보면 좋은 것

  1. JPA는 Transcation내에서 동작해야 한다고 한다. Transaction에 대해 깊이 공부해볼 필요가 있다 (자주 등장)
  2. JPA 영속성, Fetch 등등 프로젝트에서 사용하고 있는 개념들에 대해 배우자..!
  3. local에서의 Test환경 구축. FIKA 프로젝트가 급하게 작성하다 보니 테스트 코드가 거의 없음...(핑계..ㅎ). 실제 사용하고 있는 데이터를 건들이지 않고, h2를 통해 Local로 테스트를 모두 붙히고, 앞으로도 개발할 API에 대해 tdd로 개발해야함. 데이터팀에서 제공하는 데이터가 계속 추가되고, 아직 초기 단계라 변경 사항이 많은데 자동화된 테스트 무조건 필요.
    Local Test 환경 구축 고민 및 구글링 더 해보기.
profile
앞으로 넘어지기

0개의 댓글