HTTP 상태 코드란? 웹 서비스를 이용하다 보면 종종 "404 Not Found"라는 오류 메시지를 볼 수 있다. 이러한 오류 메시지는 HTTP 상태 코드를 기반으로 한다. HTTP 상태 코드는 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능이다. HTTP 상태 코드는 3자리 숫자로 이루어져 있으며 첫 번째 자리가 1부터 5까지 존재하며, 크게 아래와 같이 분류된다. 1xx (Informational) : 요청이 수신되어 처리중 2xx (Successful) : 요청 정상 처리 3xx (Redirection) : 요청을 완료하려면 추가 행동이 필요 4xx (Client Error) : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error) : ..
파일의 상태 확인하기 git status 명령어를 사용하면 파일의 상태를 확인할 수 있다. 예를 들어 빈 프로젝트에서 이 명령을 실행하면 다음과 같은 메시지를 볼 수 있다. $ git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean 위의 내용은 파일을 하나도 수정하지 않았다는 뜻이다. 특히 Tracked 파일, 즉 추적 중인 파일이 하나도 수정되지 않았다는 뜻이다. 현재 작업 중인 브랜치는 master 브랜치이며 해당 브랜치에서 진행된 작업이 없다는 것을 알 수 있다. 브랜치 개념은 후에 기술하도록 하겠다. 프로젝트에 새로운 파일을 하나 만들자. 예..
Git은 파일을 Commited, Modified, Staged 이렇게 세 가지 상태로 관리한다. 각 상태의 의미는 다음과 같다. Commited : 데이터가 로컬 데이터베이스에 안전하게 저장됨 Modified : 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 상태 Staged : 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태 Git Directory는 Git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳으로 Git의 핵심이다. 다른 컴퓨터에 있는 저장소를 Clone 할 때 이 Git 디렉터리가 만들어진다. Working Directory는 프로젝트의 특정 버전을 Checkout한 것이다. 쉽게 말하면 내가 작업하고 있는 프로젝트의 디렉터리를 뜻한다. Git Directory는 지..
Git 저장소 만들기 Git 저장소를 만드는 방법은 크게 두 가지가 존재한다. 1. 아직 버전관리를 하지 않는 로컬 디렉토리 하나를 선택해서 Git 저장소를 적용하는 방법 2. 다른 어딘가에서 Git 저장소를 clone 하는 방법 기존 디렉토리를 Git 저장소로 만들기 버전관리를 하지 않던 기존 프로젝트를 Git으로 관리하고 싶다면 프로젝트의 디렉토리로 이동한 후 다음과 같은 명령을 실행한다. Mac, Linux 의 경우 터미널로 다음과 같이 프로젝트 경로로 이동할 수 있다. $ cd /Users/user/my_project Windows의 경우 아래와 같이 git bash를 이용할 수 있다. 프로젝트의 디렉토리에서 Git Bash Here 기능을 이용하면 터미널 창이 뜨게 된다. 이후엔 동일하게 아래와..
윈도우 10(Window 10) 깃(Git) 설치하기 1. Git 설치 파일 다운로드 윈도우 10에서 깃은 공식 홈페이지에서 다운로드할 수 있다. https://git-scm.com/downloads Git - Downloads Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp git-scm.com -..
버전 관리 시스템(Version Control System)이란? 버전 관리 시스템(이하 VCS)은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내 올 수 있는 시스템이다. 많은 개발자들이 소스 코드를 관리할 때 VCS를 사용하지만, 거의 모든 컴퓨터 파일의 버전을 관리할 수 있다. VCS를 사용하면 각 파일을 이전 상태로 되돌릴 수 있고, 프로젝트를 통째로 이전 상태로 되돌리거나 시간에 따라 수정 내용을 비교해 볼 수도 있다. 누가 문제를 일으켰는지 추적할 수 있고 누가 언제 만들어낸 이슈 인지도 알 수 있다. 또한 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구할 수 있다. 따라서 VCS를 이용하면 위와 같은 장점을 누릴 수 있다. VCS는 다음과 같은 종류로 세분화 된다. ..
MVC 패턴의 등장 배경 하나의 서블릿 혹은 JSP만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리한다면, 너무 많은 역할을 하게 되어 유지보수가 어렵다. 또한, UI를 일부 수정하는 일과 비즈니스 로직을 수정하는 일은 변경 시점이 다를 가능성이 매우 높다. 따라서 변경의 라이프 사이클이 다른 부분을 하나의 코드로 관리하는 것은 유지보수하기 좋지 않다. 특히, JSP 같은 뷰 템플릿은 화면을 렌더링 하는데 최적화 되어 있기 때문에 이 부분의 업무만 담당하는 것이 좋다. MVC 패턴을 사용하면 JSP나 서블릿으로 처리하던 것을 컨트롤러,모델,뷰라는 영역으로 서로 역할을 나눠 처리할 수 있다. 참고 : [Web] 서블릿(Servlet)이란? 서블릿 컨테이너란? [Web] 서블릿(Servlet)이란? 서블릿 컨..
프록시(Proxy)란? 프록시는 두 호스트가 통신할 때 서로 직접 통신하지 않고 중간에서 대리로 통신을 하도록 도와주는 것을 프록시(Proxy)라고 한다. 이러한 중계 역할을 하는 서버를 프록시 서버라고 부른다. 즉, 프록시 서버는 클라이언트와 서버 사이의 중계서버로서의 역할을 한다. 이러한 프록시 서버가 클라이언트와 서버 중간에 위치하면서, 클라이언트는 프록시서버를 서버로 인식하고 서버는 프록시 서버를 클라이언트로 인식하게 된다. 프록시서버는 위치에 따라 포워드 프록시(Forward Proxy)와 리버스 프록시(Reverse Proxy)로 나뉜다. 포워드 프록시(Forward Proxy)란? 포워드 프록시는 일반적으로 프록시, 프록시 서버 혹은 웹 프록시라고 불린다. 포워드 프록시는 클라이언트들 앞에 ..
템플릿 엔진이란? 템플릿 엔진은 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어 또는 소프트웨어 컴포넌트를 말한다. 특히, 웹 템플릿 엔진은 웹 문서가 출력되는 템플릿 엔진을 말한다. 즉, 웹 템플릿 엔진은 지정된 템플릿 양식과 데이터가 합쳐져서 HTML 문서를 출력하는 소프트웨어를 말한다. 이후 웹 템플릿 엔진을 템플릿 엔진으로 부르겠다. 서버 사이드 템플릿 엔진 vs 클라이언트 사이드 템플릿 엔진 서버 사이드 템플릿 엔진은 서버에서 DB 혹은 API에서 가져온 데이터를 미리 정의된 템플릿(Template)에 넣어 HTML 문서를 만들어 클라이언트에 전달해주는 역할을 한다. 즉, HTML 코드에서 고정적으로 사용되는 부분은 템플릿으로 만들어두고 동적으로 생성..
서블릿(Servlet)이란? 자바 서블릿(Java Servlet)은 웹페이지를 동적으로 생성하는 서버 측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. -위키피디아- 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다. 기존에 서버는 정적인 자료(HTML, 사진, 글 등)만을 주고받았다. 하지만 웹에 다양한 기능이 요구되면서 정적인 자료뿐만 아니라 사용자 요구에 맞춘 동적인 페이지들을 만들 필요가 생겼다. 이를 위해 만들어진 것이 바로 서블릿이다. 쉽게 말해 서블릿은 클라이언트의 요청에 맞춰 동적인 결과를 만들어 주는 자바 웹 프로그래밍 기술이라고 할 수 있다. 이러한 서블릿은 WAS(Web Application Server)의 서블릿 컨테이너 안에서 동작하게 된다...