기존 API 호출 방식의 한계 우리는 클라이언트 개발(안드로이드, iOS, 웹)을 하면서 서버와 통신을 해야 할 때 보통 서버가 구현해놓은 API를 호출해 데이터를 보내거나 받아온다. 보통 앱에서 하나의 View를 그리기 위해서는 보통 여러 번 API를 호출해야하고, 호출을 통해 받아온 데이터를 조합해 사용해야 한다. 예를 들어 여러번 REST API를 호출해 하나의 View를 만들어내는 경우를 생각해보자. 앱의 페이지가 복잡해질 수록 많은 호출을 해야하고 데이터 조합을 위해 순차적인 처리가 들어가야 하는 경우가 많아지기 때문에 데이터를 조합하는 것은 매우 복잡해진다. 이를 편하게 하기 위해 데이터 흐름을 만들고 해당 흐름에 순차 처리 로직을 위한 로직을 넣는 방식의 프로그래밍이 많이 사용되었다. 대표적..
분류 전체보기
리다이렉트와 포워드 특정 URL 접속 시 리다이렉트 또는 포워드가 일어나게 되면 작업 중인 페이지가 전환된다. 리다이렉트와 포워드는 페이지가 전환된다는 점에서 비슷한 역할을 한다. 하지만 이 둘 사이에는 페이지를 전환하는 주체가 다르다는 큰 차이점이 있는데, 이 차이점이 동작에 큰 영향을 미친다. 리다이렉트는 페이지 전환 주체가 클라이언트이며, 포워드는 페이지 전환 주체가 서버이다. 클라이언트가 주체가 되어 페이지를 전환하는 방법은 접속한 URL이 아닌 다른 URL로 직접 접속하는 방법 밖에 없다. 반대로 서버가 전환 주체가 되면 URL 주소가 바뀌지 않고도 서버 내부의 동작을 통해 다른 응답을 클라이언트에 내려줄 수 있게 된다. 리다이렉트와 포워드가 무엇인지, 어떻게 동작이 다른지를 살펴볼 것이다. 리..
Array란 무엇인가? Array는 메모리의 연속적인 공간을 차지하고 있는 정적인 자료구조이다. 이러한 특성으로 인해 Array는 생성 시 크기를 지정해야 하며, 생성한 이후에는 크기의 조절이 불가능하다. Array의 특징 위의 특성으로부터 Array의 여러가지 특성이 나오는데, 아래 두 가지가 대표적인 특성이다. 1. Array는 Random access가 가능해 검색 속도가 빠르다. Array는 연속적인 공간을 차지하고 있으므로, Index를 이용해 객체로의 빠른 접근이 가능하다. 2. Array 생성 후에는 크기 조절이 불가능하다. Array는 메모리의 연속적인 공간을 차지하고 있어 일부를 제외하거나 공간을 추가하는 크기 조절이 불가능하다. Array의 크기 조절 Array에 값을 추가하려면(=크..
Spring MVC란 무엇인가? Spring MVC는 Spring에서 제공하는 웹 모듈로, Model, View, Controller 세가지 구성요소를 사용해 사용자의 다양한 HTTP Request을 처리하고 단순한 텍스트 형식의 응답부터 REST 형식의 응답은 물론 View를 표시하는 html을 return하는 응답까지 다양한 응답을 할 수 있도록 프레임웍이다. Spring MVC는 다양한 요청을 처리하고 응답하기 위해 주요 구성요소들을 만들어놓고 구성요소들을 확장할 수 있게 만들어 놓는데, 이들을 제대로 사용하기 위해서는 MVC가 어떻게 구성되어 있는지를 알아야 한다. 이번 글에서는 MVC가 어떤 구조로 이루어져 있는지, 각 구성요소들이 어떤 역할을 하는지를 알아볼 것이다. Sprint MVC의 구조..
Project 수준의 build.gradle에서 모듈 수준의 build.gradle 제어하기 멀티 모듈 프로젝트를 만들다보면, 모든 모듈에 dependencies나 task들이 적용되어야 하는 경우가 있다. 이를 위해 프로젝트 수준의 build.gradle에서 모듈 수준의 build.gradle을 제어해야 할 경우가 생긴다. 이를 위해 Gradle에서는 allprojects, subprojects, project 메서드를 제공하는데 이번 글에서는 이 메서드들을 다루어볼 것이다. allprojects : 프로젝트 수준의 build.gradle 뿐만 아니라 해당 프로젝트에 포함된 모든 모듈의 build.gradle을 제어 subprojects : 해당 프로젝트에 포함된 모든 모듈의 build.gradle을 ..