Java

    2주차 미션 - JPA, AuditorAware 구현해 보기

    모든 소스 코드는 https://github.com/lkimilhol/tistoryblog 에서 확인 가능합니다! 안녕하세요. 이번에는 2주차 미션의 리뷰에서 알게 된 AuditorAware 구현을 해보려고 합니다. JpaAuditing, AuditorAware이라는 것이 무엇인지 알아보고, 구현을 해보도록 하겠습니다. 1. 중복되는 컬럼을 BaseEntity에 구현 BaseEntity를 abstract class로 구현하여 이를 상속받아 컬럼을 재사용 하는 방법은 잘 아실거라 생각됩니다. 전의 포스트에서 사용하였던 코드를 이용하여 데이터의 등록시간과 수정시간을 넣어 볼 예정입니다! 내용을 모르시는 분들을 위해 간단히 설명하면, User 클래스는 다수의 Computer 클래스를 갖도록 하는 1:N 관계의..

    JPA N+1 문제

    안녕하세요. 이번에는 N+1 문제를 다루어 보았습니다. N+1 문제는 JPA를 사용하면 자주 만날 수 있는 문제이지만 자칫 잘못하면 예상치 못한 곳에서 N+1 문제를 만날 수 있다고 생각해요. 따라서 문제의 원인을 머릿속에 두고 테스트케이스를 통해 원하는 결과가 잘 나오는지 확인해 보는 습관을 길러보도록 합시다! 모든 소스 코드는 https://github.com/lkimilhol/tistoryblog 에서 확인 할 수 있습니다. 저는 유저와 유저가 가지고 있는 컴퓨터를 개념적으로 표현하였고 유저들은 다수의 컴퓨터를 가질 수 있도록 연관관계를 맺었습니다. 결국 유저와 컴퓨터는 1:N의 관계를 가지게 됩니다! 먼저 유저 클래스를 보도록 하겠습니다. 1. N+1 구현하기 User.java @Entity pu..

    1주차 미션 - 로또, 원시 값 포장

    안녕하세요. 우아한 테크 캠프 프로2기로 활동한 김일호입니다. 이번에는 1주차 미션이었던 로또를 공부하며 고민하였던 내용 중 원시값 포장에 대해서 얘기 해보려고해요. 이번 미션을 통하여 고민했던 내용들을 남겨보도록 하겠습니다. https://github.com/lkimilhol/java-lotto 에서 소스 코드를 확인 하실 수 있습니다. 1. 왜? 이번 미션에서 느꼈던 점 첫 번째 입니다 :) 바로 원시값의 포장인데요. 우리는 왜 원시값을 포장해야 할까요? 다음 코드를 보도록 하겠습니다. int money = 100; 우리는 이 코드를 보고 money라는 변수에 100이라는 값이 담긴 것을 알 수 있습니다. 변수명을 보니 money, 즉 돈이 100이라는 것이군요! 우리는 이 돈을 더 할 수도 있습니다..