Posts

전체 글 목록 (4)

JPA 에 관한 간단한 글

JDBC에서 MyBatis JPA가 등장하기 전, 자바에서 RDBMS에 연결하던 방식을 먼저 짚고 넘어가 보자. 가장 기본은 JDBC를 이용하는 방법이다. MyBatis나 JPA 등은 모두 이 JDBC를 바탕으로 동작한다. 개발자가 직접 커넥션을 통해 세션을 열고, Statement나 PreparedStatement로 명령을 수행하거나 쿼리를 실행한다. 요청을 마치면 자원을 닫아야 하는데, 자바 특유의 체크 예외 때문에 닫는 과정마저 catch 문으로 감싸야 했다. 자바7부터는 try-with-resources가 도입되었지만 더 이...

JPA

전략패턴을 공부하면서

고전 디자인 패턴에 대해 공부하기 시작했다. 솔직히 말하면 굳이 해야 하나 싶었다. 쭉 훑어 봤을때는 그냥 추상 클래스 하나 두고 DIP나 OCP 적용하라는 이야기처럼 보이는 것도 있었고, 언어 레벨에서 이미 당연하게 지원해주는 내용도 있었으며, 이걸 내가 직접 구현할 일이 있을까? 싶은 패턴도 많았다. 그래도 기본은 알고 있어야 할 것 같아서 제일 만만해 보이는 전략 패턴부터 공부해봤다. 이미 구글링이나 유튜브를 통해 접한 내용이 있어서 아래 같은 코드를 보면 아 이런 상황에서는 전략 패턴을 적용할 수 있겠구나 정...

디자인 패턴

타입으로만 처리해야하나?

지난 글에서 전략 패턴을 통해 if-else 지옥을 탈출하고 의존성을 격리하는 과정을 다뤘다. 분기는 사라졌고(사실 위임되었고), 코드는 깔끔해졌다. 하지만 그 대가로 파일이 주렁주렁 늘어났다. WholesaleStrategy.java, RetailStrategy.java, OnlineStrategy.java... 고작 메서드 하나 떼어내자고 클래스라는 무거운 틀을 매번 만드는 게 과연 효율적일까? 목표는 책임 분리를 통해 라우팅을 위임하는 것이지, 클래스 파일 개수 늘리기가 아니다. 이 구조적 비용을 줄일 수 있는 더 가벼운 도구...

디자인 패턴

코드스피츠 오브젝트 1회차

객체지향 공부하다 뉴런데브에서 올린 영상을 보고 일부 내용을 내 나름대로 정리해본 글 유연하고 견고하고 변화에 격리되어있는 코드를 만들자 켄트백이 제시하는 생각하는 코드 의 툴 1. Value (가치) – 왜 이렇게 코드를 짜야 하는가 Kent Beck은 코드 스타일을 취향 문제가 아니라 가치 문제로 본다. 코드가 어떤 가치를 높이느냐가 코드 품질의 기준이다. 1) Communication (의사소통) * 코드는 사람 사이의 소통 도구다. * 변수명, 메서드명, 클래스 구조, 예외 처리 방식 등은 모두 “이 코드가 무슨 일을 하...

OOP