목록분류 전체보기 (108)
Keep going
영속 계층의 작업은 항상 다음과 같은 순서로 진행한다. 테이블의 칼럼 구조를 반영하는 VO(Value Object) 클래스의 생성 MyBatis의 Mapper 인터페이스의 작성/XML 처리 작성한 Mapper 인터페이스 테스트 8.1 영속 계층의 구현 준비 거의 모든 웹 애플리케이션의 최종 목적은 데이터베이스에 데이터를 기록하거나, 원하는 데이터를 가져오는 것이 목적이기 때문에 개발할 때 어느 정도의 설계가 진행되면 데이터베이스 관련 작업을 하게 된다. 8.1.1 VO 클래스의 작성 VO 클래스를 생성하는 작업은 테이블 설계를 기준으로 작성하면 된다. 현재 tb1_board 테이블의 구성은 아래와 같다. 프로젝트에 org.zerock.domain 패키지를 생성하고, BoardVO 클래스를 정의한다. Bo..
스프링 MVC를이용하는 프로젝트의 구성을 이해하는 일은 전체 데이터의 흐름을 보기 위해서이다. 브라우저에서 전송한 데이터를 스프링 MVC 의 어떤 간계를 거쳐서 실행되는지를 이해한다면 문제가 발생했을 때 빠른 대처와 대안을 찾을 수 있기 때문이다. 일반적으로 웹 프로젝트는 3-tier(티어) 방식으로 구성한다. 1. Presentation Tier(화면 계층)는 화면에 보여주는 기술을 사용하는 영역이다. 책의 예제에서는 Servlet/JSP나 스프링 MVC가 담당하는 영역이 된다. Presentation Tier는 프로젝트의 성격에 맞춰 앱으로 제작하거나, CS(Client-Server)로 구성되는 경우도 있다. 2. Business Tier(비즈니스 계층)는 순수한 비즈니스 로직을 담고 있는 영역이다...
◆ 여러 컴퓨터에서 원격 저장소 함께 사용하기 원격 저장소 복제하기 - git clone 원격 저장소를 기존에 연결된 지역 저장소 외에 다른 지역 저장소에서 사용하려면 원격 저장소에 담긴 내용 전체를 지역 저장소로 가져와야 한다. 원격 저장소를 지역 저장소로 똑같이 가져오는 것을 '복제한다'고 하거나 '클론' 또는 '클로닝'이라고 한다. 1. 깃허브에 있는 test-1저장소를 git_home이라는 저장소로 복제하겠다. [Clone or download]를 누른 후 'Clone with HTTPS' 항목에 있는 원격 저장소의 주소를 복사한다. 2. 터미널 창에서 git_home 디렉터리와 git_office 디렉터리를 만들 위치로 이동한다. 여기에서는 홈 디렉터리에 만들겠다. git clone 다음에 복사..
◆ 원격 저장소와 깃허브 자신의 컴퓨터에서 작업한 뒤 그 컴퓨터 안에 커밋을 저장했다. 이 저장소를 지역 저장소라고 부른다. 만약 실수로 지역 저장소를 삭제한다면 그 때까지 작업했던 내용이 다 사라져버릴 것이다. 이렇게 작업 내용을 지역 저장소에만 저장하는 것은 안전하지 않기 때문에 작업하는 컴퓨터가 아닌 다른 곳에 저장 공간을 마련해야 한다. 원격 저장소란 깃에서는 지역 저장소와 원격 저장소를 연결해서 버전 관리하는 파일들을 쉽게 백업할 수 있다. 원격 저장소는 지역 저장소가 아닌 컴퓨터나 서버에 만든 저장소를 말한다. 원격 저장소는 지역 저장소와 연결되어 있으면서 '백업'과 '협업' 이라는 중요한 역할을 한다. 원격 저장소를 직접 구축할수도 있지만 만들고 유지하는 것이 쉽지 않다. 그래서 인터넷에서 ..
◆ 브랜치란? 모든 버전 관리 시스템에는 '브랜치'라는 개념이 있다. 브랜치는 원래 나뭇가지라는 뜻으로, 버전 관리 시스템에서는 나무가 가지에서 새 줄기를 뻗듯이 여러 갈래로 퍼지는 데이터 흐름을 가리키는 말로 사용한다. 브랜치 기능 살펴보기 - 깃으로 버전 관리를 시작하면 기본적으로 master라는 브랜치가 만들어진다. - 사용자가 커밋할 때마다 master 브랜치는 최신 커밋을 가리킨다. - 즉, 브랜치는 커밋을 가리키는 포인터와 비슷하다고 생각하면 된다. - 새 브랜치를 만들면 기존에 저장한 파일을 master 브랜치에 그대로 유지하면서 기존 파일 내용을 수정하거나 새로운 기능을 구현할 파일을 만들 수 있다. - 이렇게 master 브랜치에서 뻗어 나오는 새 브랜치를 만드는 것을 분기라고 한다. -..
입력 양식이란 특정 항목에 사용자가 뭔가를 입력할 수 있게 만든 것으로 '폼이라고도 한다. (로그인 창, 검색 창 등등) HTML에서 입력 양식을 사용하면 로그인 창에 아이디와 비밀번호 항목을, 회원 가입 양식에 이메일 주소, 전화번호 등의 항목을 넣을 수도 있다. 1. 폼 삽입하기 웹에서 만나는 폼 - 우리는 웹에서 폼을 자주 만난다. - 아이디와 비밀번호를 입력하거나 로그인 버튼, 회원 가입 등 사용자가 웹 사이트로 정보를 보낼 수 있는 모든 요소는 모두 폼이라고 할 수 있다. - 검색 사이트나 쇼핑몰 주문서 화면에서도 폼을 이용한 입력란을 볼 수 있다. 폼의 동작 과정 - 사용자가 아이디와 비밀번호를 입력하고 로그인 버튼을 클릭하면 입력한 정보는 웹 서버로 전송된다. - 그럼 서버는 자신이 가진 데..
4. Model이라는 데이터 전달자 - Controller의 메서드를 작성할 때는 특별하게 Model이라는 타입을 파라미터로 지정할 수 있다. - Model 객체는 JSP에 컨트롤러에서 생성된 데이터를 담아서 잔달하는 역할을 하는 존재다. - 이를 이용해서 JSP와 같은 뷰로 전달해야 하는 데이터를 담아서 보낼 수 있다. - 메서드의 파라미터에 Model 타입이 지정된 경우에는 스프링은 특별하게 Model 타입의 객체를 만들어서 메서드에 주입하게 된다. - Model은 모델 2 방식에서 사용하는 request.setAtrribute()와 유사한 역할을 한다. Servlet에서 모델2 방식으로 데이터를 전달하는 방식 request.setAttribute("serverTime", new java.util.D..
스프링 MVC 를 이용하는 경우 작성되는 Controller의 특징 HttpServletRequest, HttpServeltResponse를 거의 사용할 필요 없이 필요한 기능 구현 다양한 타입의 파라미터 처리, 다양한 타입의 리턴 타입 사용 가능 GET 방식, POST 방식 등 전송 방식에 대한 처리를 어노테이션으로 처리 가능 상속/인터페이스 방식 대신에 어노테이션만으로도 필요한 설정 가능 1. @Controller, @RequestMapping 프로젝트 내 org.zerock.controller 패키지 폴더에 SampleController라는 이름의 클래스 작성 SampleController 클래스 package org.zerock.controller; import org.springframework..