본문 바로가기

분류 전체보기266

[20220710] 개발자 일기 프로그래밍이란 건 결국 누군가가 만들어 놓은 것을 제대로 이해해서 필요에 맞게 잘 쓰는 것이다. 우리가 다른 사람이 만들어 놓은 물건을 쓰는 방법을 알기 위해서는 만든 사람이 적어 놓은 설명서를 읽는 것이 가장 적절할 것이다. 그래야 그 사람이 이 물건을 만든 의도가 무엇인지 어떻게 쓰일 것이라 생각하고 만든 것인지 알 수 있을 테니까 말이다. 어떤 가전제품을 샀을 때 설명서를 읽는 것이 안전하고 제대로 그 제품을 사용하기 위한 방법인 것과 동일하다. 그런 의미에서 좋은 프로그래머가 되기 위해서는 남이 만들어 놓은 코드나 라이브러리에 대한 레퍼런스를 읽은 것이 반드시 필요하다고 본다. 한편, 프로그래머와 비슷하게 개발자라는 명칭도 있다. 남들이 만들어 놓은 코드를 가져다 쓰는 것 뿐만 아니라 코드를 직접.. 2022. 7. 10.
QueryDSL 정리 JPA를 사용하면서 동적 쿼리를 위해 QueryDSL을 사용하기로 결정하면서 QueryDSL을 공부하기 시작했다. 공부한 내용을 간단히 정리해본다. QueryDSL은 JPA 사용 시 SQL처럼 쿼리를 작성할 수 있게 해주고 복잡한 쿼리와 동적 쿼리를 쉽게 사용할 수 있도록 도와주는 프레임워크이다. 런타임이 아니라 컴파일 타임에 오류를 잡을 수 있다. QueryDSL 사용시 'Q + 엔티티 이름' 형태의 Q class가 생성된다. Spring DataJpa와 다르게 Repository 클래스를 직접 만들어 사용한다. Repository 클래스에는 EntityManager와 QueryFactory를 주입하여 사용한다. 쿼리 중 where 조건 절 사용 시 Predicate를 사용한다. 2022. 7. 3.
SOLID 원칙 객체 지향 언어로 프로그래밍을 하는 사람이라면 SOLID 원칙을 들어본 적이 있을 것이다. SRP, OCP, LSP, ISP, DIP 다섯 가지 원칙의 앞글자를 따서 부르는 것인데, 설명들은 많이 있지만 실제 프로그래밍을 사용할 때 기억하고 그 원칙을 지키려면 잘 기억하고 있어야 할 것 같아서 짧게 정리해보려고 한다. 각 원칙을 한 문장 내외로 축약할 것이다. SRP(Single Resposibilitiy Principle, 단일 책임 원칙): 하나의 클래스와 그것을 구성하는 각각의 메서드들은 각각 하나의 책임을 가져야 한다. OCP(Open-Close principle, 열림 닫힘 원칙): 확장은 가능하지만 수정은 지양한다.(확장에 열려 있고 수정에 닫혀 있다. LSP(Liskov Substitutio.. 2022. 6. 26.
[20220626] 개발자 일기 & TIL 새로운 구축 건이 진행 중이다. 이번에는 스프링 부트와 JPA를 사용하여 구축을 시도하고 있다. 기존의 스프링 프레임워크가 아닌 스프링 부트로 구축하는 첫 프로젝트여서 기대가 되었지만, 생각보다 고쳐야 할 게 많아서 진땀을 빼고 있다. 기존 XML 기반 설정도 자바 코드로 바꾸려고 하다 보니 막히는 부분이 있어서 고생하다가 겨우 해결하고 기존 스프링 부트 CMS는 MyBatis로 제작되어 있어 완전히 밑바닥부터 시작해야 한다. 지난주 서버 사건 때문에 시간을 많이 뺏긴 상황에서 이번 주부터 빠르게 진행이 돼야 하는데 왜 이렇게 난관이 많은 지 모르겠다. TIL 스프링 부트 프로젝트를 진행하면서 막혔던 부분 중 하나가 입력 값 전송 시 날짜 데이터가 String으로 전달되어 java.util.Date 형식.. 2022. 6. 26.
728x90