본문 바로가기

개발62

[HTTP] HTTP 메소드와 사용 예 인프런에서 '모든 개발자를 위한 HTTP 웹 기본 지식' 강의를 듣고 있습니다. URI와 리소스, HTTP 메소드에 대한 내용을 공부하였고, 이를 진행 중인 토이 프로젝트에 적용시켜 보고자 하였습니다. 1. URI와 리소스 2. 리소스와 HTTP 메소드 3. HTTP 메소드 5가지 4. 실제 코드에 적용시켜 보기 5. 기타 1. URI와 리소스 URI란, "Uniform Resource Identifier" 의 줄임말입니다. 즉, "리소스 식별자" 라고 할 수 있습니다. 이 외에 URL, URN이 존재합니다. URL은 "Uniform Resource Locator", URN은 "Uniform Resource Name"의 약자입니다. URL은 특정 리소스의 위치를 가리키며, URN은 특정 리소스의 이름을 .. 2022. 7. 19.
[Spring] Dependency Injection을 수행하는 세 가지 방법 회사에서 진행하는 개발 프로젝트에 참여하며, 로직 참고를 위해 기존의 소스 코드를 많이 들여다 보게 되었습니다. Spring을 공부하고 나니, 예전에는 봐도 잘 모르겠던 내용들이 이제는 눈에 제법 잘 들어오는데요. 그러던 중 재미있는 점을 발견했습니다. 아래는 회사 코드의 일부 예시입니다 (실제 코드 내용은 아니며, 같은 맥락으로 재구성한 내용입니다). @Controller public class ManageHistoryController() { @Inject public ManageHistorySerice manageHistoryService; @Inject public AuthService authService; @Inject public SearchParam searchParam @RequestMa.. 2022. 7. 11.
[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.
[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.