반응형
목록
분류 전체보기 (292)
[꼼꼼한 개발자] 꼼코더
🚨 뒤로 가기의 문제 동일한 페이지 내에서 ‘목록 페이지’와 ‘조회 페이지’의 이동은 정삭적으로 처리된 것 같아 보이지만 한 가지 문제가 있다. 등록 → 목록 → 조회 까지는 순조롭지만 ‘뒤로 가기’를 선택 시 다시 게시물의 등록 결과를 확인하는 방식으로 동작하는 문제가 발생한다.(모달창) 위에 과정을 아래 그림을 통해 한 번 더 표현해 보았다. 등록 후 모달창 확인 → 목록페이지로 이동 → 게시글 제목 클릭 후 조회 페이지 이동 → 브라우저에 뒤로 가기 클릭 → 등록 시 나타나는 모달창 노출 이러한 문제는 ‘뒤로 가기’, ‘앞으로 가기’ 클릭 시 서버를 다시 호출하는 게 아니라 과거의 모든 테이터를 재활용하기 때문이다 따라서 브라우저에서 조회 페이지와 목록 페이지를 여러 번 ‘앞으로 가기, 뒤로 가기 ..
🔍 조회 페이지와 이동 게시물의 등록, 리스트 처리가 끝났다면 가장 중요한 틀은 완성되었다고 볼 수 있다. 다음은 목록 페이지에서 링크를 통해 Get방식으로 특정한 번호의 게시물을 조회할 수 있는 기능을 작성하자. 👨🏻💻 조회 페이지 작성 조회 페이지는 입력 페이지와 거의 유사하지만 게시물 번호(bno)가 출력된다는 점과 모든 데이터가 읽기 전용으로 처리된다는 점이 가장 큰 차이이다. 게시물 조회는 BoardController를 보면 get() 메소드로 작성하였다. 👨🏻💻 get.jsp 작성 views/board → get.jsp 생성 게시물 번호를 보여줄 수 있는 필드를 추가하고 모든 데이터는 readonly로 작성한다. 수정/삭제 페이지로 이동하거나 원래 목록 페이지로 이동할 수 있는 버튼을 추가..
🔀 재전송(redirect)처리 등록 과정에서 POST 방식으로 데이터가 처리되는 과정을 그림으로 표현하면 다음과 같다 BoardController에서 register() 메서드는 ‘redirect:/board/list’를 전송하는데 브라우저는 이를 통보받고 /board/list로 이동한다. 이 같은 재전송을 사용하지 않으면 ‘새로고침’을 통해 동일한 내용을 계속 서버에 등록할 수 있기에 (흔히 도배) 문제가 발생된다. 따라서 등록, 수정, 삭제 작업은 처리가 완료된 후 다시 동일한 내용을 전송할 수 없도록 브라우저의 URL로 이동하는 방식을 이용한다. 또 중요한 부분은 등록, 수정, 삭제 작업 결과를 바로 알 수 있게 피드백을 줘야 한다 경고창이나 를 이용하는 모달창을 이용해서 이러한 작업을 처리한다...
👉🏻 등록 입력 페이지와 등록 처리 게시물의 등록 작업은 POST 방식으로 처리하지만 화면에서 입력을 받아야 하니 GET 방식의 입력페이지를 확인하는 메소드를 추가해 보자 👨🏻💻 BoardController 코드 추가 register() 는 입력 페이지를 보여주는 역할이므로 별도의 처리가 필요 없다 views 폴더에 includes를 적용한 입력 페이지를 작성한다. 👨🏻💻register.jsp 추가 views 폴더 → board 폴더 → register.jsp 추가 register.jsp 페이지에서는 태그를 이용해서 필요한 데이터를 전송한다. 이나 태그의 name 속성은 BoardVO 클래스의 변수와 일치시켜 준다 💁🏻♂️ 결과(1) 브라우저에 /board/register 화면이 제대로 출력되는지 ..
📺 화면 개발 지금까지 처리와 테스트를 모두 마쳤다 만일 에러가 발생한다면 화면 관련 에러일 것이다. 화면 개발은 JSP, JavaScript(jQuery), CSS, HTML을 이용해서 작성한다. 화면을 개발하기 전에는 반드시 화면 전체 레이아웃이나, 디자인이 반영된 상태에서 개발하는 것을 추천한다. 화면을 나중에 처리하다가는 두 배의 시간을 드리는 결과가 나타날 수 있다. 웹 디자이너가 없다면 유행하는 BootStrap을 이용한 무료 디자인들을 찾아보자 (http://startbootstrap.com/template-categories/all/) 예제에서 사용할 디자인은 ‘SB Admin2’를 사용한다. (http://samara.computer/531_adaptive/startbootstrap-ma..
🧍🏻♂️ 정적(static) 웹 프로그래밍 설명 웹 서버(Apache)에 미리 보여줄 HTML, CSS, JS 파일을 미리 저장해 놓고 브라우저에서 요청할 경우 그대로 전달하는 방식이다. 사용자변경 혹은 페이지 변경이 되지 않는 한 고정된 웹 페이지를 보게된다. 주로 화면의 디자인을 구성하거나 클라이언트의 이벤트를 처리한다. 환율 정보나 주가 정보 등 실시간 정보를 표시하는 데는 적합하지 않다. 구성요소 웹 서버 : 각 클라이언트에게 서비스를 제공하는 컴퓨터를 의미한다. 클라이언트 : 네트워크로 서버에 접속한 후 서버로부터 서비스를 제공받는 컴퓨터를 의미한다. HTTP : www 서비스를 제공하는 통신 규약을 의미 웹 서버와 클라이언트는 이 프로토콜을 이용하여 정보를 주고받는다. HTML : www 서..
🖥 클라이언트 PC 기반 프로그램 설명 우리가 사용하는 노트북, 데스크 탑 위에서 실행되는 프로그램을 일컫는다. 예) 워드, 엑셀, 계산기 등 특징 클라이언트 PC에서 실행되고 모든 기능을 수행 문제점 프로그램이 변경될 때마다 재설치를 해야 한다. 예) 핸드폰 어플 등 데이터베이스 접속 정보와 가이 정보가 쉽게 노출될 수 있어 보안에 취약하다. 🖥 클라이언트 서버 기반 프로그램 설명 크게 클라이언트 프로그램과 서버 프로그램으로 나뉘어 진다. 클라이언트 프로그램 : 클라이언트로부터 데이터를 입력받는 기능 그리고 서버에서 전송된 데이터를 화면에 출력하는 기능만 한다. 서버 프로그램 : 모든 중요한 기능은 서버에서 동작하는 서버 프로그램이 전부 수행한다. 특징 기능(로직)이 변경되어도 모두 서버에서 처리하므로..
‼️ 실습은 FrontController 패턴으로 MVC를 적용한다. 🎮 JSP에서 MVC패턴을 구현하는 방법 서비스 하는 기능마다 서블릿을 정의하고 등록 Front Controller를 만들어 모든 요청을 받는 서블릿을 정의하고 등록 👨🏻💻 실습 ( FrontController 패턴으로 MVC 적용) controller와 model이라는 이름으로 패키지를 생성해 준다. 🕴🏻 모델 개념 준비 model 패키지 속 AddService.java, MinService.java 이름으로 파일을 만들어 준다. 🏎 핸들러 준비 - java파일 생성 controller 패키지에 AddHandler.java, minHandler.java, FrontController.java CommandHandler.java 총 ..