개요이번 글에서는 서비스에 대한 내용과 의존성 주입에 대한 내용을 정리해볼 것이다! 1. 서비스(Service)란?서비스는 여러 컴포넌트에서 사용하는 공통 기능이나 데이터 요청 로직을 관리하는 클래스이다.즉, 컴포넌트는 UI만 담당하도록 하고, 복잡한 로직에 경우 서비스에 위임하는 것이다. Angular에서 서비스는 의존성 주입을 통해 컴포넌트 등과 같이 필요한 곳에 자동으로 주입되고, 재사용된다. 의존성 주입이라는 용어가 나왔는데, 이게 무엇이냐?? 안드로이드 모바일 앱 개발이나 스프링에서도 의존성 주입은 있었기 때문에 이미 아는 내용이긴 하지만 또 정리하면 다음과 같다. 의존성 주입(Dependency Injection)란?외부에서 의존 객체를 생성하여 넘겨주는 것! 일반적인 객체 생성의 경우에는 클..
개요이제 프로젝트 서버 통신을 할 시간이 왔다! 안드로이드에서는 Retrofit2와 OkHttp3를 사용해서 했었는데 과연 React에서는 어떤 것을 사용하는지 알아보다가 Ajax라는 것을 알게 되었고, 학습하기 위해 그 내용을 정리해본다. 1. Ajax란?AJAX는 Asynchronous JavaScript And XML로 해석하면, 비동기 자바스크립트와 XmL이다. 즉, 웹 페이지를 전체 새로고침하지 않고, 서버와 비동기적으로 데이터를 주고받아서 일부 내용만 동적으로 갱신할 수 있도록 하는 웹 기술이다. XMLHttpRequest 방식이 있고, fetch API 방식이 있는데 여기서는 fetch API로 설명하겠다.1-1. 사용 이유?1) 일부 영역만 동적으로 갱신-> 화면이 깜빡이지 않기 때문에 더..
1. 인덱스(Index)인덱스는 마치 책의 목차와 같이 특정 컬럼의 값을 기준으로 데이터를 빠르게 찾을 수 있도록 만든 보조 자료구조이다.인덱스는 테이블의 특정 컬럼 값을 기준으로 정렬된 구조를 유지해, 검색 성능을 향상시키도록 한다. 1-1. 인덱스 사용 이유1) 조회 속도 향상- WHERE, JOIN, ORDER BY, GROUP BY 등에 자주 사용되는 컬럼에 인덱스를 적용한다면(= 복잡한 쿼리 문) 전체 테이블을 탐색하는 Full Table Scan을 방지하고, 원하는 행에 빠르게 접근할 수 있다. 2) 시스템 자원 절약-> 쿼리 성능이 개선되면 디스크 I/O, CPU 사용량 등 시스템 자원의 소모가 줄어 전체적인 효율이 높아진다. 3) 대용량 데이터 처리-> 수십만, 수백만 건 이상의 데이터가 ..
개요클라에서 요청한 데이터에 대해 Message Body를 직접 입력해야 할 때 ResponseEntity, @ResponseBody, 직접 만든 BaseResponse 같이 여러개를 쓸 수 있는데 각각 어떤 차이점이 있는지에 대해 궁금해졌다. 방법들을 하나하나씩 정리해보려 한다. 1. @ResponseBody란?@ResponseBody는 컨트롤러 메서드의 리턴 값을 HTTP 응답 본문으로 변환해 클라이언트에 직접 반환하는 역할을 한다.뷰를 따로 렌더링하지 않고 JSON, XML 등의 형식으로 데이터를 반환한다. Spring에서는 응답 객체를 클라이언트에 전달하기 위해 내부적으로 HttpMessageConverter를 사용하는데, : MappingJackson2HttpMessageConverter= 객체..