STS에서 GWT 사용하기.
배치 공부 하면서 할것..
스프링 배치가 계속 실행 될 때..
스프링 배치 공부겸 해서 간단한 샘플을 만들어 보고 돌리는 중이었는데.
이놈의 배치가 계속 실행 되는 것이었다.
한번만 실행되고 멈추면 좋겠구만 -_-;;
그래서 배치 어드민 샘플, 배치 샘플 뒤져가며 보았는데..
안됬었다. ㅠㅠ
하여 여기저기 해결책을 찾아 보다가..
소스를 비교해 보니..
내가 만든 테스트용 ItemReader 는 계속 return "test"; 해서 리턴 값이 있었다.
근대 샘플 소스는 처리를 하고 나면 return null을 하는 것이었다.
응..?
그러니까,
배치 잡이 ItemReader에서 읽을 값이 없어야 배치 실행을 끝내고 종료를 하는데
계속 스트링을 return 하고 있어서
계속 잡이 실행 되는 것이었다.
허...
이런것이었군. ㅠ
추가 하면..
CHUNK 단위로 배치를 실행 하는데,
ItemReader에 처리 해야 할 데이터가 남아 있으면 당연히 배치가 계속 동작하는게 맞는 것 같다.
reader에서 어느 수 많큼(commit-interval="10") 읽어 들이고
그 후에 writer에 쓰고, 근데 reader에 읽어 들일 데이터들이 계속있으니
read & write가 반복 되는 구조.
한번만 더 생각해보면 알 수 있는 문제 인데 이걸~
아우~
요즘들어 공부가 좀 부족 하긴 했나보다.
6~8월 사이 공부를 조금 하긴 했나보다. -_-;;
뭐 모르는게 이리 많아!!!!
남은 9~12월 까지는 정말 열심히 해야겠다.
내년에는 해야할 것이 많으므로...
개인적으로는 토비의 스프링 3 좀 열심히 보고, 웹플로, 배치, 시큐리티 삼종 세트를 개인적으로나마 잘 정리 했으면 한다.
잘 살펴보고 설계에 대해서도 좀 더 보고, 스터디도 좀 열심히 나가고 포스팅도 다른사람들 읽기 편하게 잘 정리해 보고.
허허허.
목표는 많아 ㄱ-
Acl을 사용해야 하는 경우.
간단한 App의 경우 보통 시큐리티의 Url 및 Roll 가지고 보안관련해서 처리를 할 수 있다.
Complex applications often will find the need to define access permissions not simply
at a web request or method invocation level. Instead, security decisions need to
comprise both who (Authentication
), where
(MethodInvocation
) and what (SomeDomainObject
). In
other words, authorization decisions also need to consider the actual domain object
instance subject of a method invocation.
Imagine you're designing an application for a pet clinic. There will be two main groups of users of your Spring-based application: staff of the pet clinic, as well as the pet clinic's customers. The staff will have access to all of the data, whilst your customers will only be able to see their own customer records. To make it a little more interesting, your customers can allow other users to see their customer records, such as their "puppy preschool" mentor or president of their local "Pony Club". Using Spring Security as the foundation, you have several approaches that can be used:
간단한 예를 들면 내가 작성한 글을 나와 관리자만 볼 수 있고, 다른 사람은 못보게 하자.
이런 내용.
영어공부를 많이 해야 하는데 -_-..
이거 원 맨날 내맘대로 번역이야.
PostgreSql에서 시큐리티 사용하기.
테스트 돌리는 중간에 프로퍼티 참조를 잘 못해서 삽질을 완전 많이 했다. -_-;;;
프로퍼티 홀더에서 프로퍼티를 찾는 순서는 어떻게 되고, 동일 키 값을 가진 프로퍼티를 나중에 찾은 값이 덮어 씌우는 것인거 같은데, 이것 좀 확인해 봐야겠다.
아직 하이버네이트 공부를 제대로 하지 않아서, 도메인 클래스 만드는데도 약간 고생을..
시큐리티 문서에 있는 ACL 스키마를 가지고 도메인 클래스를 만드는데(쿼리가지고 테이블 생성하기 싫어서, 무엇보다 봄싹에선 도메인 클래스를 가지고 하이버네이트가 자동 생성하는 형식을 사용하고 있다.)
처음에는 그냥 자바 기본 데이터 타입으로 도메인 클래스를 생성하였는데, 그러다가 문제에 봉착 하였다.
identity가 생성이 안되는 것이었다.
You will have to set the
classIdentityQuery
andsidIdentityQuery
properties ofJdbcMutableAclService
to the following values, respectively:
select currval(pg_get_serial_sequence('acl_class', 'id'))
select currval(pg_get_serial_sequence('acl_sid', 'id'))
PostgreSQL에서는 위같은 방법으로 시퀀스를 자동 생성한다.
왜 안될까. 하고 찾아 보다가 PGSQL 문서를 찾아 보았다.
pg_get_serial_sequence
(table_name, column_name)get name of the sequence that a serial or bigserial column uses
이런 내용이...
serial, bigserial 타입의 컬럼만 시퀀스를 생성해 준단다.
어우 치사해 -_-;;
아무튼 자바에는 저런 타입이 없다.
그럼 어떻게 해야할 까..
도메인 클래스의 @Column에 속성중에 데이터 타입을 명시해 줄 방법이 있었다.
하이버네이트 어노테이션 설명
columnDefinition
(optional): override
the sql DDL fragment for this particular column (non
portable)이 속성을 명시 해 주면 된다. 아래와 같이..
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(columnDefinition="bigserial")
private int id;
스프링 속성 설정은 아래와 같이 해주면 된다. ACL은 DB별로 속성을 타지 않게 하려고 전부 표준 SQL로 동작을 하는데, identity 가져 오는 것은 DB마다 다 다르므로 각각 DB 타입에 따라 명시해 주어야 한다. (기본은 Call Identity())
이제 시큐리티 설정도 어느정도 마무리 되어 가고,
9월 즈음에 스터디 게시판 설계 마무리 하고 테스트 작성하면서 ACL에 대해서 더 포스팅 하도록 해야겠다.
스프링 3.0.4가 릴리즈 되었다.
http://www.springsource.org/node/2740
뭐가 바뀐거지...
그중에 눈이 가는거 두개가 있는데...
support for Hibernate Core 3.6, Hibernate Validator 4.1, EclipseLink 2.1, EHCache 2.2
요즘에 하이버네이트 좀 보고 있어서 하이버네이트 관련 부분과,
JSR-303 Pattern message resolvable through Spring MessageSource (despite special characters)
JSR-303 Validation 쪽 보면서 메시지들 처리 아마 클래스명.변수명 형식으로 한다고 하는걸 어디선가 본거 같은데..
맞을꺼야 아마도. -ㄴ-..
봄싹 게시판 관련 하면서 ACL 다시 한번 정리 해 보자.
아자 아자!!!
봄싹 스터디 화면 개선 안
메인 메뉴 밑에 들어갈 컨텐츠를 더 생각해 봐야겠어요.
아틀라시안 처럼 배너가 들어갈 지 아니면 서브 메뉴가 들어갈 것인지.
봄싹은 커뮤니티 사이트라서 아틀라시안 처럼 꾸미기가 애매하더라구요.
기본 컨셉은 가장 인기있는 스터디를 보여주고, 최근 스터디, 모임, 발표 목록을 보여주는 것 입니다.
최근 목록 하단에 무언가 더 표시하고 싶은데, 뭘 표시하면 좋을 까요?
개인화 컨텐츠나 기타 다른 컨텐츠 있으시면 의견 좀 주세요.
의견 반영 하면서 개선해 나가겠습니다.
스터디 등록 화면을 좀 바꾸었습니다.
로고를 잘 쓰지 않는데 .. 로고는 디폴트, 플리커, 직접 업로드로 구분해서 할 수 있도록 하구요.
디폴트 로고도 좀 더 의미가 있는 로고으로 변경할 생각입니다.
Validation도 jquery.validation 과 JSR 303 같이 쓰면서 하도록 할려구요.
스터디 설명 부분도 jquery.wiswyg 에디터로 해서, 간단한 마크업을 할 수 있도록 하였습니다.
최대한 간결하게 할려고 노력중이에요 ㅋ
기타 스터디에 관련한 의견 있으시면 언제든지 말씀해 주세요.
기선님 의견 대로 http://www.meetup.com/
초필살 급조 스터디 화면,
어젠 너무 힘든 하루.
길을 잘못들어서 한 40분을 헤메였다.
날씨도 너무 덥고 후텁지근 해서 땀을 한바가지 흘렸네 ㅠㅠ
가서 기선이형한테 책한권 빌려오고, '자바 병렬 프로그래밍' 늦어서 별 이야기 없이 진행상황만 듣고 와서 마무리.
가서 다음주 월요일에 출간예정인 토비님의 스프링책을 봤는데, 크기가...... 상당했다.
집ㅇ와서 보니. 소설같은 C# 만 하다 ㄷㄷㄷ
표지도 양장이라서 들고다니긴 무리 .. 들고다니면 살빠진다.
ipad 나와서 pdf 로 들고 다니면서 보면 좋겠다 ㅋ