전체 글
-
[Error] DB Event 실행 후 적용 안됨DB 2023. 6. 2. 22:07
이 글은 DB Event를 적용하면서 직면했던 문제와 해결 방법입니다. DB에서 Trigger와 Event를 사용하는 도중 Event 실행 후 쿼리가 테이블에 적용이 안 되는 현상이었습니다. CREATE DEFINER=`user`@`localhost` EVENT `deletepush_00hour` ON SCHEDULE EVERY 1 DAY STARTS '2023-05-09' ON COMPLETION PRESERVE ENABLE COMMENT '' DO BEGIN DELETE FROM XXX; ... ... END 위 SQL은 HeidiSQL에서 생성 user 권한으로 생성한 Event입니다. 위의 이벤트는 테이블을 초기화하는 일을 하는데 Event가 발생하고 테이블이 초기화되지 않았습니다. 자세히 보면 ..
-
[Web] Session, Cookie VS JWT 대규모 서비스에 적합한 로그인 방식은 뭘까?Web 2023. 5. 26. 22:33
Session과 Cookie 인증과 JWT인증 방식 차이점에 대해 정리한 내용입니다. 단순한 차이가 아닌 "현업에서 어떤 방식을 사용할까?"라는 의문에서 정리한 내용입니다. 로그인이란 클라이언트로부터 받은 아이디 비밀번호로 유효한 사용자임을 확인하는 것입니다. 세션 쿠키 인증방식 유효한 사용자임을 확인한 서버는 해당 사용자의 세션 id를 메모리에 저장해 두고, 유효한 클라이언트는 세션 id를 쿠키에 저장해 두면서 유효한 클라이언트의 세션 id를 매핑해 줍니다. 즉 서버에서 유저와의 상태를 저장하게 됩니다. 이것을 Stateful(상태유지)이라 합니다. 이러한 구조로 세션 쿠키 인증 방식을 구현할 수 있다. 그렇다면 아래와 같은 확장된 대규모 서비스 애플리케이션 구조를 생각해 볼 수 있습니다. 클라이언트는..
-
[Spring] Spring batch를 사용해보면서 (1)Server 2023. 5. 24. 15:09
이번 포스트는 Spring batch를 사용해 보면서 Spring batch를 중심으로 이야기해보려 합니다. 아래 링크 참조 spring batch 공홈 Spring Batch - Reference Documentation The reference documentation is divided into several sections: Spring Batch Introduction Background, usage scenarios, and general guidelines. Spring Batch Architecture Spring Batch architecture, general batch principles, batch processing strategies. What’ docs.spring.io 하나씩..
-
[Spring] Spring Batch를 사용해보면서Server 2023. 5. 19. 23:17
프로젝트에서 배치를 사용하게되면서 Spring batch를 적용해보면서 느낀점에 대해 정리한 글입니다. 매일 한국 시간 기준 오전 11시와 오후 1시에 서비스를 실행되어야 한다면 MVC 패턴에서 적용시 Controller 단에서 @Scheduled cron 식으로 스케줄링하여 처리할 수 있다. @Scheduled(cron = "0 0 11,17 * * *",zone = "Asia/Seoul") 대용량 데이터를 처리 해야 할 때 주로 이런 서비스는 대용량 데이터를 일괄적으로 처리하는 서비스 일 것이다. 만약 이와 같은 서비스에서 1000만 건의 데이터를 처리 해야 한다면 말이 달라집니다. 1000만건의 데이터를 데이터 블록에 적재해놓고 하나씩 처리한다면 메모리적으로 좋은 방법이 아닙니다. "페이지네이션을 ..
-
[DB] 권한 설정DB 2023. 5. 10. 00:56
데이터 베이스 권한에 대한 이야기 이 글을 프로젝트를 통해 데이터베이스 권한에 대해 공부하고 느낀 점을 정리한 글입니다. 이번 프로젝트에서 AWS host에 Spring 서버들과 데이터 베이스를 배포하게 되었다. 이러한 구조로 데이터베이스에 접근하기 위해서는 WAS 인증을 거치고 API를 통해서 접근할 수 있었다. 그리고 이러한 구조가 DB보안을 생각한 구조였다. DB 권한중 root@127.0.0.1 은 데이터베이스 커넥션에 접근하는 권한중 루트권한을 가진사람은 아이피 127.0.0.1(즉 로컬)만 허용한다는 뜻이다. 팀원들이 개발테스트 과정에는 서버 데이터베이스를 사용하게 해 달라는 요구가 있었다. 테이블이 여러 번 수정되면서 데이터베이스에서 오류가 많았나 보다.. 그래서 외부에서 들어오는 ip를 열..
-
[AWS] AWS S3 연동 해보자AWS 2023. 4. 4. 22:26
AWS 계정 만들기 1. 루트 사용자를 만든다. 2. IAM 사용자를 하나 만들어서 사용한다. 루트 사용자로 사용할 경우 팀원들과 아이디 패스워드를 공유하게 되는데 무슨 일이 일어날지 모른다. 계정이 노출되면 과금이 결제될 수도 있다. IAM사용자는 여러 명의 사용자들 등록할 수 있다. 팀원들의 IAM을 등록해서 같이 사용할 수 있고, 권한도 설정해줄 수 있다. 이번 프로젝트에서 권한에 대해 깊게 생각해보지 못해서 기회가 되면 권한에 관련한 글도 써보겠다. 1. S3를 사용하게 되면 버킷이라는 키워드를 만날수 있다. 버킷은 데이터 컨테이너로써 최대 100개까지 생성가능하며 100개 이상 만들 경우 서비스 할당량에서 설정할 수 있다. 2. 버킷 아래에 객체가 만들어지는데 데이를 담기 위한 상위 경로라고 생..
-
[Spring Rest Doc] Spring Rest Doc을 채택한 이유Server 2023. 3. 27. 22:55
이전 프로젝트에서 프론트와 API를 소통하기 위해 Swagger에 open API ui를 활용해서 사용했습니다. 이것이 편한건줄만 알았는데 편하지만 몇 가지 아쉬운 부분이 있었다. Swagger문서에서 요청되는 Httprequest가 실제 서비스 서버로 요청되면서 서비스용 데이터베이스에 반영이 되어 짧은 기간 프로젝트에는 적합하나 서비스를 운영하기 위해서는 테스트 서버와 서비스 서버가 분리되어야 했습니다. Controller만 구현되어도 문서에 명시되기 때문에 신뢰성 있는 API가 공유되지 않는다는 것입니다. 즉 에러가 나는 API도 공유가 됩니다. API문서가 수정될 때마다 노션의 문서를 수정했어야 했습니다. 문서를 수정하는 과정을 팀웜들이 굉장히 번거로워했습니다. 이러한 이유가 있었기 때문에 Spri..
-
[개발일지] 스크럼 회의를 하는 이유개발일지 2023. 3. 21. 00:29
스크럼 회의를 하면서 느낀 점을 써보는 글입니다. 프로젝트를 진행할 때 하루를 시작하기 전 매일 스크럼 회의를 진행합니다. 스크럼 회의는 팀원 서로 프로젝트 진행 상황을 파악하며 협업이나 회의가 필요한 것을 공유하는 자리이다. 팀장으로서 두 번의 프로젝트를 진행하면서 스크럼 회의를 대하는 팀원들의 자세가 눈에 보이기 시작했다. 1. 스크럼 회의에서 이야기가 길어지면 스크럼 회의가 끝나고 이야기 해! 2. 프로젝트가 잘 진행되고 있다고만 보고하는 팀원 1번의 경우 내 생각은 이러하다. 아무리 스크럼 회의를 짧게 하더라도 팀원들간 협업 상황이 공유되지 않는다면 스크럼 회의를 할 이유가 없다. 회의가 끝나고 협업이 필요한 팀원과 회의 일정을 잡고 협업을 진행할 것이라면 좋은 방법이다. 그러나 이것이 지켜지지 ..