JDBC의 등장 배경 애플리케이션 서버에서 DB를 연결하기 위해선 어떤 동작이 필요할까? 1. 커넥션 연결 : 주로 TCP/IP를 사용해 애플리케이션 서버와 DB서버가 연결된다. 2. SQL 전달 : 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달한다. 3. 결과 응답 : DB는 전달된 SQL을 수행하고 그 결과를 응답한다. 간단하게 표현하면 위와 같이 동작한다. 이때 DB서버를 교체한다면 어떻게 될까? MySQL과 Oracle은 커넥션을 연결하는 방법, SQL을 전달하는 방법, 결과를 응답받는 방법이 모두 다르다. 위와 같은 방식처럼 애플리케이션 서버와 DB서버를 직접 연결하는 방식은 데이터베이스를 다른 종류로 변경하면 애플리케이션 서버에서 개발한 데이터베이스 사용..
깃 브랜치(Git Branch)란 무엇인가 개발을 하다 보면 코드를 여러 방향으로 개발할 일이 생긴다. 예를 들어 A라는 코드를 B로 바꿔보기도 하고, C로 바꿔보기도 하며 가장 효율적인 코드를 찾아나갈 수도 있다. 이렇게 독립적으로 개발하는 것이 브랜치의 기본 개념이다. 브랜치는 말 그대로 가지이다. 하나의 나무에서 여러 갈래로 가지가 뻗어나가는 것처럼, 하나의 코드에서 여러 개의 코드로 갈라지며 다양한 개발 흐름을 만들어 낼 수 있다. 혼자 개발할 때 뿐만 아니라, 여러 사람이 협업하여 개발할 때 브랜치는 더욱 빛을 발한다. 어떤 개발자는 A라는 코드에 B기능을 추가하고, 또 다른 개발자는 동시에 C라는 기능을 추가할 수 있다. 커밋과 브랜치 깃은 데이터를 변경사항으로 기록하지 않고 일련의 스냅샷(s..
온-프레미스(On-premise)와 클라우드(Cloud) AWS에 대해 알기 위해선 온-프레미스와 클라우드에 대해 알아야 한다. 온-프레미스 저장소는 회사의 서버가 조직의 인프라 내에 호스트 되어 있으며, 많은 경우 사내에 물리적으로 존재한다. 따라서 온-프레미스 저장소는 서버를 회사의 사내 IT 팀 등이 직접 제어, 관리, 유지 및 조달한다. 또한 데이터와 기타 정보는 로컬 네트워크를 통해 공유된다. 쉽게 말해 회사가 직접 저장소를 관리한다고 보면 된다. 클라우드 저장소는 아마존(Amazon)과 같은 외부 서비스 공급자가 데이터를 호스트 한다. 즉, 클라우드 공급자가 모든 하드웨어, 소프트웨어 및 기타 지원 인프라를 조달하고 자사의 데이터 센터에 설치 및 관리한다. 또한 인터넷을 통해 PC, 웹 브라우..
@RequestMapping 실무에서 사용되는 대부분의 컨트롤러는 @RequestMapping을 사용한다. 컨트롤러의 메서드에 @RequestMapping 어노테이션을 붙이면 해당 URL이 호출될 때 이 메서드가 호출된다. 어노테이션을 기반으로 동작하므로 메서드의 이름을 임의로 지을 수 있다. 예를 들어 @Controller public class BoardController{ @RequestMapping("/board/article") public ModelAndView getArticle(HttpServletRequest request, HttpServletResponse response){ ... } } .../board/article URL이 호출되면 getArticle 메서드가 호출된다. 또한 ..
Spring MVC Framework란? MVC는 Model-View-Controller의 약자로 하나의 디자인 패턴을 뜻한다. Spring MVC에 대해 이해하려면 Model, View, Controller에 대한 이해가 필수이니 해당 내용에 대해 잘 모른다면 다음을 참고하자. [Web] MVC 패턴이란? MVC 패턴의 등장 배경 MVC 패턴의 등장 배경 하나의 서블릿 혹은 JSP만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리한다면, 너무 많은 역할을 하게 되어 유지보수가 어렵다. 또한, UI를 일부 수정하는 일과 비즈니스 code-lab1.tistory.com Spring MVC Framework는 웹 애플리케이션을 빌드하기 위한 프레임워크이다. 다른 MVC Framework 들도 웹 어플리케이션을 ..
HTTP 헤더 HTTP 헤더는 HTTP 전송에 필요한 모든 부가정보를 담고 있다. 메시지 바디의 내용, 크기, 압축, 인증, 요청 클라이언트, 서버 정보 등등... 매우 많은 정보들이 들어있다. 표준 헤더의 내용은 너무나 많기 때문에 모든 내용에 대해 궁금하다면 다음을 참고하자. List of HTTP header fields - Wikipedia HTTP header fields are a list of strings sent and received by both the client program and server on every HTTP request and response. These headers are usually invisible to the end-user and are only proc..
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는 다음과 같은 종류로 세분화 된다. ..