BackEnd 62

📑 PhotoGallery[완결]_국비_DAY69

전체 소스코드 보기 지난 시간에 이어서 오늘은 파일 업로드&다운로드 실습에 기능을 추가하고자 한다. 오늘은 이미지를 누르면 업로드 되어 있는 사진을 팝업 형태로 상세보기 할 수 있는 기능을 추가할 것이다. photo_list.jsp파일에서 태그에 onclick속성을 추가하고 photo_view()함수를 추가한다. 기본적으로 모든 이미지들은 JSTL의 forEach문을 사용해서 출력했다. 상세보기를 하기 위해선 내가 클릭한 이미지가 어떤 이미지인지 알아야 해당 이미지를 데이터베이스에서 가져올 수 있다. 하지만 forEach문의 반복첨자로 사용하던 vo는 "Java"언어이기 때문에 이 문법을 그대로 함수의 인자로 전송하면 이 함수를 실질적으로 처리하는 언어는 JavaScript이기 때문에 인식이 안될수가있다..

📑 세션 트래킹_국비_Day68

전체 소스코드 보기 어제에 이어서 세션 트래킹을 활용한 로그인 처리를 이어서 정리하겠다. 65~66일차에 실습한 Member(회원관리)와 67일차에 실습한 Photo(파일업로드) 내용을 병합하여 실습을 진행하고자 하니 부족한 내용은 이전의 블로그를 참고해주길 바란다. 실습이 끝나고 전체적인 파일은 필자의 깃허브 주소에 업로드하겠다. 세션트레킹은 현재 페이지의 정보를 다른 페이지에서도 유지한 상태로 사용하는 기술이라고 했다. 로그인을 진행하기 전에 아이디가 맞는지, 비밀번호가 맞는지 한 번의 검증과정을 거치는데, 이번에는 로그인 폼에서 비동기로 확인하는 것이 아니라, 로그인 서블릿으로 넘어간 후에 redirect하는데, 이때 쿼리에 오류정보를 담아서 전송해주어야 한다. 리다이렉트를 할시에 사용자는 url변..

📑 파일업로드_국비_DAY67

[자바에서 파일 업로드하는 방법] 파일은 request객체로 수신이 안되기 때문에 파일을 업로드하는 경우에는 이를 처리해줄 객체를 사용해야 하는데 이 객체를 사용하기 위한 라이브러리를 추가해야 한다. 절차를 아래와 같다. 다음의 사이트로 접속한다. 왼쪽 메뉴에서 COS File Upload Library를 선택한다. 밑으로 내려서 cos-22.05.zip파일을 다운로드한다. 압축을 해제하고 lib폴더 내에 있는 cos.jar파일을 프로젝트의 WEB-INF하위의 lib폴더로 복사한다. [File Upload용 Form을 작성 시 반드시 준수해야 할 사항] method="POST" enctype="multipart/form-data" [input_file.jsp] 1 2 3 4 5 6 7 8 9 10 11 ..

📑 백준[자바]_2206_벽부수고이동하기_BFS_너비우선탐색

오늘은 백준 단계별로 문제풀기 카테고리 중에서 그래프 순회로 분류되어 있는 문제를 풀어보았다. 최근에 그래프 탐색문제로 너비우선탐색 문제를 많이 풀이해왔는데, 이번 문제는 생각보다 까다로웠다. [ 문제 분석 ] 시작점과 도착점은 벽이 없음이 보장된다. 시작점과 도착점을 포함해서 이동 거리의 최소값(최단거리)를 도출한다. 이때 단 한 번의 벽은 부술 수 있다. 도착점에 도달할 수 있는 경우는 최단거리를, 도달할 수 없으면 -1을 출력한다. [ 오답노트 ] 처음에는 그렇게나 골치를 썩이던 벽을 뚫을 수 있다는 말에 반가웠지만 막상 구현에 앞서보니 어떤 벽을 뚫어야 최단거리가 가능할까? 라는 생각을 하다가, 이렇게 생각하기엔 경우의 수가 너무 많아서 도달달 수 있는지 없는지를 판단하기로 했다. 위를 구현하기 ..

📑 세션트래킹_국비_DAY66

[ 세션 트래킹의 정의 ] 서블릿이나 JSP로 작성된 웹 페이지들 간의 클라이언트 상태유지를 위해 사용되는 기술을 의미한다. 서로 관련이 없던 페이지들간에 연관성을 설정하는 방법이다. [ 세션 트래킹의 등장 배경 ] HTTP프로토콜은 클라이언트와 서버간 요청과 응답이 실행되면 연결이 종료된다. 이것은 전 페이지에서 수행했던 작업을 다른 페이지에서 인식할 수 없음을 의미한다. 전 페이지에서 수행했던 작업을 다른 페이지에서도 인식할 수 있게 구현 해야 한다. [ 구현방법 ] input type="hidden"태그 이용 GET방식을 이용한 URL파라미터 이용 쿠키 이용 세션 이용 [ 쿠키 ] 정의 HTTP한계(요청에 대한 응답을 하면 연결이 끊김)를 극복할 수 있도록 웹 사이트의 방문기록을 클라이언트(브라우저..

📑 AJAX_국비DAY65~66

Ajax를 사용한 회원관리 구현 -> 회원가입 기능 [도식화] 간단하게 구현하고자 하는 회원관리의 기능을 도식화한 내용은 다음과 같다. ----이미지 받아서 넣기 1. [DB] 가장 먼저 사용하고자 하는 DB를 구현해보자. 테이블을 만들고 필요한 제약 조건은 다음과 같이 설정하였다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 --일련번호 관리 객체 create sequence seq_member_m_idx --테이블 생성 create table memember ( m_idx int, --일련번호 m_name varchar2(100) not null, --이름 m_id varchar2(100) not null,..

📑 AJAX_국비DAY64

웹 브라우저에 내장된 ajax객체가 서버에서 오는 상태정보를 지속적으로 callback함수에게 전달한다. 404 : 페이지를 찾을 수 없을 때 나타나는 오류 500 : 서버 내부 문법 오류 1 2 3 4 5 6 7 8 9 10 11 12 $.ajax({ type:'GET', url :'calc.do', data:{'su1':su1, 'su2':su2, 'op':op},/* 전달인자(param -> JSON형식으로 작성) */ success:function(result_data){ $("#result").val(result_data); }, error: function(err){ alert(err.status); } }); Colored by Color Scripter cs type, url, data =..

📑 웹DB_비번, 줄바꿈처리,AJAX_DAY63

웹 DB 실습 [방명록 만들기] 더보기 전체적인 흐름은 위의 이미지와 같다. 새로 배운 기술에 대해서만 주해를 하고, 나머지는 여기에 전체 소스를 첨부하겠다. 다른 파일 없이 실제 소스코드만 저장해두었으니, DBPC 라이브러리 등 서버등록은 직접 해야 한다. 1. [visit_list.jsp] -> 비밀번호 체크 코드 상에서는 수업 목적상 비밀번호를 기억하기 위해서 비밀번호가 표시되도록 되어 있지만, 평상시에는 비밀번호를 표시하지 않고, 자신의 게시글만 수정&삭제가 가능하도록 해야한다. 비밀번호가 일치하는 경우에만 수정&삭제하는 권한이 주어지는데 비밀번호는 JS를 사용하여 다음과 같은 방법으로 검사한다. "삭제"버튼을 누르면 form에 있는 정보를 전송하는 JS함수를 정의한다. 전송하고자 하는 폼의 id..

📑 DBCP_웹DB_국비_DAY59

DBCP(Database Connection Pool) ㄴ> 데이터베이스 커넥션들을 미리 준비하고 사용자의 요청이 들어오면 연결된 커넥션 객체를 바로 전달하는 구조. ㄴ> 자바프로그램에서 사용하던 DBService는 요청이 들어올 때마다 커넥션을 연결해서 전달한다. (예: 전화를 하기 위해 번호를 누르는 시간, 연결하는 시간, 통화하는 시간, 끊는 시간 -> 통화를 위해 소요되는 서비스 지연시간이 너무 길다.) ㄴ> 웹에서 사용하는 DB는 불특정다수가 동시에 많이 들어오기 때문에 위처럼 요청이 들어올 때마다 연결 시도, 연결, 커넥션 전달 이런식으로 진행하면 많은 사용자의 트래픽을 감당할 수 없을 정도로 서비스의 지연시간이 발생한다. 웹 서비스는 사용자의 요청이 발생하면 바로바로 요청을 해줘야 하기 때문..

📑 국비_DAY58

Servlet or JSP 페이지 이동 방법 1. Redirect 방식 (insert, update, delete명령은 무조건 redirect방식으로 응답한다.) a.jsp내에서 response.sendRedirect("b.jsp);를 입력한다. 이는 사용자의 요청 정보를 a.jsp가 받고 재요청 정보를 사용자에게 응답해주고 최종적으로 요청된(b.jsp)페이지 정보를 클라이언트 측에서 변경된 URL을 통해서 확인할 수 있다. 예를 들어 게시판을 게시글을 등록, 수정, 삭제 등의 작업을 a.jsp에 요청을 하면 전달받은 사용자의 요청정보를 통해 DB에 접근하여 수정하고 사용자에게 수정된 정보를 확인하도록 게시글 작성하기(a.jsp)에서 게시글 목록보기(b.jsp)로 재요청(redirect) 정보를 응답한다..

📑 JSTL_국비_DAY57

EL : 데이터를 화면 상에 간결하게 표현할 때 사용 JSTL : 조건이나 반복의 기술을 문법을 태그 형식으로 사용한다. 모든 값의 표현은 EL로 구현한다. (Tag형식의 명령어 라이브러리) JSTL로 반복문 사용하기 을 사용하여 JSP파일이 실행되어 서블릿으로 변환될 때, _jspService영역에 들어가도록 변수 및 자료구조를 선언한다. 변수 및 자료구조에 데이터를 넣는다. 4가지 영역(pageContext, request, session, application) 중 한 곳에 데이터를 (setAttribute)저장한다. [속성 정보] JSTL문법의 모든 값의 표현법은 반드시 EL로 사용한다고 했다. EL을 사용하기 위해서는 상수를 제외한 모든 변수는 반드시 네가지 스코프영역 중 한 곳에 값을 저장해야..

📑 EL_국비_DAY56

JSP파일은 컴파일 시 서블릿으로 변환된다고 했다. 이때 주석문을 어떤것으로 쓰느냐에 따라서 차이가 있는데 그 차이점을 살펴보자. 주석문의 차이점 : JSP파일에서 HTML주석문을 사용하면 컴파일시 변환될 때, 주석문이라서 실행이 안되지만 주석문은 넘어간다. : JSP파일에서 JSP 주석문을 사용하면 컴파일시 변환될 때, 위와는 달리 주석문 자체가 변환되어 넘어가지 않는다. 아래의 이미지를 확인하면 HTML주석문은 넘어가고, JSP주석문은 넘어가지 않은 것을 확인할 수 있다. 더보기 위의 주석문을 사용할 때 주의해야 하는 이유는 EL 표현식을 사용할 때이다. EL표현식은 말그대로 표현식인데 HTML이 아닌 JSP파일에서만 사용할 수 있는 표현식이다. 이때 EL표현식에 대한 주석문을 html로 작성하게 되..