일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- GIT
- 자바
- 코딩문제
- 항해99
- HTML
- 회고
- 99클럽
- wil
- Til
- 배열
- ArrayList
- 코딩테스트 준비
- Java
- Entity
- 코딩
- 메서드
- 이진 탐색(binary search)
- 프로그래머스
- Grafana
- css
- 우선순위 큐(priorityqueue)
- github
- 개발자 취업
- 코딩공부
- aop
- Spring
- 정렬 알고리즘(sort algorithm)
- 자료구조
- cs 공부)준비
- 면접(java
- Today
- Total
목록프레임워크 (30)
hayu's 개발 일지
Spring Scheduler 선택 이유 Scheduler 주기적으로 또는 특정 시간에 작업을 실행할 수 있도록 도와주는 도구이다.단점 : 실행 시간의 예측이 어렵다. / 복잡한 작업 처리가 어렵다. / → 주기적으로 실행되어야 하는 간단한 작업에 적합하다. 실시간 처리가 필요하지 않은 경우에 사용된다. 장점 : 구현이 간편하다. / 다양한 스케쥴링 옵션이 있다. / 스프링 내부 기능와 통합이 용이하다. Batch(배치) 배치는 대량의 데이터를 처리하고 일괄 작업을 수행하기 위한 기능이다.단점 : 실시간 처리가 어렵다. / 설정과 구현이 복잡하다.→ 대량의 데이터를 처리할 때 적합하다. 데이터 정제 및 변환 작업이 필요한 경우 혹은 일괄적인 작업 실행이 필요한 경우에 사용된다. → 일괄 작업을 실행하는 ..
Scheduler 주기적으로 또는 특정 시간에 작업을 실행할 수 있도록 도와주는 도구이다. → 스프링 프레임워크에서 스케쥴러를 지원한다. Spring Scheduler 특징 추가적인 의존성이 불필요하다. (스프링 프레임워크의 기본 기능이다.) 사용이 쉽다(@Component와 @Scheduled 에너테이션 추가로 사용한다.) 1개의 Thread pool을 사용한다. → 스케쥴이 끝나야 다음 스케쥴 실행이 가능하다. Spring Scheduler 사용 방법 @Scheduled Spring Boot 에서 @Scheduled 을 사용하면 일정한 시간 간격으로, 혹은 특정 시간에 코드가 실행되도록 설정할 수 있다. @Scheduled 사용법 Application Class에 @EnableScheduling 를 ..
Dirty Checking 이란? 상태 변경 검사이다. 영속성 컨테이너가 관리하는 엔티티의 상태를 감지해서 변경된 부분이 있다면 자동으로 트랜잭션이 끝나는 시점에 데이터 베이스를 반영하는 기능이다. 여기서 Dirty는 엔티티 데이터의 변경된 부분을 뜻한다. 즉, Dirty checking 은 변경된 부분을 감지한다는 의미이다. Dirty Checking 조건 영속성 컨텍스트에서 관리되는 엔티티 영속성 컨텍스트는 엔티티를 처음 조회할 때 시작되며, 이후 변경을 감지한다. 준영속 / 비영속 상태의 엔티티는 더티 체킹의 대상이 되지 못한다. Transaction이 커밋되었을 때 트랜잭션이 커밋되기 전까지 영속성 컨텍스트는 변경사항을 추적하기만 하고, 데이터 베이스에 반영하지 않는다. 따라서 트랜잭션이 커밋될 ..
Polling 클라이언트가 평범한 HTTP Request를 서버로 계속 요청해 이벤트 내용을 전달받는 방식이다. 가장 쉬운 방식이지만 클라이언트가 지속적으로 Request를 요청하기 때문에 클라이언트의 수가 많아지면 서버의 부담이 급증한다. HTTP Request Connection을 맺고 끊는 것 자체가 부담이 많은 방식이고, 클라이언트에서 실시간 정도의 빠른 응답을 기대하기 어렵다. 일정하게 갱신되는 서버 데이터의 경우 유용하게 사용할 수 있는 방법이다. Long Polling Long Polling(롱 폴링)은 클라이언트가 서버에게 요청을 보내고, 서버가 즉시 응답하지 않고 일정 시간 동안 연결을 유지한 채로 대기하다가 새로운 데이터 또는 이벤트가 발생하면 응답을 반환하는 방식의 통신 기법이다. 일..
websocket HTML5 표준 기술로, 클라이언트와 서버 간의 양방향 통신을 열고, 실시간으로 데이터를 교환하는 방식이다. 단방향 통신 : TV, 라디오 지연 시간이 낮고 효율적이다. 단일 TCP 연결을 유지하기 때문에 메모리 및 네트워크 사용이 효율적이다. open connection 을 유지해줘야 하기 때문에 따로 chat server 를 만들어서 관리한다. 웹소켓의 동작 방식 웹소켓은 양방향 통신이기 때문에 연속적인 데이터 전송의 신뢰성 보장을 위해 Handshake 과정을 진행한다. 기존의 다른 TCP 기반의 프로토콜은 TCP layer에서의 Handshake를 통해 연결을 수립하는 반면, 웹소켓은 HTTP 요청 기반으로 Handshake과정을 거쳐 연결을 수립한다. Handshake 과정을 ..
로그(Log) 란? 로그(Log) 란 프로그램 또는 시스템에서 발생하는 이벤트 ,정보, 상태, 오류 등을 기록한 것을 말한다. 즉 연속된 데이터의 기록이다. (System.out.println 도 일종에 로그를 남기는 것이다.) sout 의 단점은 로그를 콘솔에만 남기고, 오류 추적을 위한 정보가 부족하며 많은 자원을 요구하는 것이다. // sout 와 log System.out.println(" 안녕하세요 "); System.out.println("환영합니다. yuha 님"); log.info("{}", "안녕하세요"); log.info("환영합니다. {}님", "yuha"); 로그를 생성하고 저장하는 것을 로깅(Logging) 이라 한다. 로그는 기록된 데이터인 반면, 로깅은 생성하고 저장하는 프로세..