본문 바로가기

전체 글207

[JPA] 조회 메소드에 파라미터 추가하기 쿼리를 직접 작성하여 저장한 후 불러와 사용하는 MyBatis와는 다르게, JPA는 미리 정해둔 요건에 따라 쿼리를 자동으로 생성한 후 실행해 줍니다. 그러다 보니 JPA를 처음 접하다 보면 단순한 CRUD 구현에도 헤매게 됩니다. 우연한 계기로 전달받은 파라미터를 조회 쿼리의 WHERE에 사용하는 방법을 찾아보게 되어 정리합니다. 1. JPA와 @Query의 역할 2. @Query를 통한 조회 시에 파라미터 전달하기 3. 테스트 코드로 검증하기 1. JPA와 @Query의 역할 먼저, 글을 작성하기에 앞서, 저는 JPA에 대해 매우 기초적인 지식만 가지고 있음을 알려 드립니다. 회사에서는 MyBatis를 이용하여 xml 파일에 쿼리를 직접 작성하는 개발을 하고 있으며, JPA는 여기서 진행한 개인 프로.. 2022. 7. 4.
@Transactional 어노테이션 Spring을 이용해 백엔드 개발을 하다 보면, Service 단에서 @Transactional 이라는 어노테이션을 볼 수 있습니다. 오늘은 @Transactional 어노테이션에 대해 다루어 보겠습니다. 0. 배경 1. @Transactional 어노테이션이란? 2. @Transactional 세부 옵션 0. 배경 회사에서 개발을 하면서, 화면 상에서 특정 항목 추가, 수정, 삭제를 하는 경우를 만들게 되었습니다. 앞단에서의 형식은 grid로 되어 있고, 저장 버튼을 클릭하면 각 row마다 상태가 "CREATE", "INSERT", "DELETE", "" 네 가지 값 중 하나가 담긴 상태로 Controller 단계로 넘어갑니다. Controller에서는 이를 List 형태로 받고, 이를 Service로.. 2022. 7. 3.
개발자와 블로그 약 두 달 동안 블로그 글 갱신이 없었다. 4월 중순의 글을 끝으로 글이 이어지지 않았다. (그럼에도 매일 100분 이상이 블로그를 방문해 주고 계신다. 감사할 따름이다.) 글을 써야지, 써야지 하면서 계속 미루다가 어제가 되서야 간신히 글 하나를 작성했다. 그러던 중, 오늘 Facebook 그룹 생활코딩에서 개발자와 블로그에 대한 글을 보았다 (링크). 아래 글에 대한 링크는 여기에서 확인할 수 있다. 자연스럽게 나와 내 블로그에 대한 생각이 들었다. 나는 블로그를 왜 운영하고 있을까? 개발자라서 블로그를 유지하는 걸까? 일하던 중이라 간단하게 내 생각을 댓글로 남겼다. 이렇듯 내가 꼽은 블로그의 용도는 크게 네 가지다. 기록용 정보공유용 포트폴리오용 생각정리용 1. 기록 목적으로써의 블로그 블로그는 .. 2022. 6. 21.
[Spring] MockMVC를 이용한 Controller 테스트 (GET) 개요 Spring 환경에서 테스트 코드를 작성할 때 자주 사용하게 되는 MockMVC, 그 중에서도 GET에 대해 아주 간단히 다루어 보겠습니다. 목차 배경 MockMVC 소개 MockMVC를 이용한 Controller GET 테스트 MockMVC GET 자세히 알아보기 1. 배경 업무 중 특정 기록을 조회하는 기능을 개발하고 있었습니다. 앞단에서 검색 파라미터 (칼럼별 속성, 검색기간, 페이징 개수 등)를 설정해서 넘겨 주면, Controller -> Service -> DAO -> MyBatis 쿼리를 실행하는 루틴을 전부 개발하게 되었습니다. 개발한 컨트롤러가 의도대로 동작하는지 확인하려면 어떻게 해야 할까요? 테스트 코드가 없다면, Tomcat을 띄우고, 로컬 환경에서 사이트에 접속한 후, 해당 .. 2022. 6. 20.
[Spring] 스프링과 객체지향 프로그래밍 (1) 개요 스프링을 공부하며, IoC와 DI 개념에 대해서 공부하긴 했어도, 저를 포함하여 많은 분들에게는 와닿지 않을 것입니다. 스프링을 공부하기 이전에, 스프링은 왜 탄생했고, 스프링 이전에는 어떻게 개발을 하였으며, 어떤 과정으로 스프링이 탄생했는지 구체적으로 짚고 넘어가고자 합니다. 스프링의 탄생 배경, 객체지향 프로그래밍과 다형성 등 스프링의 핵심 이념에 대해 다루어 보았습니다. 목차 스프링이란? 스프링 탄생의 배경과 스프링의 진짜 핵심 객체지향 프로그래밍과 다형성 역할과 구현의 분리 좋은 객체지향 설계의 5가지 원칙 (SOLID) - (2)에서 계속 1. 스프링이란? 보통 스프링이라고 하면, 특정한 하나의 기술을 가리키는 것이 아니라, 여러 기술의 모음을 가리킵니다. 스프링 프레임워크: 필수. 스프.. 2022. 4. 17.
[프로그래머스] 숫자의 표현 난이도: Level 2 문제 링크: https://programmers.co.kr/learn/courses/30/lessons/12924 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr n이 10000 이하의 자연수일 때, 연속된 자연수의 합으로 n을 표현할 수 있는 경우의 수를 구하는 문제입니다. 우선 이 문제를 푸는 가장 간단한 방법을 생각해 봅시다. int count = 0; for (int i = 1; i 2022. 4. 8.