개발 127

[JAVA] 재귀 기초 - 팩토리얼 (Factorial)

오랜만에 재귀 문제를 풀다보니 헷갈려져서 정리한번 해보겠음.재귀 중에 가장 쉬운 팩토리얼부터.. 1. 재귀함수란? 함수 내에서 자기 자신을(함수)를 계속적으로 콜 하면서 풀어가는 방식이다.스택(Stack)이라고 생각할 수 있다.함수가 콜 되면서 최근에 자신을 부른 원래 함수가 스택에 차곡차곡 쌓이게 됨.중요한건 처음 불려진 함수에서(스택 맨 밑에있는 메소드) return 되는 값이 최종 return 값이 된다 2. 팩토리얼이란? 3! = 3*2*1 = 64! = 4*3*2*1 = 245! = 5*4*3*2*1 = 120 3. 재귀 예제 문제 : 특정 숫자의 팩토리얼 구하기 간단하게 소스 투척 public class Factorial {public static void main(String[] args) ..

[jQuery] Ajax의 흐름과 예제

1. AJAX(Asynchronous Javascript and XML)란 무엇인가? Ajax의 예를들면, 네이버나 다음같은 포털사이트에 가보면, 메인페이지에서 뉴스 등 밑에 요런 버튼을 눌렀을 때 페이지가 Reloading 되지 않고 뜨는걸 볼 수있다. 보통 웹의 흐름에서는 새로운 URL로 호출 되면서 페이지가 새로 뿌려지지만,AJAX를 사용하면 일부만을 로드해올 수 있는 것이다.이름처럼 비동기 통신을 통해서. 2. 어떤 원리이고 흐름인가? 보통 웹사이트 들어갈 때 어떻게 들어가는가?브라우저 위에 주소창에 URL을 쓰고 들어간다. 그러면 브라우저가 그 URL(서버)로 연결시켜준다.서버에서 받아온 데이터들을 브라우저가 받아서 파싱해서 뿌려준다. 이게 보통 웹의 흐름이라면, AJAX는 AJAX ..

개발/Javascript 2013.06.14

listener를 사용한 servlet 객체 공유하는 법

초기화 파라미터로 쓸 수 있는것은 String 밖에 없기 때문에, 객체를 초기화 파라미터로 사용하기 위해서는 Listener를 써야한다. 여러 서블릿간에 특정 객체를 공유할 때 다음과 같이한다. (서블릿마다 객체를 각각 생성하지 않는) 1. web.xml 에서 Servlet과 Listener 설정 First FirstServlet Second SecondServlet ContextListener 2. 리스너 (ContextListener.java) 웹 어플리케이션이 생성될 때 발생하는 이벤트를 처리하는 리스너 : ServletContextListener public class ContextListener implements ServletContextListener { public void contextI..

개발/JAVA 2013.06.11

Flash 위에 게시판 올리는 법

웹디자인 공부하던 시절에 통플래시 홈피를 만들었는데자바스크립트를 몰라서 게시판을 못얹었었다.그때 고생이 생각나서, 웹디자이너분들을 위해 정리해본다. 1. Flash에서 버튼에 Action주기 게시판 버튼에(타임라인에 들어가지 않게 조심) F9를 눌러 action을 준다. on(release) { getURL("Javascript:showHideBtn('board','show')"); } 게시판 이외에 버튼 모두에 다음 Action을 준다.(다른 버튼을 누를 때는 게시판이 보이지 않아야 하므로) on(release) { getURL("Javascript:showHideBtn('board','hide')"); } 2. HTML 페이지 플래시를 html 페이지에 로드시킨 후, 게시판이 들어갈 아이프레임을 만든..

개발/Javascript 2013.04.30

[tiles] 기본개념 - layout 설정 및 view 호출 방법

Tiles는 웹화면을 각 영역으로 나눠서, 템플릿을 구성하기 쉽게해주는 프레임워크이다. tiles를 사용하기 위해서는, xml 설정파일에 뷰를 렌더링 하게 될 때, tiles를 통해 렌더링 하겠다고 설정해야한다. head (head.jsp) body (view.jsp) 분홍색 영역이 웹페이지 layout이고,head와 body영역으로 나누었을 때, 서로 다른 jsp 파일로 한 레이아웃을 구성한다. head처럼 자주 바뀌지 않는 영역은 내비두고, body처럼 내용이 바뀔 부분만 다른 jsp로 교체하기 용이하다.frame 태그처럼. 간단한 예제를 보자. 1. tiles.xml (레이아웃에 대한 설정) tiles에는 상속 기능이 있다. 부모 layout에서 head영역은 기본으로 head.jsp를, body영..

개발/ETC 2013.04.30

jqGrid] 동적으로 그리드 나타내기

아래처럼 main그리드가 존재한다. 맨 오른쪽 버튼을 누를 때, 그 행에 대한 서브그리드가 나타나도록 할 것이다. 이 것을 구현하고 실행해보면, 처음엔 아래에 서브그리드가 잘 나타나지만 다른 버튼을 누르면 동작하지 않는다. 그 이유는 jqGrid 특성상 그리드가 한번 그려지고 나면 더이상 새로 그려지지 않기 때문이다.그래서 꼼수를 써야하는데, 방법은 아래와 같다.(2번과 3번이 핵심) 1. main Grid의 complete 함수 추가 메인그리드가 다 그려지고 난 뒤, 서브그리드를 호출할 버튼을 만드는 것이다. gridComplete:function(){var ids = jQuery("#t").jqGrid('getDataIDs');for(var i=0; i";jQuery("#t").jqgrid('setR..

개발/Javascript 2013.04.30

[iBatis/myBatis] #와 $의 차이점

1. #는 쿼리가 수행될 때, 다음과 같이 된다 SELECT * FROM USER WHERE col = ? parameter : [값] ?에 bind된 값이 들어가게 된다. 이 쿼리의 컴파일 된 내용을 재사용 할 수 있고, 파라미터에 따라 대입해주므로 효율적이다.내부적으로 preparedStatement 객체에서 ? 에 들어갈 파라미터의 값을 set 해줌으로써 사용이 된다. * preparedStatement는 한번 수행한 쿼리를 캐싱하는 객체 사용 용도 >> #일 경우, 값에 사용한다. myBatis : 컬럼명 = #{값} iBatis : 컬럼명 = #값# * 쿼리에 작은 따옴표가 붙게 된다. 2. $는 쿼리가 수행될 때, 다음과 같이 된다 SELECT * FROM USERWHERE col = 값 값이..

개발/Database 2013.04.11

자바스크립트 함수 형태, 클래스처럼 쓰는 법

자바스크립트의 함수는 객체의 속성을 갖고있다. 모든 함수 객체는 prototype이라는 프로퍼티를 갖고 있고, 이 속성의 값은 함수 자체를 값으로 갖는 constructor라는 속성이 있는 객체다. 객체이긴 하지만 호출을 할 수 있다는 특징이 있다. 즉, 아래처럼 aaa에 함수 자체를 갖고있을 수 있단 말이다. var aaa = function a {//구현} 자바스크립트 함수는 3가지 형태가 있다. 자바스크립트는 클래스가 없는데, 클래스처럼 사용할 수 있는 법이 있다.예제~ GOGO! 1. 가장 많이 쓰는 일반 함수 형태 function func_name() { // 구현.... } function foo() { // 구현.... } HTML 코드에서 부를 때는 onclick = func_name();..

개발/Javascript 2013.04.09