SQL 반복 자동 실행 및 서비스 전체로그 저장시 주의사항 문의
- 작성자 :
- 왕*보
- 작성일 :
- 2019-08-01 09:38:49
- 조회수 :
- 2,582
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
수고 많으십니다.
현재 eGov3.8로 프로젝트를 진행중에 있습니다.
프로젝트 진행중에 막연한 부분이 있으서 문의를 드립니다.
1. SQL 중복 자동 실행
현재 A라는 SQL(CRUD)에 대해서
대상 테이블명만 다른 B,C,D... SQL이 존재할때
A SQL 실행후 B, C, D SQL을 자동으로 처리를 해보려고 합니다.
<insert id="A" parameterType="xxxVO">
insert into A
(id, name , email)
values
(#{id}, #{name}, #{email})
</insert>
<insert id="B" parameterType="xxxVO">
insert into B
(id, name , email)
values
(#{id}, #{name}, #{email})
</insert>
<insert id="C" parameterType="xxxVO">
insert into C
(id, name , email)
values
(#{id}, #{name}, #{email})
</insert>
<insert id="D" parameterType="xxxVO">
insert into D
(id, name , email)
values
(#{id}, #{name}, #{email})
</insert>
업무에서 A라는 SQL을 실행하면 AOP에서
B, C, D를 순서적으로 실행하려고 하는데 이부분 참조가 될만한 예제가 있으면
부탁 합니다.
2. 웹 서비스에 관련된 모드 로그 저장
화면에서 발생하는 모든 서버쪽 호출에 대한 정보를 저장하려고 하는데
이부분 interceptor을 사용해서 저장을 하면 될거라고 생각을 하는데
성능부분에서 주의하거나 조심해서 처리를 해야 하는 방법이 있을까요?
로그 저장관련되서 향상된 적용 방법이 있으면 이부분 처리 관련해서
참고할 부분이 있을까요?
답변 부탁 합니다.
미리 감사합니다.
현재 eGov3.8로 프로젝트를 진행중에 있습니다.
프로젝트 진행중에 막연한 부분이 있으서 문의를 드립니다.
1. SQL 중복 자동 실행
현재 A라는 SQL(CRUD)에 대해서
대상 테이블명만 다른 B,C,D... SQL이 존재할때
A SQL 실행후 B, C, D SQL을 자동으로 처리를 해보려고 합니다.
<insert id="A" parameterType="xxxVO">
insert into A
(id, name , email)
values
(#{id}, #{name}, #{email})
</insert>
<insert id="B" parameterType="xxxVO">
insert into B
(id, name , email)
values
(#{id}, #{name}, #{email})
</insert>
<insert id="C" parameterType="xxxVO">
insert into C
(id, name , email)
values
(#{id}, #{name}, #{email})
</insert>
<insert id="D" parameterType="xxxVO">
insert into D
(id, name , email)
values
(#{id}, #{name}, #{email})
</insert>
업무에서 A라는 SQL을 실행하면 AOP에서
B, C, D를 순서적으로 실행하려고 하는데 이부분 참조가 될만한 예제가 있으면
부탁 합니다.
2. 웹 서비스에 관련된 모드 로그 저장
화면에서 발생하는 모든 서버쪽 호출에 대한 정보를 저장하려고 하는데
이부분 interceptor을 사용해서 저장을 하면 될거라고 생각을 하는데
성능부분에서 주의하거나 조심해서 처리를 해야 하는 방법이 있을까요?
로그 저장관련되서 향상된 적용 방법이 있으면 이부분 처리 관련해서
참고할 부분이 있을까요?
답변 부탁 합니다.
미리 감사합니다.
A
안녕하세요.
표준프레임워크센터 입니다.
1번 답변)
문의하신 기능을 AOP로 구현하는것은
적합하지 않을듯 합니다.
AOP는 예를 들면 로그처리나 트랜잭션같은
공통관심사 기능에 대한 처리에 적합합니다.
해당 기능은 DB의 트리거 같은 기능으로
DB 자체에 있는 트리거 기능을 사용할수도 있을듯 합니다.
해당 자료는 검색하시면 많이 있을듯 합니다.
비슷한 데이타가 여러 테이블에 존재하면
향후에 자료의 동기화나 무결성 유지에 어려움이 생기기 대문에
한테이블에 저장하고 JOIN을 통하여
조회 하는 방법을 사용하는등의 설계의 최적화가 필요하지 않을까 판단됩니다.
2번 답변)
로그 생성은 서버 자원을 사용하게 되므로
업무적으로 어느정도 중요한지 판단하여
구현하여야 할듯 합니다.
로그의 양이 많아 질수록
서버의 성능에는 부정적일수 밖에 없습니다.
공통컴포넌트를 참고하시면 될듯 합니다.
감사합니다.
표준프레임워크센터 입니다.
1번 답변)
문의하신 기능을 AOP로 구현하는것은
적합하지 않을듯 합니다.
AOP는 예를 들면 로그처리나 트랜잭션같은
공통관심사 기능에 대한 처리에 적합합니다.
해당 기능은 DB의 트리거 같은 기능으로
DB 자체에 있는 트리거 기능을 사용할수도 있을듯 합니다.
해당 자료는 검색하시면 많이 있을듯 합니다.
비슷한 데이타가 여러 테이블에 존재하면
향후에 자료의 동기화나 무결성 유지에 어려움이 생기기 대문에
한테이블에 저장하고 JOIN을 통하여
조회 하는 방법을 사용하는등의 설계의 최적화가 필요하지 않을까 판단됩니다.
2번 답변)
로그 생성은 서버 자원을 사용하게 되므로
업무적으로 어느정도 중요한지 판단하여
구현하여야 할듯 합니다.
로그의 양이 많아 질수록
서버의 성능에는 부정적일수 밖에 없습니다.
공통컴포넌트를 참고하시면 될듯 합니다.
감사합니다.