본문 바로가기

분류 전체보기97

Sitemesh 설정, 사용방법 웹페이지의 레이아웃을 효율적으로 처리할 수 있게 도와주는 프레임워크이다. 디자인 패턴은 여러개가 있는데 Sitemesh는 Decorator 패턴을 사용한다. 내가아는 레이아웃 프레임워크는 Sitemesh, Tiles가 있다 Tiles (타일즈) 는 Composite View Pattern 을 사용한다. 부모 뷰와 자식 뷰들을 전체와 부분 관계로 나타낸다. 모든 뷰는 자신보다 작은 부분들의 집합이며 여러 뷰에서 생기는 중복 코드를 감소시키는 역할을 한다. 각각의 뷰들 사이의 일관성을 높여 유지보수와 제어를 수월하게 할 수 있도록 한다. Sitemesh는 Decorator Pattern 을 사용한다. 웹서버로부터 웹브라우저로 제공되는 원본 컨텐츠를 파싱하고, 컨텐츠로부터 속성과 데이타를 추출하여 최종 결과물.. 2022. 9. 22.
Postgresql With Recursive, UNION ALL 사용한 계층형 쿼리 Postgresql은 WITH RECURSIVE 구문으로 재귀쿼리로 사용가능하며 계층형 쿼리로 만들때 많이 사용한다. with recursive recursive_name [(column1,...)] as ( -- initial query (처음 호출하는 쿼리) SELECT [(column1, ...)] UNION [ALL] -- recursive query (재귀 쿼리) 반복되는 부분 SELECT [(column1, ...)] FROM recursive_name [WHERE] ) -- parent query SELECT * FROM recursive_name 이건 내 개인 프로젝트에서 사용하는 답글 기능을 추가한 댓글 리스트를 보여주는 쿼리다. WITH RECURSIVE cte AS ( SELECT a.. 2022. 9. 22.
제이쿼리 특정 단어로 시작하는 객체 찾아오기 일반 선택자 $(.class) = 클래스 선택자 $(#id) = id 선택자 $(input:[name='name 값']) $("[id^=faq_]").click(function(){ if($(this).children().hasClass('btn_open')){ $(this).next().show(); // next() 선택한 요소의 다음 요소를 선택합니다. $(this).children().removeClass('btn_open'); $(this).children().addClass('btn_fold'); }else{ $(this).next().hide(); $(this).children().removeClass('btn_fold'); $(this).children().addClass('btn_open.. 2022. 9. 21.
자바스크립트 데이터 속성 'data-' & 제이쿼리로 데이터 가공 특정한 데이터를 dom 요소에 저장하는 방법 여러 데이터를 동시에 사용할수도 있고 다양하게 데이터를 저장 할 수 있습니다. 제이쿼리에서는 이런식으로 데이터를 받을 수 있다. console.log( "attr :", $("#test").attr('data-code')); // attr : 200 console.log( "data :", $("#test").data('code')); // data : 200 console.log( "attr :", $("#test").attr('data-test')); // attr : test console.log( "data :", $("#test").data('test')); // data : test 자바스크립트에서 데이터를 수정할수도 있습니다. 그러나 이경우에는 d.. 2022. 9. 19.