본문 바로가기

반응형

Programming

(21)
[SpringBatch] 스프링배치 개념을 알아보자. 출처 : https://deeplify.dev/back-end/spring/batch-architecture-and-components 위 출처의 내용을 참고하여 공부 용도로 정리하였습니다. 구조 노란색 : 스케줄러 / DB (외부 애플리케이션) → AWS EventBridge , RDB , MongoDB , Redis , .. 빨간색 : 애플리케이션 서비스 (Spring Batch에서 제공) 초록색 : 개발자가 구성해야 하는 것들 → ex) 일정 주기대로 작업 시작되도록 설정하거나 , 작업을 실행하는 방법 등 Run Tier : 애플리케이션의 예약 및 시작과 관련이 있는 계층 (배치 작업의 시간 기반 및 상호 의존적인 스케줄링 제공 / 병렬 처리) Job Tier : 배치 작업의 전체 실행을 담당 (배..
[JavaScript] 비동기, Promise, Async 정리 [1] Keyword : 동기, 비동기, Promise, Async, Await # 출처 (아래 출처를 보고 정리한 내용입니다.) https://elvanov.com/2597 # 동기 - 동시에 여러 작업을 수행할 수 없다. - 흐름을 예측하기 쉽다. # 비동기 - 동시에 여러 작업을 수행할 수 있다. - 흐름을 예측하기 어렵다. (무엇이 먼저 완료될 지 보장 X) > 의존성이 길게 이어져 있는 비동기 작업들을 처리할 때 곤혹에 치를 수 있음 예시 #1 function finishJob(num) { console.log(`${num}번 요원의 정보를 받아왔음`); } setTimeout(finishJob, 2000, 1); setTimeout(finishJob, 1500, 2); setTimeout(fi..
[Python] 웹크롤링으로 AWS Personal health dashboard 이벤트 긁어오기 자동화 1. 개요 [1] AWS PHD(Personal Health Dashboard)에서는 하드웨어 메인터넌스 및 VPN 싱글 터널 알림, 보안 패치 등에 대한 내용을 알려준다. [2] AWS Support Plan은 Basic, Developer, Business, Enterprise, ..로 구성되어 있다. => 여기서 AWS Health API는 Business 티어 이상부터 사용이 가능하다. 그 말은 즉슨 Basic 티어나 Developer 티어는 AWS Health API를 사용할 권한이 부여되지 않는다는 뜻이다. => Developer 이하 고객사는 AWS API를 활용하여 프로그래밍 방식으로 PHD를 확인할 수 없다. [3] Developer 이하 고객사가 여러개일 경우 AWS Web Consol..
[SpringBoot] 간단한 게시판 만들기 #7 - Thymeleaf를 사용한 Fornt view 구현 Thymeleaf는 View Template이다. common.html 공통 부분을 따로 구현하여, 다른 HTML 파일에서 replace 하여 사용 Board 홈 (current) 게시판 (current) detail.html 글 상세 보기 부분을 구현 글 읽기 제목 작성자 작성일 [[${#temporals.format(boardDto.createdDate, 'yyyy-MM-dd HH:mm')}]] 본문 내용 수정 삭제 list.html 게시판 글 내역들을 보는 페이지 번호 글제목 작성자 작성일 수정일 [[${pageNum}]] 글쓰기 검색하기 update.html '수정하기' 버튼을 클릭하면 나오는 페이지 제목 : 작성자 : 수정 취소 write.html 글쓰기 페이지 게시글 등록 제목 작성자 내용 뒤..
[SpringBoot] 간단한 게시판 만들기 #6 - SpringSecurity 개념 및 구현 SpringSecurity를 이용하여 Google OAuth2 Login을 구현해보도록 한다. config 패키지에는 SessionUser와 SecurityConfig 클래스를 작성해주고, Index (/) 경로로 들어오는 Client만 허용하도록 BaseController에 해당 분기를 설정한다. 또한 domain은 Role(일반 사용자, 손님) Entity와 User Entity를 작성하고, Service로는 CustomOAuth2UserService를 작성하여 비즈니스 로직을 구현해준다. 의존성 implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' implementation 'org.springframework.boo..
[SpringBoot] 간단한 게시판 만들기 #5 - Service 구현 Service : Business Logic을 담당하는 부분이며 DB로부터 데이터를 받거나 전달해주는 역할을 한다. ++ 추가 설명 @Controller Handler가 Scan 할 수 있는 Bean 객체가 되어 Servlet용 컨테이너에 생성된다. @Service, @Repository 해당 Class를 루트 컨테이너에 Bean 객 체로 생성 BoardService : 게시판 Service CustomOAuth2Service : SpringSecurity로 OAuth2 Google Login 관련 Service ** shop.pingping2.board.service.CustomOAuth2Service는 추후 SpringSecurity 부분에서 설명 ** shop.pingping2.board.servi..
[SpringBoot] 간단한 게시판 만들기 #4 - DTO, Repository 구현 DTO와 Repository란 무엇일까? DTO(Data Transfer Object) : 계층 간에 데이터 교환을 위한 Java Bean이다. Repository : Database에 CRUD 명령을 실행하게 만드는 Interface (JpaRepository를 extends 하게 되면 CRUD를 사용할 수 있게 된다.) BoardDto : 게시판 API 간에 Data를 전달하는 DTO OAuthAttributes : OAuth2 Login을 통해서 가져온 OAuth2User의 정보를 담아주기 위한 DTO shop.pingping2.board.dto.BoardDto.java package shop.pingping2.board.dto; import shop.pingping2.board.domain.Boa..
[SpringBoot] 간단한 게시판 만들기 #3 - domain(Entity) 구현 패키지명은 보통 domain 혹은 entity로 표기하며, 내부 Class or Enum 파일들은 DB 처리용으로 DB Table과 Mapping된다. Entity 객체는 보통 DTO(Data Transfer Object)와 분리하게 된다. domain 패키지에는 Board, Time, Role, User 4개의 파일이 존재하게 된다. Board : 게시판 글 정보들을 모아놓은 Board 테이블 Time : 데이터 조작 시 자동으로 날짜를 수정해주는 JPA의 Auditing 기능을 사용한다. 이 Time Entity를 만들어 놓고 다른 Entity(Board, ..)로부터 상속받아서 사용하게 된다. Role : Spring Security 중 사용자의 권한을 Enum 클래스로 만들어 관리한다. (Enum..

반응형