전체 글

전체 글

    [TIL] JSP 댓글 기능 구현 (Comment)

    ✍ Today I Learned 댓글을 달 때마다 페이지가 리로딩된다면? 트래픽 양을 감당하기 힘들 것이다. 페이지를 이동하지 않고 자바스크립트 비동기 통신을 이용하여 댓글 기능을 구현해보자. 순서는 VO → mapper → DAO → Service → Controller → 화면단(view) 먼저 프로젝트를 분리하고 톰캣에 올라가 있는 프로젝트를 remove 해준다. [CommentVO.java] comment 테이블의 pk인 cno와 board 테이블의 pk인 bno는 long 타입으로 선언한다. 비동기 통신에서는 register 대신 post라는 단어를 주로 사용한다. post, list, modify 상황별 생성자를 만들고 getter, setter를 생성한다. (list의 상황에서는 전체 컬럼을..

    [TIL] JSP 웹페이지 만들기2 (Board)

    ✍ Today I Learned Member에 관한 기능을 모두 구현했으니 Board 기능을 구현할 차례! 여태까지는 프로세스 순서대로 구현했다면 이번엔 다음과 같이 백단부터 작성해보았다. DB → VO → Mapper → DAO → Service → Controller → JSP 뷰단을 가장 마지막에 출력하기 때문에 내가 어떤 파라미터를 던지고 어떤 결괏값을 받는지 잘 생각해야 한다. [BoardVO.java] register, list, modify, detail 상황별 생성자를 만들고 getter, setter를 생성한다. board 테이블의 pk인 bno는 long 타입으로 선언한다. [boardMapper.xml] mapper 패키지에 boardMapper.xml 파일을 생성하고, 먼저 dtd를..

    [OS] Window10(윈도우 10) 비정상적인 메모리 사용량 해결 방법

    문제 상황 요즘 부쩍 노트북이 버벅거리는 경우가 잦다 싶었는데 오늘 유난히 말썽을 부리길래 각 잡고 탐험을 시작했다. 가장 먼저 확인한 건 역시 작업 관리자! 메모리 사용량을 보고 내 눈을 의심했다. 뭐 원래 이것저것 다 펼쳐두고 하는 스타일이긴 한데 이게 맞나? 싶어서 모든 프로그램을 종료하고 재부팅까지 하고 확인했지만 절대 90% 밑으로 떨어지지 않았다. 심지어 재부팅되는 속도도 느려짐; 메모리의 과대한 사용량이 표시되는 원인은 굉장히 다양한데 일단 내가 문제 해결을 위해 시도한 방법은 2가지다. 해결 방법 1. Windows Network Data Usage Monitoring Driver(NDU) 종료하기 메모리 세부 모니터링 프로그램이라고 한다. 이 기능을 종료하기 위해서는 레지스트리 편집기를 ..

    [TIL] JSP 웹페이지 만들기(MyBatis, Member)

    ✍ Today I Learned 지금까지 JSP의 기능에 대해 공부했다면, 이번엔 제대로 웹페이지를 만들어보자. 기본 게시판 기능, 로그인/로그아웃 기능, 파일 업로드 기능, 댓글 기능 등이 포함될 예정이다. MyBatis 프레임워크를 사용할 것이다. [환경 설정] New → Dynamic Web Project로 새로운 프로젝트를 생성한다. (Generate web.xml deplyment descriptor 체크 필수) 기본으로 생성되던 주석을 삭제한다. Window → Prefernces → Java → Code Style → Code Templates에서 Code에 있는 주석 부분을 전부 지워준다. [web.xml 설정] WEB-INF 폴더에 web.xml 파일을 만들고 다음과 같이 작성한다. 이번..

    [TIL] JSP 세션(session)으로 로그인/로그아웃 구현

    ✍ Today I Learned 톰캣 서버에 올라가 있는 프로젝트를 remove 하고, 02 프로젝트를 복사한 session 버전 프로젝트를 톰캣 서버에 add 한다. 충돌 방지를 위해 web.xml에 있는 display-name을 프로젝트와 같은 이름으로 바꿔준다. [세션 Session] 세션(session)이란? 서버와 클라이언트의 연결을 유지시켜주는 방법이다. 쿠키는 클라이언트 브라우저에 생성되고 저장이 된다면, 세션은 웹서버 쪽 웹 컨테이너에 생성되고 저장이 된다. http 프로토콜은 브라우저에 어떤 요청을 하고 서버에서 응답을 하고 나면 해당 연결을 해제하는데, 쿠키와 세션을 이용해 해당 정보를 저장하면 연결을 유지시킬 수 있다. 세션은 웹 브라우저를 종료하거나, 프로그래밍적으로 세션을 종료하기..

    [TIL] JSP로 CRUD 구현2

    ✍ Today I Learned [Detail(SelectOne)] List에서 ename을 클릭하면 Detail을 볼 수 있도록 a 태그를 이용해 "detail.em"으로 쿼리 스트링에 empno를 실어 요청한다. 이때 EL태그를 이용하면 훨씬 효율적이다. ${evo.ename} 클릭한 데이터의 empno 정보를 가지고 다음과 같은 순서로 요청한다. Controller → Action(여기까진 request객체) → Service → DAO → 데이터베이스에서 empno로 Select 후 EmpVO 객체를 다시 detail.jsp까지 전달한다. list와 마찬가지로 JSTL을 이용하여 datail.jsp를 작성한다. Action에서 setAttribute를 evo로 설정했기 때문에 jsp에서도 evo로..

    [TIL] JSP로 CRUD 구현

    ✍ Today I Learned [Log 템플릿 설정] SLF4J로 로깅하기 위해 다음의 코드를 템플릿으로 설정한다. Window → Prdferences → Java → Code Style → Code Templates → Code New Java files → Edit ${filecomment} ${package_declaration} import org.slf4j.Logger; import org.slf4j.LoggerFactory; ${typecomment} ${type_declaration} Class body → Edit private static Logger log = LoggerFactory.getLogger(${type_name}.class); Java 파일을 생성하면 다음과 같이 템플릿..

    [TIL] JSP 개발 환경 설정

    ✍ Today I Learned 본격적으로 jsp 웹페이지를 만들기 전에 개발 환경 설정을 해주었다. jsp는 다양한 방식으로 개발하기 때문에 개발자마다 아키텍처는 다를 수 있다. [환경 설정] 이클립스의 Workspace를 jsp 폴더로 변경한다. 가장 먼저 인코딩 설정을 한다. Window → Preferences → encoding 검색 → Workspace와 CSS Files, HTML Files, JSP Files 전부 utf-8로 변경 웹브라우저 설정을 해준다. General → Web Browser → Use external web browser 선택, Chrome 선택 컴파일러 버전을 맞춰준다. Java → Compiler → 1.8로 변경 톰캣을 연결해준다. Server → Runtime..