success --> suceess 로 쓰고 무지 헤맴... ㅡㅡ;
'이것저것 > 낙서장' 카테고리의 다른 글
회사 이름 바뀌는중... (0) | 2005.04.04 |
---|---|
5800 히트 이벤트!!! (3) | 2005.04.01 |
5700 히트 이벤트!!! (3) | 2005.03.28 |
5600 히트 이벤트!!! (2) | 2005.03.23 |
5570 히트 이벤트!!! (2) | 2005.03.21 |
success --> suceess 로 쓰고 무지 헤맴... ㅡㅡ;
회사 이름 바뀌는중... (0) | 2005.04.04 |
---|---|
5800 히트 이벤트!!! (3) | 2005.04.01 |
5700 히트 이벤트!!! (3) | 2005.03.28 |
5600 히트 이벤트!!! (2) | 2005.03.23 |
5570 히트 이벤트!!! (2) | 2005.03.21 |
Spring 가지고 놀다보니... JdbcDaoSupport 가 눈에 띤다..
자세한 내용은 Spring doc 를 참고하면 되고... 오늘 신경 거슬리게 만든것 하나..
Select Count(*) from tbl_xxx <-- 이 쿼리 날려야 하는데..
도큐먼트에 SqlFunction 이라는 넘을 쓰면 된단다..
해보니... 잘 된다 ^^
그런데!!!!!!
Select Count(*) from tbl_xxx where xx > ? and yy < ?
이넘~!~! 안된다 ㅜㅜ
왜 안되지??
파람 넘겨주는 데가 없다.. 아무래도 PreparedStatement 를 생성하는것 같지 않다.
그래서리... API 찾아보니.. 허거걱...
queryForInt(String arg0, Object arg1) <-- 요런넘이 있네 ^^
Object[] params = new Object[]{new Integer(xx), new Integer(yy)};
return getJdbcTemplate().queryForInt(query, params);
간단하게 끝남...
그냥 JDBC 코딩 하는것 보다.. 무지 편리함..
Transaction 처리도.. 설정에서 끝남...
<!-- Transaction Manager -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource"><ref bean="dataSource"/></property>
</bean>
<bean id="xxxService"
class = "org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager"><ref local="transactionManager" /></property>
<property name="target"><ref local="xxxServiceTarget" /></property>
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="create*">PROPAGATION_REQUIRED,-xxxException</prop>
<prop key="read*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
이런식으로... 트랜잭션 매니저 셋팅하고... 프락시 셋팅하고..
설정에서... - 표시로 익셉션을 발생시키면.. 된다..
근데.. DataSource 를 반드시 이용해야 하는데..
테스트 할때 proxool 을 사용했다...
데이터 소스 없다 ㅡㅡ
소스포지 가서 proxool cvs 보니... dev 에 테스트 있네 ㅡㅡ
소스 받아서 컴팔하고 해서 성공..
으아... 짱난ㄴ다... 삽질삽질 ... (0) | 2005.05.12 |
---|---|
[link]spring ide (0) | 2005.04.27 |
[spring] WebApplicationContext 가져올때 .... (0) | 2005.03.05 |
[struts] Validator 기초.. (0) | 2005.02.25 |
[spring] LocalSessionFactoryBean 설정에서... (0) | 2005.02.24 |
5800 히트 이벤트!!! (3) | 2005.04.01 |
---|---|
오타쟁이.. (0) | 2005.03.30 |
5600 히트 이벤트!!! (2) | 2005.03.23 |
5570 히트 이벤트!!! (2) | 2005.03.21 |
5500 히트 이벤트!!! (5) | 2005.03.18 |
오타쟁이.. (0) | 2005.03.30 |
---|---|
5700 히트 이벤트!!! (3) | 2005.03.28 |
5570 히트 이벤트!!! (2) | 2005.03.21 |
5500 히트 이벤트!!! (5) | 2005.03.18 |
컴터 속도 빠르게~~~ (2) | 2005.03.11 |
자바싱글사인온 .. 오오옷~! 함 해봐야쥐 (0) | 2005.04.13 |
---|---|
[펌] lucene index browser 오옷~ 00 (2) | 2005.03.31 |
[링크]자바로 만든 블로그 (2) | 2005.02.11 |
간단한 trackback ping 보내는 JSP .. (0) | 2005.02.04 |
[펌] Trackback CGI 설계 (0) | 2005.02.03 |
5700 히트 이벤트!!! (3) | 2005.03.28 |
---|---|
5600 히트 이벤트!!! (2) | 2005.03.23 |
5500 히트 이벤트!!! (5) | 2005.03.18 |
컴터 속도 빠르게~~~ (2) | 2005.03.11 |
5400 히트 이벤트!!! (2) | 2005.03.10 |
5600 히트 이벤트!!! (2) | 2005.03.23 |
---|---|
5570 히트 이벤트!!! (2) | 2005.03.21 |
컴터 속도 빠르게~~~ (2) | 2005.03.11 |
5400 히트 이벤트!!! (2) | 2005.03.10 |
[PHP Blog] 설치형 블로그.. 블로그 밈 .. (0) | 2005.03.10 |
아래 표는 Latin-1(ISO-8859-1)의 8비트 문자를 위한 문자 개체 레퍼런스, 10진수 문자 레퍼런스, 16진수 문자 레퍼런스입니다. 또한 사용중인 브라우저에서 어떻게 나타나는 지를 보여줍니다. 문자와 관련된 자세한 정보는 유니코드 협회(Unicode Consortium)의 홈페이지에서 볼 수 있습니다.
브라우저는 10진수 문자 레퍼런스를 가장 잘 지원합니다. 단, 엑센트가 표시된 문자(10진수 192-214, 216-246, 248-255)는 잘 지원되지 않을 수 있습니다.
맥킨토시 브라우저는 14개의 Latin-1 문자를 정확하지 않게 출력할 수 있습니다. 이러한 문자들은 10진수 166, 178, 179, 185, 188, 189, 190, 208, 215, 221, 222, 240, 253, 254입니다. 참조: ISO-8859-1 and the Mac platform
문자 | 개체 | 10진수 | 16진수 | 브라우저 출력결과 | ||
개체 | 10진수 | 16진수 | ||||
띄어쓰기 공간 | |   |   |   | ||
상하반전 느낌표 | ¡ | ¡ | ¡ | ¡ | ¡ | ¡ |
센트(cent) | ¢ | ¢ | ¢ | ¢ | ¢ | ¢ |
파운드(pound) | £ | £ | £ | £ | £ | £ |
통화(currency) | ¤ | ¤ | ¤ | ¤ | ¤ | ¤ |
엔화(yen) | ¥ | ¥ | ¥ | ¥ | ¥ | ¥ |
끊어진 세로 막대기 | ¦ | ¦ | ¦ | ¦ | ¦ | ¦ |
섹션(section) 부호 | § | § | § | § | § | § |
분음부호(diaeresis) | ¨ | ¨ | ¨ | ¨ | ¨ | ¨ |
저작권(copyright) 부호 | © | © | © | © | © | © |
여성 표시자 | ª | ª | ª | ª | ª | ª |
이중 꺽음 좌측 인용부호 | « | « | « | « | « | « |
부호 아님 | ¬ | ¬ | ¬ | ¬ | ¬ | ¬ |
하이픈 | ­ | ­ | ­ | | | ­ |
등록 부호 | ® | ® | ® | ® | ® | ® |
윗 줄 | ¯ | ¯ | ¯ | ¯ | ¯ | ¯ |
도(degree) | ° | ° | ° | ° | ° | ° |
플러스 마이너스 부호 | ± | ± | ± | ± | ± | ± |
윗첨자 2 | ² | ² | ² | ² | ² | ² |
윗첨자 3 | ³ | ³ | ³ | ³ | ³ | ³ |
고음 악센트 | ´ | ´ | ´ | ´ | ´ | ´ |
마이크로 | µ | µ | µ | µ | µ | µ |
단락 표시 | ¶ | ¶ | ¶ | ¶ | ¶ | ¶ |
중간점 | · | · | · | · | · | · |
갈고리형 부호 | ¸ | ¸ | ¸ | ¸ | ¸ | ¸ |
윗첨자 1 | ¹ | ¹ | ¹ | ¹ | ¹ | ¹ |
남성 표시자 | º | º | º | º | º | º |
이중 꺽음 우측 인용부호 | » | » | » | » | » | » |
1/4 | ¼ | ¼ | ¼ | ¼ | ¼ | ¼ |
1/2 | ½ | ½ | ½ | ½ | ½ | ½ |
3/4 | ¾ | ¾ | ¾ | ¾ | ¾ | ¾ |
상하반전 물음표 | ¿ | ¿ | ¿ | ¿ | ¿ | ¿ |
라틴 대문자 A (저음 악센트) | À | À | À | À | À | À |
라틴 대문자 A (고음 악센트) | Á | Á | Á | Á | Á | Á |
라틴 대문자 A (곡절 악센트) | Â | Â | Â | Â | Â | Â |
라틴 대문자 A (틸데 악센트) | Ã | Ã | Ã | Ã | Ã | Ã |
라틴 대문자 A (분음 부호) | Ä | Ä | Ä | Ä | Ä | Ä |
라틴 대문자 A (원 부호) | Å | Å | Å | Å | Å | Å |
라틴 대문자 AE | Æ | Æ | Æ | Æ | Æ | Æ |
라틴 대문자 C | Ç | Ç | Ç | Ç | Ç | Ç |
라틴 대문자 E (저음 악센트) | È | È | È | È | È | È |
라틴 대문자 E (고음 악센트) | É | É | É | É | É | É |
라틴 대문자 E (곡절 악센트) | Ê | Ê | Ê | Ê | Ê | Ê |
라틴 대문자 E (분음 부호) | Ë | Ë | Ë | Ë | Ë | Ë |
라틴 대문자 I (저음 악센트) | Ì | Ì | Ì | Ì | Ì | Ì |
라틴 대문자 I (고음 악센트) | Í | Í | Í | Í | Í | Í |
라틴 대문자 I (곡절 악센트) | Î | Î | Î | Î | Î | Î |
라틴 대문자 I (분음 부호) | Ï | Ï | Ï | Ï | Ï | Ï |
라틴 대문자 ETH | Ð | Ð | Ð | Ð | Ð | Ð |
라틴 대문자 N (틸데 악센트) | Ñ | Ñ | Ñ | Ñ | Ñ | Ñ |
라틴 대문자 O (저음 악센트) | Ò | Ò | Ò | Ò | Ò | Ò |
라틴 대문자 O (고음 악센트) | Ó | Ó | Ó | Ó | Ó | Ó |
라틴 대문자 O (곡절 악센트) | Ô | Ô | Ô | Ô | Ô | Ô |
라틴 대문자 O (틸데 악센트) | Õ | Õ | Õ | Õ | Õ | Õ |
라틴 대문자 O (분음 부호) | Ö | Ö | Ö | Ö | Ö | Ö |
곱셈 부호 | × | × | × | × | × | × |
라틴 대문자 O (슬래쉬) | Ø | Ø | Ø | Ø | Ø | Ø |
라틴 대문자 U 저음 악센트 | Ù | Ù | Ù | Ù | Ù | Ù |
라틴 대문자 U (고음 악센트) | Ú | Ú | Ú | Ú | Ú | Ú |
라틴 대문자 U (곡절 악센트) | Û | Û | Û | Û | Û | Û |
라틴 대문자 U (분음 부호) | Ü | Ü | Ü | Ü | Ü | Ü |
라틴 대문자 Y (고음 악센트) | Ý | Ý | Ý | Ý | Ý | Ý |
라틴 대문자 THORN | Þ | Þ | Þ | Þ | Þ | Þ |
라틴 소문자 ess-zed | ß | ß | ß | ß | ß | ß |
라틴 소문자 a (저음 악센트) | à | à | à | à | à | à |
라틴 소문자 a (고음 악센트) | á | á | á | á | á | á |
라틴 소문자 a (곡절 악센트) | â | â | â | â | â | â |
라틴 소문자 a (틸데 악센트) | ã | ã | ã | ã | ã | ã |
라틴 소문자 a (분음 부호) | ä | ä | ä | ä | ä | ä |
라틴 소문자 a (원 부호) | å | å | å | å | å | å |
라틴 소문자 ae | æ | æ | æ | æ | æ | æ |
라틴 소문자 c (갈고리형 부호) | ç | ç | ç | ç | ç | ç |
라틴 소문자 e (저음 악센트) | è | è | è | è | è | è |
라틴 소문자 e (고음 악센트) | é | é | é | é | é | é |
라틴 소문자 e (곡절 악센트) | ê | ê | ê | ê | ê | ê |
라틴 소문자 e (분음 부호) | ë | ë | ë | ë | ë | ë |
라틴 소문자 i (저음 악센트) | ì | ì | ì | ì | ì | ì |
라틴 소문자 i (고음 악센트) | í | í | í | í | í | í |
라틴 소문자 i (곡절 악센트) | î | î | î | î | î | î |
라틴 소문자 i (분음 부호) | ï | ï | ï | ï | ï | ï |
라틴 소문자 eth | ð | ð | ð | ð | ð | ð |
라틴 소문자 n (틸데 악센트) | ñ | ñ | ñ | ñ | ñ | ñ |
라틴 소문자 o (저음 악센트) | ò | ò | ò | ò | ò | ò |
라틴 소문자 o (고음 악센트) | ó | ó | ó | ó | ó | ó |
라틴 소문자 o (곡절 악센트) | ô | ô | ô | ô | ô | ô |
라틴 소문자 o (틸데 악센트) | õ | õ | õ | õ | õ | õ |
라틴 소문자 o (분음 부호) | ö | ö | ö | ö | ö | ö |
나눗셈 부호 | ÷ | ÷ | ÷ | ÷ | ÷ | ÷ |
라틴 소문자 o (슬래쉬) | ø | ø | ø | ø | ø | ø |
라틴 소문자 u (저음 악센트) | ù | ù | ù | ù | ù | ù |
라틴 소문자 u (고음 악센트) | ú | ú | ú | ú | ú | ú |
라틴 소문자 u (곡절 악센트) | û | û | û | û | û | û |
라틴 소문자 u (분음 부호) | ü | ü | ü | ü | ü | ü |
라틴 소문자 y (고음 악센트) | ý | ý | ý | ý | ý | ý |
라틴 소문자 thorn | þ | þ | þ | þ | þ | þ |
라틴 소문자 y (분음 부호) | ÿ | ÿ | ÿ | ÿ | ÿ | ÿ |
문자 | 개체 | 10진수 | 16진수 | 브라우저 출력결과 | ||
Entity | Decimal | Hex | ||||
라틴 소문자 f ( 함수, 플로린 ) | ƒ | ƒ | ƒ | ƒ | ƒ | ƒ |
그리스어 대문자 알파 | Α | Α | Α | Α | Α | Α |
그리스어 대문자 베타 | Β | Β | Β | Β | Β | Β |
그리스어 대문자 감마 | Γ | Γ | Γ | Γ | Γ | Γ |
그리스어 대문자 델타 | Δ | Δ | Δ | Δ | Δ | Δ |
그리스어 대문자 엡실론 | Ε | Ε | Ε | Ε | Ε | Ε |
그리스어 대문자 제타 | Ζ | Ζ | Ζ | Ζ | Ζ | Ζ |
그리스어 대문자 에타 | Η | Η | Η | Η | Η | Η |
그리스어 대문자 세타 | Θ | Θ | Θ | Θ | Θ | Θ |
그리스어 대문자 아이오타 | Ι | Ι | Ι | Ι | Ι | Ι |
그리스어 대문자 카파 | Κ | Κ | Κ | Κ | Κ | Κ |
그리스어 대문자 람다 | Λ | Λ | Λ | Λ | Λ | Λ |
그리스어 대문자 뮤 | Μ | Μ | Μ | Μ | Μ | Μ |
그리스어 대문자 뉴 | Ν | Ν | Ν | Ν | Ν | Ν |
그리스어 대문자 키 | Ξ | Ξ | Ξ | Ξ | Ξ | Ξ |
그리스어 대문자 오미크론 | Ο | Ο | Ο | Ο | Ο | Ο |
그리스어 대문자 피 | Π | Π | Π | Π | Π | Π |
그리스어 대문자 로 | Ρ | Ρ | Ρ | Ρ | Ρ | Ρ |
그리스어 대문자 시그마 | Σ | Σ | Σ | Σ | Σ | Σ |
그리스어 대문자 타우 | Τ | Τ | Τ | Τ | Τ | Τ |
그리스어 대문자 입실론 | Υ | Υ | Υ | Υ | Υ | Υ |
그리스어 대문자 파이 | Φ | Φ | Φ | Φ | Φ | Φ |
그리스어 대문자 카이 | Χ | Χ | Χ | Χ | Χ | Χ |
그리스어 대문자 프사이 | Ψ | Ψ | Ψ | Ψ | Ψ | Ψ |
그리스어 대문자 오메가 | Ω | Ω | Ω | Ω | Ω | Ω |
그리스어 소문자 알파 | α | α | α | α | α | α |
그리스어 소문자 베타 | β | β | β | β | β | β |
그리스어 소문자 감마 | γ | γ | γ | γ | γ | γ |
그리스어 소문자 델타 | δ | δ | δ | δ | δ | δ |
그리스어 소문자 엡실론 | ε | ε | ε | ε | ε | ε |
그리스어 소문자 제타 | ζ | ζ | ζ | ζ | ζ | ζ |
그리스어 소문자 에타 | η | η | η | η | η | η |
그리스어 소문자 세타 | θ | θ | θ | θ | θ | θ |
그리스어 소문자 아이오타 | ι | ι | ι | ι | ι | ι |
그리스어 소문자 카파 | κ | κ | κ | κ | κ | κ |
그리스어 소문자 람다 | λ | λ | λ | λ | λ | λ |
그리스어 소문자 뮤 | μ | μ | μ | μ | μ | μ |
그리스어 소문자 뉴 | ν | ν | ν | ν | ν | ν |
그리스어 소문자 키 | ξ | ξ | ξ | ξ | ξ | ξ |
그리스어 소문자 오미크론 | ο | ο | ο | ο | ο | ο |
그리스어 소문자 파이 | π | π | π | π | π | π |
그리스어 소문자 로 | ρ | ρ | ρ | ρ | ρ | ρ |
그리스어 소문자 시그마 (단어 끝) | ς | ς | ς | ς | ς | ς |
그리스어 소문자 시그마 | σ | σ | σ | σ | σ | σ |
그리스어 소문자 타우 | τ | τ | τ | τ | τ | τ |
그리스어 소문자 입실론 | υ | υ | υ | υ | υ | υ |
그리스어 소문자 파이 | φ | φ | φ | φ | φ | φ |
그리스어 소문자 키 | χ | χ | χ | χ | χ | χ |
그리스어 소문자 프사이 | ψ | ψ | ψ | ψ | ψ | ψ |
그리스어 소문자 오메가 | ω | ω | ω | ω | ω | ω |
그리스어 소문자 세타 심볼 | ϑ | ϑ | ϑ | ϑ | ϑ | ϑ |
그리스어 웁실론 고리형 심볼 | ϒ | ϒ | ϒ | ϒ | ϒ | ϒ |
그리스어 파이 심볼 | ϖ | ϖ | ϖ | ϖ | ϖ | ϖ |
불렛(bullet) = 검정색 작은 원 | • | • | • | • | • | • |
수평점 | … | … | … | … | … | … |
프라임 (분, 피트) | ′ | ′ | ′ | ′ | ′ | ′ |
이중 프라임 (초, 인치) | ″ | ″ | ″ | ′ | ″ | ″ |
윗 선 | ‾ | ‾ | ‾ | ‾ | ‾ | ‾ |
슬래쉬 (분수) | ⁄ | ⁄ | ⁄ | ⁄ | ⁄ | ⁄ |
대문자 서체 P | ℘ | ℘ | ℘ | ℘ | ℘ | ℘ |
대문자 블랙활자 I | ℑ | ℑ | ℑ | ℑ | ℑ | ℑ |
대문자 블랙활자 R | ℜ | ℜ | ℜ | ℜ | ℜ | ℜ |
트레이드 마크 (trade mark) | ™ | ™ | ™ | ™ | ™ | ™ |
알레프(alef) 심볼 | ℵ | ℵ | ℵ | ℵ | ℵ | ℵ |
좌향 화살표 | ← | ← | ← | ← | ← | ← |
상향 화살표 | ↑ | ↑ | ↑ | ↑ | ↑ | ↑ |
우향 화살표 | → | → | → | → | → | → |
하향 화살표 | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ |
좌우향 화살표 | ↔ | ↔ | ↔ | ↔ | ↔ | ↔ |
꺽인 화살표 | ↵ | ↵ | ↵ | ↵ | ↵ | ↵ |
큰 좌향 화살표 | ⇐ | ⇐ | ⇐ | ← | ⇐ | ⇐ |
큰 상향 화살표 | ⇑ | ⇑ | ⇑ | ↑ | ⇑ | ⇑ |
큰 우향 화살표 | ⇒ | ⇒ | ⇒ | → | ⇒ | ⇒ |
큰 하향 화살표 | ⇓ | ⇓ | ⇓ | ↓ | ⇓ | ⇓ |
큰 좌우향 화살표 | ⇔ | ⇔ | ⇔ | ↔ | ⇔ | ⇔ |
전체에게 | ∀ | ∀ | ∀ | ∀ | ∀ | ∀ |
부분적 차이 | ∂ | ∂ | ∂ | ∂ | ∂ | ∂ |
그곳에 있음 | ∃ | ∃ | ∃ | ∃ | ∃ | ∃ |
비었음 | ∅ | ∅ | ∅ | ∅ | ∅ | ∅ |
나블라(nabla) | ∇ | ∇ | ∇ | ∇ | ∇ | ∇ |
~ 에 속함 | ∈ | ∈ | ∈ | ∈ | ∈ | ∈ |
~ 에 속하지 않음 | ∉ | ∉ | ∉ | ∉ | ∉ | ∉ |
포함함 | ∋ | ∋ | ∋ | ∋ | ∋ | ∋ |
프로덕트 | ∏ | ∏ | ∏ | ∏ | ∏ | ∏ |
합계 | ∑ | ∑ | ∑ | ∑ | ∑ | ∑ |
뺄셈 부호 | − | − | − | − | − | − |
애스터리스크(asterisk) | ∗ | ∗ | ∗ | ∗ | ∗ | ∗ |
제곱근(square root) | √ | √ | √ | √ | √ | √ |
~ 에 비례 | ∝ | ∝ | ∝ | ∝ | ∝ | ∝ |
무한 | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ |
각도 | ∠ | ∠ | ∠ | ∠ | ∠ | ∠ |
논리 부호 and | ∧ | ∧ | ∧ | ⊥ | ∧ | ∧ |
논리 부호 or | ∨ | ∨ | ∨ | ∨ | ∨ | ∨ |
교집(cap) | ∩ | ∩ | ∩ | ∩ | ∩ | ∩ |
합집(cup) | ∪ | ∪ | ∪ | ∪ | ∪ | ∪ |
인테그랄(integral) | ∫ | ∫ | ∫ | ∫ | ∫ | ∫ |
그러므로 | ∴ | ∴ | ∴ | ∴ | ∴ | ∴ |
틸데 연산자 | ∼ | ∼ | ∼ | ∼ | ∼ | ∼ |
대략 같음 | ≅ | ≅ | ≅ | ≅ | ≅ | ≅ |
거의 같음 | ≈ | ≈ | ≈ | ≈ | ≈ | ≈ |
같지 않음 | ≠ | ≠ | ≠ | ≠ | ≠ | ≠ |
동일함 | ≡ | ≡ | ≡ | ≡ | ≡ | ≡ |
적거나 같음 | ≤ | ≤ | ≤ | ≤ | ≤ | ≤ |
크거나 같음 | ≥ | ≥ | ≥ | ≥ | ≥ | ≥ |
~ 의 부분집합 | ⊂ | ⊂ | ⊂ | ⊂ | ⊂ | ⊂ |
~ 의 상위집합 | ⊃ | ⊃ | ⊃ | ⊃ | ⊃ | ⊃ |
~ 의 부분집합이 아님 | ⊄ | ⊄ | ⊄ | ⊄ | ⊄ | ⊄ |
부분집합이거나 같음 | ⊆ | ⊆ | ⊆ | ⊆ | ⊆ | ⊆ |
상위집합이거나 같음 | ⊇ | ⊇ | ⊇ | ⊇ | ⊇ | ⊇ |
원형 덧셈부호(circled plus) | ⊕ | ⊕ | ⊕ | ⊕ | ⊕ | ⊕ |
원형 곱셉부호(circled times) | ⊗ | ⊗ | ⊗ | ⊗ | ⊗ | ⊗ |
수직 | ⊥ | ⊥ | ⊥ | ⊥ | ⊥ | ⊥ |
점 연산자 | ⋅ | ⋅ | ⋅ | ⋅ | ⋅ | ⋅ |
레프트 실링(left ceiling) | ⌈ | ⌈ | ⌈ | ⌈ | ⌈ | ⌈ |
라이트 실링(right ceiling) | ⌉ | ⌉ | ⌉ | ⌉ | ⌉ | ⌉ |
레프트 플로어(left floor) = APL downstile | ⌊ | ⌊ | ⌊ | ⌊ | ⌊ | ⌊ |
라이트 플로어(right floor) | ⌋ | ⌋ | ⌋ | ⌋ | ⌋ | ⌋ |
좌측 꺽인 괄호 | ⟨ | 〈 | 〈 | 〈 | 〈 | 〈 |
우측 꺽인 괄호 | ⟩ | 〉 | 〉 | 〉 | 〉 | 〉 |
마름모 | ◊ | ◊ | ◊ | ◊ | ◊ | ◊ |
블랙 스페이드 | ♠ | ♠ | ♠ | ♠ | ♠ | ♠ |
블랙 클럽 | ♣ | ♣ | ♣ | ♣ | ♣ | ♣ |
블랙 하트 | ♥ | ♥ | ♥ | ♥ | ♥ | ♥ |
블랙 다이아몬드 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |
문자 | 개체 | 10진수 | 16진수 | 브라우저 출력결과 | ||
개체 | 10진수 | 16진수 | ||||
인용부호 (프로그램 인용부호) | " | " | " | " | " | " |
앰퍼샌드 (ampersand) | & | & | & | & | & | & |
부등호(작음) | < | < | < | < | < | < |
부등호(큼) | > | > | > | > | > | > |
라틴 대문자 OE | Œ | Œ | Œ | Œ | Œ | Œ |
라틴 소문자 oe | œ | œ | œ | œ | œ | œ |
라틴 대문자 S (캐론 악센트) | Š | Š | Š | Š | Š | Š |
라틴 소문자 s (캐론 악센트) | š | š | š | š | š | š |
라틴 대문자 Y (분음부호) | Ÿ | Ÿ | Ÿ | ÿ | Ÿ | Ÿ |
곡절 악센트 | ˆ | ˆ | ˆ | ˆ | ˆ | ˆ |
틸데 악센트 | ˜ | ˜ | ˜ | ˜ | ˜ | ˜ |
엔 스페이스 |   |   |   |   | ||
엠 스페이스 |   |   |   |   | ||
씬 스페이스 |   |   |   |   | ||
비결합자 | ‌ | ‌ | ‌ | | | ‌ |
결합자 | ‍ | ‍ | ‍ | | | ‍ |
우향 표시 | ‎ | ‎ | ‎ | | | ‎ |
좌향 표시 | ‏ | ‏ | ‏ | | | ‏ |
엔 대시 | – | – | – | – | – | – |
엠 대시 | — | — | — | — | — | — |
작은 따옴표 (좌) | ‘ | ‘ | ‘ | ‘ | ‘ | ‘ |
작은 따옴표 (우) | ’ | ’ | ’ | ’ | ’ | ’ |
낮은 인용부호 (소) | ‚ | ‚ | ‚ | ‚ | ‚ | ‚ |
큰 따옴표 (좌) | “ | “ | “ | “ | “ | “ |
큰 따옴표 (우) | ” | ” | ” | ” | ” | ” |
낮은 인용부호 (대) | „ | „ | „ | „ | „ | „ |
대거(dagger) | † | † | † | † | † | † |
이중 대거(double dagger) | ‡ | ‡ | ‡ | † | ‡ | ‡ |
퍼밀 부호 (per mille sign) | ‰ | ‰ | ‰ | ‰ | ‰ | ‰ |
좌측 꺽음 인용부호 | ‹ | ‹ | ‹ | ‹ | ‹ | ‹ |
우측 꺽음 인용부호 | › | › | › | › | › | › |
유로화 | € | € | € | € | € | € |
[펌]MSN 친구추가하기... (0) | 2005.04.25 |
---|---|
테이블 내에 form 태그 쓸때.. (5) | 2005.04.22 |
[phpschool 펌] 마지막으로 그림자 레이어, 사이즈 조절도 가능 (0) | 2005.03.16 |
[phpschool 펌] 메모글 중 Iframe 자동조절.. (2) | 2005.03.03 |
[phpschool 펌] iframe 높이 조절 (0) | 2005.03.03 |
글쓴이:후니 | 마지막으로 그림자 레이어, 사이즈 조절도 가능 | 조회수:3004 |
|
테이블 내에 form 태그 쓸때.. (5) | 2005.04.22 |
---|---|
[펌] HTML 엔티티(Entities) (0) | 2005.03.17 |
[phpschool 펌] 메모글 중 Iframe 자동조절.. (2) | 2005.03.03 |
[phpschool 펌] iframe 높이 조절 (0) | 2005.03.03 |
[펌] 브라우저에서 인쇄 미리보기 설정방법 (0) | 2005.02.24 |
컴터가 느려요...
이클립스 띠우면 걍 버벅여요ㅡㅡ
그런데 모니터를 깨끗이 닦으니 조금 빨라졌어요 ^^
밥먹고 심심해서 ㅡㅡ
5570 히트 이벤트!!! (2) | 2005.03.21 |
---|---|
5500 히트 이벤트!!! (5) | 2005.03.18 |
5400 히트 이벤트!!! (2) | 2005.03.10 |
[PHP Blog] 설치형 블로그.. 블로그 밈 .. (0) | 2005.03.10 |
5300 히트 이벤트!!! (3) | 2005.03.08 |
5500 히트 이벤트!!! (5) | 2005.03.18 |
---|---|
컴터 속도 빠르게~~~ (2) | 2005.03.11 |
[PHP Blog] 설치형 블로그.. 블로그 밈 .. (0) | 2005.03.10 |
5300 히트 이벤트!!! (3) | 2005.03.08 |
[삽질] 컴터 껐다 키니까 되냐 ㅡㅡ (0) | 2005.03.04 |
컴터 속도 빠르게~~~ (2) | 2005.03.11 |
---|---|
5400 히트 이벤트!!! (2) | 2005.03.10 |
5300 히트 이벤트!!! (3) | 2005.03.08 |
[삽질] 컴터 껐다 키니까 되냐 ㅡㅡ (0) | 2005.03.04 |
5200 히트 이벤트!!! (5) | 2005.03.02 |
5400 히트 이벤트!!! (2) | 2005.03.10 |
---|---|
[PHP Blog] 설치형 블로그.. 블로그 밈 .. (0) | 2005.03.10 |
[삽질] 컴터 껐다 키니까 되냐 ㅡㅡ (0) | 2005.03.04 |
5200 히트 이벤트!!! (5) | 2005.03.02 |
5100 히트 이벤트!!! (2) | 2005.02.24 |
The documented method of obtaining a reference to the WebApplication context is:
Code: |
WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext(servletContext); |
Unfortunately, this does not work when using the Struts ContextLoaderPlugIn. The workaround is the following:
Code: |
WebApplicationContext webApplicationContext = (WebApplicationContext) servletContext.getAttribute(ContextLoaderPlugIn.SERVLET_CONTEXT_PREFIX); |
Can the ContextLoaderPlugIn be modified to support the documented method? It should be a simple one-line change and would have saved a lot of time.
포럼 보다가.. 가져옴..
[link]spring ide (0) | 2005.04.27 |
---|---|
JdbcTemplate.queryForInt(String arg0, Object arg1) 편리하군 ㅋㅋ (0) | 2005.03.29 |
[struts] Validator 기초.. (0) | 2005.02.25 |
[spring] LocalSessionFactoryBean 설정에서... (0) | 2005.02.24 |
[hibernate]net.sf.hibernate.LazyInitializationException (0) | 2005.02.22 |
<Script>
<!--
function makeSubmit(frm){
frm.target = cmd;
frm.submit();
frm.target = "_self";
}
//-->
</Script>
<iframe name="cmd" style="display:none"></iframe>
<div id='id_1'>
<form 어짜구 저짜구....
<input type="button" ...... onclick="함수">
</form>
</div>
허걱.. 이 코드.. 작동 안됨... 무조건 새창으로 뜸 ㅡㅡ
혹시나 해서...
cmd.location.href 로 해보니.. 넘어가네 ㅡㅡ
왜 안돼지?? 고민하다가.. 메신저 열어보니 몇사람 보인다...
종희씨 한테 물어봤다..
종희씨 : 컴퓨터 리부팅 해보세요...
토네이도 : 네.. 즐 주말여..
그리고 껐다 킴....
된다.. ㅡㅡ;;
아침에는 메세지 큐 만들다가 while 문 안에서 함수하나 잘못 호출 했다가 안깨어 나서 삽질하고..
하루 두번 삽질운동 ^^
[PHP Blog] 설치형 블로그.. 블로그 밈 .. (0) | 2005.03.10 |
---|---|
5300 히트 이벤트!!! (3) | 2005.03.08 |
5200 히트 이벤트!!! (5) | 2005.03.02 |
5100 히트 이벤트!!! (2) | 2005.02.24 |
막판에 정말 대찬 삽질 (0) | 2005.02.18 |
![]() | <iframe id=innerFrame src="board.php" width=700 height=400 frameborder=0 scrolling=0> // iframe에 들어갈페이지 최하단 <script> parent.document.all.innerFrame.width = document.body.scrollWidth; parent.document.all.innerFrame.height = document.body.scrollHeight; </script> ----------------------------------------------- tip&tech 잘찾아보시면 있습니다. |
[펌] HTML 엔티티(Entities) (0) | 2005.03.17 |
---|---|
[phpschool 펌] 마지막으로 그림자 레이어, 사이즈 조절도 가능 (0) | 2005.03.16 |
[phpschool 펌] iframe 높이 조절 (0) | 2005.03.03 |
[펌] 브라우저에서 인쇄 미리보기 설정방법 (0) | 2005.02.24 |
iframe 내부의 내용 가져오기 (0) | 2005.02.01 |
![]() | 질문,광고 등록 절대금지! 질문은 Q&A로 | |||||||||
|
[phpschool 펌] 마지막으로 그림자 레이어, 사이즈 조절도 가능 (0) | 2005.03.16 |
---|---|
[phpschool 펌] 메모글 중 Iframe 자동조절.. (2) | 2005.03.03 |
[펌] 브라우저에서 인쇄 미리보기 설정방법 (0) | 2005.02.24 |
iframe 내부의 내용 가져오기 (0) | 2005.02.01 |
[phpschool 펌] css로 겔러리 리스팅하기 (0) | 2005.01.19 |
5300 히트 이벤트!!! (3) | 2005.03.08 |
---|---|
[삽질] 컴터 껐다 키니까 되냐 ㅡㅡ (0) | 2005.03.04 |
5100 히트 이벤트!!! (2) | 2005.02.24 |
막판에 정말 대찬 삽질 (0) | 2005.02.18 |
5000 히트 이벤트!!! (3) | 2005.02.18 |
‘6개의 열쇠’로 데이터 모델링의 고수가 되자 현업에 종사하는 질문자가 제기한 6개의 주요 질문에 답하는 형식으로 30일간의 여행을 정리하고자 한다. 실전에서 발생하는 데이터 모델의 1:1 관계에 대한 처리 방법과 이력 데이터 모델, 우편번호 데이터 모델에 대한 내용과 오라클 RAC과 배치 처리에 대한 질문과 답변 내용이 포함됐다. 신행정수도 이전 문제로 사회가 온통 떠들썩하다. 수도 이전에 대해 찬성과 반대 여부를 떠나 근본적으로 서울은 조선시대 도시 구조를 이어받아 발전한 곳이다. 도보와 마차가 중심인 조선시대의 도시 설계가 되어 있던 곳에 현대 문명을 담아내고자 이리 고치고 저리 고치면서 서울은 난잡한 도시의 형태를 가지게 됐다. 인구 집중과 함께 복잡성의 증가 등 많은 문제로 인해 새로운 행정수도를 모색하다보니 이전 비용이나 지역별 이해 관계 등의 여러 가지 골칫거리가 대두되고 있다.
1:1 관계와 과도한 반정규화의 해결 방안
질문 1) <그림 1>과 같이 현재 고객을 기준으로 모델이 구성되어 있다. 그리고 모든 관계는 1:1로 되어 있다. 문제는 이러한 모델이 논리적 모델의 확정 없이 프로세스 관점으로 데이터의 구분에 따라 분리되어 있는 상태라는 점이다. 이러한 테이블을 통합하거나 논리적 관점에서 재구성하려면 어떤 검토 과정을 거쳐야 하는지 궁금하다.
<그림1> 1:1 관계의 초기 데이터 모델
질문 1-1) 책을 보면서 어렵게 여겼던 슈퍼-서브 타입간의 관계 해결 방안에 대한 내용이 이 예를 통해 많은 도움이 됐다. 정확한 업무의 흐름과 데이터를 이해하기 위해서는 논리 모델이 제대로 되어 있어야 업무가 추가·변경되더라도 쉽게 적응할 수 있을 것 같다. 그러나 현재 우리 회사 시스템의 경우 최종적인 물리 모델의 결과만 가지고 있어 이를 해소하기 위해 현행 물리 모델을 분석하여 논리 모델화하고 그 논리 모델을 이용해서 물리 모델을 재구성해야 할 것 같은데 이런 경우에는 어떤 진행 단계와 방법을 거치는지 알고 싶다.
좋은 질문이다. 논리 모델을 정확하게 만들기 위해서는 업무의 이해가 선행돼야 하고 업무에 따라 논리 모델을 만들어 내는 것이다. 이미 완성되어 있는 모델에서 논리 모델을 만드는 방법은 다음과 같이 적용하면 어렵지 않게 만들 수 있다. 엔티티 타입, 관계, 속성 등이 존재하기 때문에 존재하는 내용을 근간으로 다음 순서로 적용해 보자.
효과적인 우편번호 관리 모델 설계하기
질문 2) 일반적으로 우편번호는 하나의 독립적인 엔티티 타입으로 만들어서 관리하고 있는 것 같다. 현재 우리 모델 역시 <그림 8>과 같이 독립적인 테이블로 만들어서 관리하고 있다. 실제 업무를 해보니 우편번호는 너무나 다양한 형태로 변하고 있어서 관리하기가 쉽지 않다. 그래서 현재는 수시로 전체 데이터를 받아서 지우고 입력하는 형태로 하고 있다. <그림8> 우편번호 테이블
질문 2-1) 현재의 우편번호 관리 체계가 단순히 우편번호/주소1/주소2로 되어 있다. 이 부분에 변경된 모델을 적용하는 이유는 하위 주소가 변경 혹은 삭제되었을 경우 수정의 용이성이나 우편번호의 분리와 통합에 따른 유연성이 확보될 것이기 때문이다. 물론 앞의 형태에서 주소 부분을 더 세분화할 수도 있을 것 같다.
맞다. 기존에 업무 테이블에 있는 우편번호 주소 정보를 세부적으로 하려면 많은 노력이 필요하다. 그래서 데이터 정련(data cleansing) 작업을 하는데 만약 할 수만 있다면 데이터 정련 작업과 함께 우편번호 주소 정보를 세분화하는 것을 권고한다.
데이터의 이력 관리를 위한 이력 모델 설계하기
질문 3) 데이터의 이력 관리를 위한 이력 모델 설계는 어떻게 해야 하는지 궁금하다. 하나의 업무 단위가 시간 흐름에 따라 발생하는 과거와 현재 데이터를 지속적으로 유지하는 관리 방법을 이력(history) 관리라고 한다. 이력 관리에 대한 내용을 ‘데이터베이스 설계와 구축’에 있는 내용을 기준으로 설명하겠다.
발생 이력과 변경 이력
데이터 처리의 성능을 위해 발생 이력과 변경 이력의 경우는 최종 생성된 데이터의 구분을 위한 기능성 컬럼이 필요하고, 진행 이력의 경우는 연속적인 특징이 있으므로 생성된 시점과 완료된 시점에 대한 기능성 컬럼이 필요한 특징을 가지고 있다. 발생 이력, 변경 이력의 경우 최신 값에 대한 기능성 컬럼이 존재하지 않아 성능이 저하된 경우이다.
진행 이력
진행 이력의 경우는 발생 이력과 변경 이력과 다르게 발생된 시점 이외에도 데이터 조회가 빈번하게 이루어진다. <그림 13>에 있는 기관 정보 테이블은 어떤 시점에 따라 해당 기관이 가지고 있는 기관 거래 등급을 가지고 있으면서 다른 테이블에서 기관거래 등급 정보를 참조하여 업무를 처리하는 경우이다. 2004년 7월 1일자에 해당하는 기관 코드와 기관 거래 등급을 조회하는 SQL은 다음과 같이 복잡한 SQL 구문이 작성된다.
OPS를 RAC으로 마이그레이션하기
질문 4) 현재 사용 중인 오라클8의 OPS의 결함과 성능상의 문제로 오라클9i RAC으로의 업그레이드를 고려하고 있다. RAC으로 업그레이드시 OPS와 비교했을 때 얻을 수 있는 이점과 RAC 구성을 위한 시스템적 측면은 무엇인지 그리고 효과적인 업무 파티셔닝(partitioning)을 위한 방안은 무엇인지 궁금하다.
먼저 OPS와 RAC을 사용하는 두 가지 이유는 첫번째가 장애 복구(fail over)이고 두번째가 부하 분산(load balancing)을 하기 위한 것이다. 장애 복구를 용이하게 한다는 것은 시스템의 고가용성(high availability)을 확보한다고 할 수 있으며 두 대 이상의 데이터베이스 서버가 정보를 공유(노드간 일관성과 데이터 무결성을 보장)하고 있다가 한 대의 서버에 장애가 발생하여 다운되었을 때 즉각적으로 다른 서버가 동일한 서비스를 할 수 있는 환경 구성이다.
질문 4-1) 업무 파티셔닝과 관련하여 상관 매트릭스 작성에 대해 좀 더 실제적인 예를 들어 설명해주기 바란다.
상관 매트릭스는 작은 업무 그룹인 서브젝트 에어리어 단위로도 나눌 수 있고 아주 세부적으로는 속성 단위까지도 나누어 표현할 수 있다. 가장 많이 사용하는 매트릭스는 엔티티 타입과 단위 프로세스 상관 매트릭스이다. 참고로 단위 프로세스는 논리적인 작업 처리의 단위(logical unit of work)이다. 즉 트랜잭션을 보장하기 위한 단위로서 하나의 트랜잭션의 처리는 업무적으로 의미있어야 한다.
질문 4-2) OPS에서 오라클9i RAC으로의 전환할 때 이미 개발된 프로그램의 변경이 예상된다. 그럴 경우 가장 고려해야 할 사항이 무엇인지 알고 싶다.
OPS와 RAC은 클러스터링 아키텍쳐 구성이 변경됐고 성능이 향상됐지만 근본적으로 처리 방식이 달라지지 않았기 때문에 OPS에서 오라클9i RAC으로의 전환할 때 개발된 프로그램의 소스에서 추가적으로 고려해야 할 사항은 없다. 다만 환경이 OPS에서 RAC으로 변경됐기 때문에 개발된 프로그램이 정상적으로 성능을 발휘하고 있는지 성능 테스트를 하는게 가장 고려해야 할 사항이다.
배치 작업의 성능 이슈와 마스터 테이블 관리
질문 5) 일반적으로 배치 작업은 대량의 데이터를 일괄적으로 처리하기 위한 작업이다. 그래서 여러 배치 작업이 동시에 실행될 때는 자원의 경합을 해결하는 것이 가장 큰 문제라고 생각한다. 본인의 경우에도 현재 업무 중 가장 중요한 배치 업무의 성능 저하로 인해 어려움을 겪고 있는 상황이다.
첫번째 질문인 트랜잭션 테이블에 대해서 경합이 발생하지 않도록 모델을 재설계하는 방법이나 처리 방식 변경 방법에 대해 설명하겠다. 데이터 모델을 보면 트랜잭션 테이블이 배치 처리의 대상이 되는 마스터 테이블이다. 그러므로 트랜잭션 테이블을 이용하여 특정 배치 작업이 처리되고 다른 유형의 배치 작업이 수행되면 로우가 겹치지 않으므로 당연히 잠금이 발생하지 않지만 만약 동일한 사람에 대해 불량과 대출에 대한 배치 작업을 처리하다 보면 동일 구조의 거래 식별 테이블을 참조하여 처리해야 하므로 잠금 현상이 발생할 수밖에 없다. 이런 경우는 PK 구조를 바꾸어도 업무적으로 마스터 테이블의 PK를 이용할 수밖에 없으므로 잠금 현상이 발생한다.
질문 5-1) 첫번째 질문에서 잠금 현상을 회피하기 위한 방법으로서 커밋하는 것은 적용 가능한 부분인 것 같다. 그런데 정렬을 하기 위해서는 몇 가지 단계를 거쳐야 하고 소스 파일의 구조도 달라서 쉽지 않을 것 같다.
만약 인위적인 정렬이 어렵다면 반복문(LOOP문) 안에서 SAM 파일을 읽을 때 하나의 작업은 1..전체로우의 순으로 진행하고 다른 작업은 전체로우..1까지 처리하는 방법이 있다. 즉 100개의 로우를 가진 SAM 파일이 있다면 하나의 작업은 for i=1 to 100 { 작업1 } 또 하나의 작업은 for i=100 downto 1 { 작업2 } 형식으로 진행하면 처리되는 데이터가 겹칠 가능성이 적어지므로 잠금 현상을 최소화할 수 있다. 질문 5-2) 마스터 테이블에 대한 변경이 일어나지 않도록 업무별로 서로 다른 TEMP성 마스터 테이블을 가지고 마스터 테이블에 대한 변경 건이 발생하면 TEMP에 넣었다가 배치 작업이 완료된 후에 TEMP 데이터를 마스터에 일괄 반영하는 방법을 고려하고 있다. 이럴 경우 마스터 테이블은 오로지 SELECT만 일어나므로 서로 다른 업무를 동시에 진행할 수 있고 TEMP에 들어간 데이터는 적절한 업무 규칙을 적용하면 되지 않을까 한다.
TEMP에 배치 작업을 처리할 때는 잠금 현상 문제가 발생되지 않지만 TEMP에 들어간 데이터를 다시 마스터 테이블에 반영할 때 순차적으로 처리하지 않고 동시에 처리한다면 이 방법도 역시 동일한 형태의 잠금 현상이 발생할 가능성이 있다. 오히려 배치 작업이 두번 수행되는 형태가 되므로 시스템의 자원을 많이 사용하는 형태가 된다. 그러므로 커밋 주기를 단축시키고 배치 작업간 정렬 순서를 변경해 적용하여 잠금 현상을 피하는 것이 가장 좋은 방법이 될 수 있다.
모델러와 DA의 전망 및 비전
질문 6) 앞으로의 모델러 및 DA의 전망 및 비전은? 데이터를 다루는 데이터 아키텍트(Data Architect, DA)의 전망은 매우 밝다. 9년 전에 IT 기술 분야 중 가장 유망한 분야는 데이터베이스 분야와 네트워크 분야라는 이야기를 들은 적이 있다. 9년이 지난 지금 그 말은 사실이었고 데이터베이스 분야는 기업의 모든 IT 정책의 핵심을 이루고 있다. 지금도 필자가 속해있는 LG CNS에서는 데이터 분야의 기술을 가진 인재들이 여러 프로젝트와 시스템에서 중요한 역할을 수행하고 있다. 이제 유비쿼터스 환경이 되면 더욱 많은 데이터들이 온라인에서 움직이게 될 것이고 따라서 데이터의 중요성과 설계, 구축, 관리 전문가에 대한 요구가 더 늘어날 것이다.
데이터 모델의 핵심은 방향 설정 서울의 지하철 중 1호선은 구로역에서 인천 방향과 수원 방향으로 방향이 바뀐다. 인천에 살고 있는 필자가 1년에 한 번 정도 정신없이 수원행을 탄 적이 있다. 잘못 승차한 전철에서 바깥 풍경을 보고 있으면 ‘아차 잘못 탔구나!’ 느낀다. 그러면 가장 가까운 역에서 내려 다시 갈아타야 한다. 계속 머뭇거리고 결정을 내리지 못하면 목적지인 인천에서 더 먼 곳으로 자꾸 이동하게 된다. 데이터베이스의 방향은 데이터 모델이 결정한다. 데이터 모델이 잘못되었다는 것을 인지하면 신속하고 정확하게 방향을 잡아가는 것이 데이터 모델에서 제일 중요한 요소가 된다. 데이터 모델링을 할 때 논리 모델은 업무 중심으로 물리 모델은 데이터베이스 중심으로 전개하는 것을 꼭 잊지 말길 바란다. 출처 : 마이크로소프트웨어[2004년도 7월호] |
MySQL 1067 에러... (3) | 2005.05.20 |
---|---|
[펌] 데이터 모델 정규화/반정규화의 실전 프로젝트 적용 (0) | 2005.05.13 |
mysql 4.0.x 이하 버전 .. 한글셋팅.. (0) | 2005.02.16 |
[mysql] 디비사랑넷 펌 ... 4.1버젼 한글사용 (0) | 2005.02.02 |
[펌] MySQL의 SQL (0) | 2005.01.14 |
작년부터 스트럿을 썼는데.. Validator 를 한번도 써보지 않았다 ^^;
http://struts.apache.org/userGuide/dev_validator.html
여기 보니 상당히 자세히 나왔음..
간단하게 몸풀기 예제 하나 적어놔야쥐..
준비물 : commons-validator.jar , jakarta-oro.jar <-- 필수
나머지 준비물 : vssh 에 필요한 lib 들...
1. 폼빈 작성(DynaValidatorForm)
<form-bean name="loginForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="id" type="java.lang.String" />
<form-property name="passwd" type="java.lang.String" />
</form-bean>
2. ActionServlet 작성 (검증만 할것이기 때문에 암것도 없다..)
package test;
import ........
public class LoginAction extends Action {
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res
)throws IOException, ServletException {
return mapping.findForward("success");
}
}
3. action-mappings 에 등록..
<action-mappings>
<action
path="/login"
type="test.LoginAction"
name="loginForm"
scope="request"
input="/login.vm"
unknown="false"
validate="true"
>
<forward
name="success"
path="/index.do"
redirect="true"
/>
</action-mappings>
4. validator-rules.xml 등록..(첨부자료에 있음..)
5. validation.xml 만들기..
<?xml version="1.0" encoding="euc-kr" ?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
<form-validation>
<formset>
<form name="loginForm">
<field property="id" depends="required,minlength,maxlength">
<arg0 key="아이디" resource="false"/>
<arg1 name="minlength" key="${var:minlength}" resource="false"/>
<arg1 name="maxlength" key="${var:maxlength}" resource="false"/>
<var>
<var-name>minlength</var-name>
<var-value>3</var-value>
</var>
<var>
<var-name>maxlength</var-name>
<var-value>12</var-value>
</var>
</field>
<field property="passwd" depends="required">
<arg0 key="비밀번호" resource="false"/>
</field>
</form>
</formset>
</form-validation>
6. messageResource_ko.properties 만들기(native2ascii 해줄것)
# Struts Validator Error Messages
errors.required=<Font color="green">{0}</font> 는(은) 반드시 입력하셔야 합니다!!
errors.minlength=<Font color="green">{0}</font> 는(은) 최소 <Font color="red">{1}</font> 자 이상 입력하셔야 합니다!!
errors.maxlength=<Font color="green">{0}</font> 는(은) 최대 <Font color="red">{1}</font> 자 이하 입니다!!
7. struts-config.xml 에 messageResource 등록하기..
<message-resources parameter="messageResource" />
8. struts-config.xml 에 Validator PlugIn 등록
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/>
</plug-in>
9. 입력폼 만들기.
##------------------------------
## PRINT ERROR MESSAGE
##------------------------------
#macro (errorMarkup)
#if ($errors.exist())
<ul>
#foreach ($e in $errors.all )
<li>$e</li>
#end
</ul>
#end
#end
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
#errorMarkup()
</td>
</tr>
<tr>
<form method="POST"
name="loginForm"
action="$link.setRelative("/login.do")" >
<td width="400" height="200" align="center">
<fieldset style="width:95%">
<legend align="left" align="center" width="100%" > <B>로그인 하세요</B> </legend>
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#C6C6C6">
<tr>
<td width="50%" style="padding-left:6px">ID</td>
<td width="50%" style="padding-left:6px"><input type="text" name="id" value="$!loginForm.get("id")" /></td>
</tr>
<tr>
<td width="50%" style="padding-left:6px">PWD</td>
<td width="50%" style="padding-left:6px"><input type="password" name="passwd" value="$!loginForm.get("passwd")" /></td>
</tr>
<tr>
<td width="50%"style="padding-left:6px" colspan="2">
<input type="submit" value=" 전 송 " >
</td>
</tr>
</table>
</fieldset>
</td>
</form>
</tr>
</table>
편하긴 한데.. 설정 바꾸고.. 리로딩 하고 -.-;;
업로드 되는 곳이면 업로드 하면서 검증하는건지??
JdbcTemplate.queryForInt(String arg0, Object arg1) 편리하군 ㅋㅋ (0) | 2005.03.29 |
---|---|
[spring] WebApplicationContext 가져올때 .... (0) | 2005.03.05 |
[spring] LocalSessionFactoryBean 설정에서... (0) | 2005.02.24 |
[hibernate]net.sf.hibernate.LazyInitializationException (0) | 2005.02.22 |
Hibernate + Spring 일때.. 페이징 문제 (2) | 2005.02.18 |