리다이렉트와 포워드 특정 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을 ..
Gradle Plugin이란? Plugin이란 Gradle Task의 집합이다. Gradle Task는 어플리케이션 빌드부터 테스트까지 다양한 작업을 수행하는 작업 단위를 뜻한다. *만약 Task에 대한 이해가 부족하다면 다음글을 참조하길 바란다. Plugin을 우리가 특정 작업(어플리케이션 개발 등)을 하기 위해서 모아놓은 Task 들의 묶음이다. 예를 들어 안드로이드 어플리케이션을 개발하기 위해서는 필요한 라이브러리들을 받아온 후 해당 라이브러리들을 사용해 코틀린이나 자바 코드를 컴파일하고, 컴파일된 바이트코드의 묶음을 패키징 해 apk나 aab 파일로 만들어야 한다. 추가적으로 DB와 통신하는 부분들에 문제가 없는지, 서버와 통신하는 부분들에 문제가 없는지에 대한 테스트를 돌리기도 해야 한다. 이러..