목록분류 전체보기 (512)
공부한것들을 정리하는 블로그 입니다.

1. 브라우저에서 도메인주소 또는 ip주소 입력 ( http://localhost:8080/biz/login.do ) 2. web.xml에서 *.do에 대해 servlet-name 'action'으로 SpringSpring FrameworkServlet 'DispatcherServlet' 실행 3. web.xml에서 설정해놓은 presentation-layer.xml에 진입, '/login.do'에 매핑된 엘리먼트 실행. 4. 엘리먼트의 경로로 지정되어있던 LoginController 실행 5. login.jsp 실행 ( url : http://localhost:8080/biz/login.jsp ) ** 참고 최초 커밋 : DAY03 까지 완료된 상태 : https://github.com/cyh789/B..

1.모듈이란? 2.모듈화 3.Node.js 4.라이브러리 5.라이브러리사용하기 1.모듈이란? 프로그램은 작고 단순한 것에서 크고 복잡한 것으로 진화한다. 그 과정에서 코드의 재활용성을 높이고, 유지보수를 쉽게 할 수 있는 다양한 기법들이 사용된다. (아주 좋은 부품을 만들어서 사용한다 생각하면된다 ) 그 중의 하나가 코드를 여러개의 파일로 분리하는 것이다. 이를 통해서 얻을 수 있는 효과는 아래와 같다. 자주 사용되는 코드를 별도의 파일로 만들어서 필요할 때마다 재활용할 수 있다. 코드를 개선하면 이를 사용하고 있는 모든 애플리케이션의 동작이 개선된다. 코드 수정 시에 필요한 로직을 빠르게 찾을 수 있다. 필요한 로직만을 로드해서 메모리의 낭비를 줄일 수 있다. 한번 다운로드된 모듈은 웹브라우저에 의해서..

마이크로 서비스 아키텍쳐 (MSA의 이해) 배경 마이크로 서비스 아키텍쳐(이하 MSA)는 근래의 웹기반의 분산 시스템의 디자인에 많이 반영되고 있는 아키텍쳐 스타일로, 특정 사람이 정의한 아키텍쳐가 아니라, 분산 웹 시스템의 구조가 유사한 구조로 설계 되면서, 개념적으로만 존재하던 개념이다. 얼마전 마틴파울러(Martin folwer)가 이에 대한 MSA에 대한 개념을 글로 정리하여, 개념을 정립 시키는데 일조를 하였다. 이 글에서는 대규모 분산 웹시스템의 아키텍쳐 스타일로 주목 받고 있는 MSA에 대한 개념에 대해서 알아보도록 한다. 모노리틱 아키텍쳐(Monolithic Architecture) 마이크로 서비스 아키텍쳐를 이해하려면 먼저 모노리틱 아키텍쳐 스타일에 대해서 이해해야 한다 모노리틱 아키텍쳐..
서론. 이전에 진행했던 [ 토이 프로젝트/(완료)(2019) BoardWeb - MVC1,MVC2 ] 에서는 MVC1 패턴, MVC2 패턴, MVC 프레임워크로 예제를 진행하였습니다. 이번에 진행되는 [ 토이 프로젝트/(진행중)(2019) BoardWeb2 - SpringMVC ] 에서는 위와 동일한 비즈니스 로직을 Spring MVC로 진행 할 예정입니다. 기존에 진행했던 실습과의 차이점은 스프링 프레임워크에서 제공하는 Servlet을 사용한다는 것입니다. 또한 실습하는 과정에서 기능이 추가 될 것입니다. 환경설정. (작성중) 깃헙. https://github.com/cyh789/BoardWeb2_2019
1. 동기 비동기 처리 - ajax는 기본적으로 비동기이므로 동기로 사용하려면 async : false 를 주는 것을 잊으면 안됨 - ajax의 succecss() 내부에 로직을 구현하여 대체하려고 할때 if(data != null) 이런식으로 구현하는 것은 의미가 없음 2. JAVA instance variable JSP를 호출하는 경우에는 jsp 내부의 instance variable 문제를 조심해야함. - 예를들어 db conn를 호출하는 경우 Connection, PreparedStatement, ResultSet 생명주기를 고려할 것 3. 호이스팅 함수 선언식(function 함수명(){}) 과 함수 표현식(var 함수명 = function(){}) 을 구분하여 사용 할 경우 호이스팅을 고려할 ..

파일저장 기능 설명 - HTML관리 페이지에서 - 출력되어있는 html의 내용을 수정 후 (1번째 라인에 "수정사항을 새로 입력해보겠습니다." 추가) - 파일저장 버튼을 클릭한다 - 파일저장 버튼 클릭시 jsp를 호출하기 때문에 화면이 새로고침된다 - 출력된 화면에서 수정된 사항이 확인되지 않는다 - 그 이유는 서버에서 리로드가 되지 않았기 때문이다(따로 설정 필요) - 지정된 파일이 존재하는 경로로 가서 파일을 직접 리로드해주자. 이클립스에서는 더블클릭으로 열거나 새로고침 해주면 된다. - 다시 도메인으로 가서 새로고침 해보면 바뀐 것을 확인 가능하다 - 이때 방법2만 수정사항이 적용 된 이유는 캐싱때문이다. - 자세한 사항은 이전 글을 참고바란다. 참고 : https://drsggg.tistory.c..

내맘대로 급하게 만든 코드라서 좀 지저분하다. 아마 구글링해보면 더 깔끔한 코드가 있지않을까 싶다. // 캐싱처리(날짜 timestamp) function autoCache(){ var d = new Date(); var s = leadingZero(d.getFullYear(), 4) + '-' + leadingZero(d.getMonth()+1, 2) + '-' + leadingZero(d.getDate(), 2) + '_' + leadingZero(d.getHours(), 2) + ':' + leadingZero(d.getMinutes(), 2) + ':' + leadingZero(d.getSeconds(), 2); return "?v=" + s; } // 캐싱처리(timestamp format) f..

불러오기 전 불러 온 후 방법1. XMLHttpRequest를 이용하는 방법(ActiveX) $(document).ready(function() { drawImageContainer(); $("#btnPrintHTML").trigger("click"); }); function startRequest() { createXMLHttpRequest(); var queryString = "uploadFile/sample.html"; // http://localhost:8080/biz/700_FileMngSys/result.txt 404 xmlHttp.onreadystatechange = handleStateChange; xmlHttp.open("GET", queryString, true); xmlHttp.sen..
ie에서는 ie라고 팝업되고 ie 이외에는 chrome이라고 출력된다

손쉽게 구현 가능한 엑셀 다운로드 기능은 크게 2가지가 있습니다. 1. Java 대용량 엑셀 다운로드 2. JavaScript 엑셀 다운로드 1. Java 대용량 엑셀 다운로드는 POI 라이브러리 또는 JXLS 라이브러리를 이용하는 방법입니다. 자바에서 제공해주는 템플릿을 토대로 원하는 데이터를 엑셀 속성에 담아 다운로드 받을 수 있습니다. 참고 : https://ddoriya.tistory.com/entry/JXLS-POI-JAVA%EC%97%90%EC%84%9C-Excel-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EA%B5%AC%ED%98%84-%EB%B0%A9%EB%B2%95-%EB%B0%8F-%EC%A2%85%EB%A5%98-%EB%B9%84%EA%B5%90 2. Jav..

IE 강력 새로고침(캐시 초기화) 단축키 : Ctrl + F5 크롬 강력한 새로고침(캐시 초기화) 단축키 : Ctrl + Shift + R or Ctrl + F5 크롬 강력한 새로고침 수동(개발자모드) 1. F12버튼 클릭 후 개발자모드 활성화 2. 새로고침 버튼 우클릭 후 캐시 비우기 및 강력 새로고침 클릭

SpringBoot에서 정적 요소 변경 했는데.. - 개발을 진행하는 도중 Font-end단 작업을 해야 해서 html 요소를 변경하고, 브라우저를 새로고침하였지만 변경이 되지 않았습니다. - 그래서 이 부분을 찾아본 결과 Thymeleaf같은 템플릿 엔진을 사용할 경우 정적 리소스 갱신을 위해 서버를 재시작 해야 하는 것이었습니다. - Spring을 이용하여 개발을 할 경우 webapp 디렉토리에서 정적 리소스를 담당하기에 바로바로 화면 갱신을 하여 확인할 수 있었습니다. - 그러나 SpringBoot에서는 resources 디렉토리에서 정적 리소스를 관리하기에 변경을 확인하기 위해서는 톰캣같은 WAS를 재시작 해야 합니다. 위와 같이 정적 리소스 변경을 확인하기 위해서 매번 서버를 재시작하는 것은 너..

Servlet servlet은 톰캣 위에서 동작하는 java 프로그램입니다. 더 정확히 말하자면 servlet 이 초기화 되는 과정을 보면 됩니다. 여기 에 의하면, 서블릿 초기화는 다음과 같은 과정을 거칩니다. 톰캣과 같은 WAS 가 java 파일을 컴파일해서 Class로 만들고 메모리에 올려 Servlet 객체를 만들게 되고 이 Servlet 객체는 doPost, doGet을 통해 요청에 응답합니다. 초기화 과정을 더 자세히 보면 init, Service, destory 이런 콜백이 각 시점에 불리는걸 볼 수 있지요. init은 서블릿이 메모리에 로드 될때 실행됩니다. destory는 마찬가지로 언로드되기 전에 수행되는 콜백이구요. service 메소드는 HTTP Method 타입에 따라 doGet ..
웹 서버(Web Server) 웹을 서비스하는 컴퓨터 웹 페이지는 HTML이므로 웹 서버는 HTML 파일들을 모아놓고 서비스하는 컴퓨터 모든 컴퓨터는 서버가 될 수 있지만 컴퓨터를 웹 서버로 만들기 위해서는 웹 서버 프로그램을 설치해야 한다(PWS[Personal Web Server], IIS, Apache 등) 웹 서버 종류 Windows: IIS, PWS, httpds, NCSA Unix, Linux: Apache, NCSA Mac: MacHTTP 웹 애플리케이션 웹을 기반으로 실행되는 애플리케이션을 일컫는다 웹 브라우저에서 웹 서버에 서비스를 요청하고 웹 서버에서 웹 애플리케이션 서버(WAS)에 요청을 하고 WAS는 DB에 가서 처리를 한 뒤 결과를 웹 서버에 전송하고 웹 서버가 웹 브라우저에 다시..
보호되어 있는 글입니다.
보호되어 있는 글입니다.

1. 먼저 그림을 클릭하면 해당 이미지가 hide 되도록 구현해보겠습니다 fileMngSys_admin.js $(document).ready(function() { draw_html_view_page(); draw_image_container(); fn_control_mouse(); $("#button1").click(function() { alert("버튼1을 누르셨습니다."); }); }); // html을 읽어서 사용자페이지에 출력 function draw_html_view_page() { var html_view_page = ""; html_view_page = 'uploadFile/sample.html'; $('td[id="html_view_page"]').load(html_view_page);..

이번 실습에서는 마우스 우클릭을 차단하는 기능을 구현해 보도록 하겠습니다. 마우스 우클릭 및 드래그 방지를 하기위해서는 css, javascript 로 다양하게 막을 수 있습니다. body 태그에 속성을 변경해서 우클릭, 드래그의 방지하도록 구현해보도록 하겠습니다. 1. body 태그에 속성을 변경 contextmenu="return false" 우클릭 방지 ondragstart="return false" 드래그 방지 onselectstart="return false" 선택 방지 테스트결과 우클릭, 드래그가 차단된 것을 확인할 수 있습니다. 하지만 javascript로 작성할 시 알툴바 등 특정 어플리케이션을 이용하면 우클릭금지가 해제될 수 있습니다. 따라서 jQuery를 이용한 소스로 변경해주도록 하겠..

이번 실습에서는 특정경로에 있는 파일명을 읽어오는 기능을 구현해보도록 하겠습니다. fileMngSys_admin.js DispatcherServlet.java admin_WebSourcePage.jsp admin_WebSourcePage.jsp 에서 EL/JSTL을 이용하여, 세션에 담겨진채 넘겨받은 데이터를 for문으로 출력해주면 됩니다. 하지만 이번 실습에서는 Ajax를 이용하여 동적으로 이미지를 로딩하도록 바로 구현해보도록 하겠습니다. fileMngSys_admin.js DispatcherServlet.java DispatcherServlet를 경유하도록 작성할 수도 있지만 이번 실습에서는 javascript단에서 처리하도록 구현할 것이므로 주석처리하도록 하겠습니다. image.json admin_..