Java(13)
-
[Spring Data JDBC] Id 삽입 전략
글을 작성하다 보니, 이명현님의 우아한 테크세미나의 한 부분을 정리한 글이 되었다. Spring Data JDBC에 관심이 있다면 한번쯤 꼭 영상을 시청하는 것을 추천한다. Spring Data jdbc를 사용하다보면 id를 insert(populate, generate)하는 방식을 커스텀하게 가져가고 싶을 때가 있다. DB의 auto-increment 기능을 사용할 수도 있고, 직접 만든 UUID를 넣어주고 싶을 수도 있다. 또, 외부에서 받아온 id를 사용하고 싶을 수도 있다. 각각 방식에 대해서 어떻게 하는지 알아보자. Auto Increment DB의 필드에 auto increment를 걸어두고 사용하는 전략이다. 이 경우, 특별히 다른 기술이 필요하지 않다. Spring Data JDBC는 sa..
2020.07.03 -
[Spring Data JDBC] 객체(Object)와 개체(Entity) 대응시키기
객체와 개체 일반적으로 JAVA를 사용하여 코딩을 한다고 하면 객체지향을 활용하게 된다. 이때 객체(Object)는 다른 객체들과 관계를 맺게 된다. 하지만 DB에 저장되는 것은 개체(Entity)이기 때문에 이를 대응시켜주는 기술이 필요하다. Spring Data JDBC는 이러한 방법을 제공한다(링크). 그런데 공식문서의 예시는 너무 빈약하다. 그래서 혼자 이것저것 공부하면서 알아낸 내용들을 풀어보려고 한다. 사용한 버전은 2.0.1RELEASE 버전이다. 기본적인 사용법 // Person.java public class Person { @Id private Long personId; private final String personName; private int age; Person(Long per..
2020.05.11 -
JPA vs JDBC, JPA vs Mybatis, JPA vs Spring Data JPA의 차이점과 Hibernate
Spring은 DB에 접근하기 위해 자바의 API를 사용한다. 웹 서비스에 필요한 기능들이 추상화돼서 Spring이 만들어졌듯이, DB에 접근하는 기술들도 일종의 추상화 과정을 거치며 진화해 나갔다. 이 부분을 처음 공부하는 사람 입장에서는, 비슷해 보이면서 다른 단어들 때문에 개념이 굉장히 헷갈린다. JPA를 검색했는데 뜬금없이 Hibernate에 관한 포스팅만 쏟아지기도 한다. 그런 사람들에게 도움이 되고자 간단하게 주요 단어들과 개념들을 포스팅해보려고 한다. (각 개념에 그림과 코드를 첨부했다. 그림에서 초록색 부분은 개발자가 코드 상에서 직접 다뤄야하는 부분이다) JDBC JDBC는 DB에 접근하고, SQL을 날릴 수 있게 해주는 자바의 표준 API다. 자바 진영에서 DB에 접근하는 기술들의 근간..
2020.04.25 -
자바의 생성자와 정적 팩토리 메서드
생성자 일반적으로 클래스는 인스턴스 필드와 생성자를 갖는다. row와 column으로 이루어진 Position 클래스는 아래와 같이 표현할 수 있다. public class Position { private final int row; private final int column; public Position(int row, int column) { this.row = row; this.column = column; } } 만약 파라미터로 Int 뿐만 아니라 String도 받게 하고 싶다면 아래와 같이 코드를 추가할 수 있다. public class Position { private final int row; private final int column; public Position(int row, int..
2020.04.20 -
Intelij 단축키 - 알아두면 생산성이 올라가는 단축키 모음
최근에 대부분의 프로그래밍을 페어로 진행한다. 새로운 페어와 프로그래밍을 하면 가장 먼저 눈에 들어오는 것이 그 사람이 사용하는 단축키다. 자연스럽게 서로 사용하는 단축키들을 공유하게 된다. 그렇게 두 달 정도 새로운 단축키를 익혀서 사용하니, 예전에 단축키를 사용하지 않을 때는 어떻게 프로그래밍을 했나 싶을 정도로 편하다. 언제 가는 키보드에서 손을 떼지 않고, 모든 작업을 할 수 있을 날이 올 수 있겠지. 아래는 내가 자주 쓰는 단축키들이다. 자신이 사용하는 편리한 단축키가 있다면 공유해보는 것도 좋을 것 같다. 커서 관련 단축키들 Mac Window 단어 단위 이동(선택) Opt + (Shift) + ← → Ctrl + (Shift) + ← → 라인 처음/끝으로 이동(선택) Cmd + (Shift)..
2020.04.20 -
자바의 Enum
처음 자바의 Enum을 알고 난 뒤, 여기저기 유용하게 사용했다. Enum은 기본적으로 상수의 그룹을 나타낼 때 사용하는데, 자바의 Enum은 다른 언어의 Enum보다 강력한 기능을 여럿 제공한다. 이번 포스팅에서는 Enum을 활용하는 여러 방법에 대해 알아보려고 한다. 선언과 사용 public enum Rank { FIRST_PLACE(6), SECOND_PLACE(5), NONE(-1); private int matchingCount; Rank(int matchingCount) { this.matchingCount = matchingCount; } }이 때, Rank는 Enum 타입이 되고 FIRST_PLACE, NONE 등은 Enum 상수가 된다. 각 상수들은 일반 클래스와 동일하게 필드를 가질 수..
2020.04.18