전체 글 555

스프링 배치 JobParameter

JobParameter란? 우선 JobParameter에 대해 알아보자면, 스프링 문서에는 이렇게 나와있습니다.. https://docs.spring.io/spring-batch/docs/current/reference/html/domain.html#jobparameters The Domain Language of Batch This section describes stereotypes relating to the concept of a batch job. A Job is an entity that encapsulates an entire batch process. As is common with other Spring projects, a Job is wired together with either a..

Spring/Spring Batch 2022.09.02

2022-08-30 영어공부

실제 환경에서는 스프링 배치의 Job을 어떻게 실행합니까? In real environment how to run spring batch Job? (실제 환경에서 스프링 배치 잡을 실행하는 방법은 무엇입니까?) -> How do you run the Job in the spring batch in a production environment comment : 1. '실제 환경에서' 라는 부분을 맨 앞으로 뺐는데 너무 한국적으로 작문한건가...라는 생각이 든다. 2. '실제 환경' 이라는 부분을 나는 real environment라고 했는데 맞는 말이긴 한데 너무 기계가 말하는 듯한? 느낌이 든다. 파파고는 production environment라고 썼다. 좀 더 부드러운 표현같다. 휴면 계정 관리를 스..

기타/영어공부 2022.08.30

스프링 배치 + 스케줄러를 이용해 나만의 배치만들어보기

저번 포스팅과 이어지는 내용입니다. https://coding-review.tistory.com/177 스프링 배치를 이용해서 휴면 계정을 관리해보자 스프링 배치에 대한 전반적인 내용은 아래의 포스팅을 참고해주세요. 때문에 스프링 배치에서 사용되는 단어에 대한 설명은 생략합니다. https://coding-review.tistory.com/172 스프링 부트 배치 개념 대 coding-review.tistory.com 때문에 배치와 관련된 코드는 생략하도록 하겠습니다. 스프링 배치 vs 스케줄러 배치에 대해 잘 알고계시지 못하는 분이 배치와 스케줄러를 같다고 생각하십니다. 하지만 둘은 엄연히 다른 존재입니다. 스프링 배치는 대용량 데이터를 단발성으로 처리해야 하는 경우에 사용하는 프레임워크입니다. 스케줄..

Spring/Spring Batch 2022.08.25

스프링 배치를 이용해서 휴면 계정을 관리해보자

스프링 배치에 대한 전반적인 내용은 아래의 포스팅을 참고해주세요. 때문에 스프링 배치에서 사용되는 단어에 대한 설명은 생략합니다. https://coding-review.tistory.com/172 스프링 부트 배치 개념 대략 10만명의 회원을 거느리는 웹 서비스를 운영한다고 가정했을 때 우린 매일마다 회원들의 상태변화를 감지하고 운용할 수 있어야 합니다. 가령 오늘까지 우리 서비스에 접속하지 않은지 1년 coding-review.tistory.com 스프링 배치를 이용해서 휴면 계정을 관리해 보겠습니다. 사용한 기술 스택 -Spring Boot 2.7.2 -Spring Data JPA 우선 Entity를 만들어 보겠습니다. 코드에 대해서 하나씩 설명하면서 진행하도록 하겠습니다. Member.java p..

Spring/Spring Batch 2022.08.25

2022-08-24 영어공부

mysql을 재시작했는데 내 데이터베이스가 모두 사라졌다. when mysql restart, databases which I made are gone (mysql을 다시 시작하면 내가 만든 데이터베이스가 사라진다.) -> I restarted mysql and all my databases disappeared. comment : 나는 when절로 시작했는데 파파고는 평문으로 시작했다. 이게 무슨 차이인지 잘 모르겠지만 이번엔 내가 쓴것도 나쁘지 않아 보인다. 네가 무슨말을 하는지 완벽하게 이해했다. I undertand that you saying perfectly (나는 네가 말하는 것을 완벽하게 이해한다.) -> I totally understand what you're saying. commen..

기타/영어공부 2022.08.24

2022-08-23 영어공부

실제로는 로그가 Opening Web Socket 에서 멈춰있다. Exactly log is stopped "Opening Web Socket" -> Exactly, the log is stopped in the "Opening Web Socket..." comment : ~에서를 in을 쓰기도 하는구나 처음알았다. 구글에서는 나와 같은 경우를 찾지 못했습니다. In Google I couldn't found as my case -> I couldn't find the same case as myself on Google. comment : 1. could라는 과거형을 썼으면 found라는 과거형을 또 쓸필요가 없었다. 2. 나와 '같은' 에서 '같은'이 as라는 것을 잘 캐치했다. SockJS에서 가져..

기타/영어공부 2022.08.23

이 카테고리를 만들게 된 이유

최근에 너무 안풀리는 문제가 생겨서 구글링하다 하다 안되길래 질문을 올렸다. 이번에도 역시 오키랑 네이버 지식인이었다. 내가 여태껏 겪었던 문제들은 오키나 네이버 지식인 선에서 끝났는데 이번 문제는 정말 올게 왔다. 좀만 복잡해지니까 사람들이 답글도 안달고 나혼자 붕떴다. 그래서 외국 개발자의 힘을 빌어보기로 마음 먹었다. 영어가 문제라 엄청 걱정했는데 파파고가 대부분 일을 처리해준다. (파파고 없었으면 큰일날뻔...) 하지만 번역기도 번역기일뿐 읽고 쓰고 듣고 말하기 넷중에 제일 잘하는 읽기는 어느정도 커버가 되었다. 기본적인 문장이나 질문 답글정도는 읽고 해석할 수 있다. (고등학교때 공부 좀 해놓길 잘했다 휴..) 문제는 쓰기... 듣고 말하기는 바라지도 않으니까 작문 실력을 늘렸으면 좋겠다고 생각..

기타/영어공부 2022.08.23

@CreatedDate, @LastModifiedDate

데이터를 저장할 때 '생성된 시간 정보'와 '수정된 시간 정보'는 여러모로 많이 사용되고 또 중요합니다. JPA를 사용하면서 @CreatedDate, @LastModifiedDate를 사용하여 생성된 시간 정보, 수정된 시간 정보를 자동으로 저장할 수 있는데요. 사용 방법과 동작 원리에 대해서 한번 알아보도록 하겠습니다. import lombok.Getter; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; imp..

JPA/JPA 2022.08.23

스프링 부트 배치 개념

대략 10만명의 회원을 거느리는 웹 서비스를 운영한다고 가정했을 때 우린 매일마다 회원들의 상태변화를 감지하고 운용할 수 있어야 합니다. 가령 오늘까지 우리 서비스에 접속하지 않은지 1년 이상이 지난 회원의 상태는 휴면으로 전환시키고 휴면으로 전환된 회원은 다시 로그인 했을 때 본인인증 절차를 거치도록 하는 것이 서비스 보안에 좋겠죠. 또는 후불로 청구되는 유료 서비스를 이용하고 과금액을 미납한지 한 달째 되는 회원에 대해서도 매일마다 집계하여 그에 맞는 추심을 한다거나 채권 관리대상으로 지정하여 우리서비스의 수익구조를 안정적으로 보호해야 하는 경우도 있습니다. 만약 이런 일들을 사람의 손을 반복적으로 거쳐야 한다면 매우 고단한 일이 될겁니다. 스프링부트 프레임워크에서는 이러한 일괄처리를 쉽게 안정적으로..

Spring/Spring Batch 2022.08.21

캡스톤 디자인 : 중고거래 사이트 (3) 채팅 실시간 알람

실시간 알람은 원래 하려고 한게 아닌데 주변인들한테 지금 내가 채팅프로그램을 만들고있는데 실시간 알람이 있으면 좋겠냐 없으면 좋겠냐 물어봤을 때 전부 다 있어야 할거같다고 해서 만들었습니다. 처음에 계획은 axios를 이용해 /chat/get_room_id 라는 url로 접근해 현재 내가 갖고있는 채팅방의 roomId를 자바스크립트 배열에 저장하고 배열에 있는 값을 꺼내서 for문을 돌려 모두 subscribe 연결을 하려고 했습니다. 근데 자바스크립트의 비동기 문제 때문에 값을 저장하기 전에 subscribe로 연결되어버려서 자바스크립트 배열에 값이 텅텅 비어있는 상황이 연출되었습니다. 그래서 async await 를 이용해 순서를 바로잡는데에는 성공했지만... 웹 소켓 connect가 안되는 현상이 ..