STUDY
-
Spring BatchSTUDY/백엔드 2021. 3. 3. 01:00
대용량의 데이터를 처리하는 어플리케이션을 배치 어플리케이션이라고 한다. 1. 배치 어플리케이션 조건 대용량 데이터 - 배치 어플리케이션은 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리를 할 수 있어야 한다. 자동화 - 배치 어플리케이션은 심각한 문제 해결을 제외하고는 사용자 개입 없이 실행되어야 한다. 견고성 - 배치 어플리케이션은 잘못된 데이터를 충돌/중단 없이 처리할 수 있어야 한다. 신뢰성 - 배치 어플리케이션은 무엇이 잘못되었는지를 추적할 수 있어야 한다. (로깅, 알림) 성능 - 배치 어플리케이션은 지정한 시간 안에 처리를 완료하거나 동시에 실행되는 다른 어플리케이션을 방해하지 않도록 수행되어야한다. 대용량 데이터를 실시간으로 처리하기에는 조회 시간이나 서버 부하가 심해지기 때..
-
메모리 영역STUDY/백엔드 2021. 2. 8. 17:57
static 영역 패키지나 클래스 정보가 올라갑니다. import된 패키지를 static 영역에 배치한다. 프로그램 상의 모든 클래스를 static 영역에 배치한다. 필드 부분에서 선언된 변수(전역 변수)와 정적 멤버변수(static이 붙은)는 static 영역에 데이터가 저장된다. static 영역의 데이터는 프로그램의 시작부터 JVM이 종료가 될 때까지 메모리에 남아있게 된다. 따라서, 전역변수를 무분별하게 많이 사용하면 메모리가 부족할 우려가 있어 필요한 변수만 사용해야 한다. 또한, 전역변수는 읽기 전용이 아닌 경우에는 누구나 접근해서 값을 수정하면 혼란을 가져올 수 있기 때문에 가능한 사용하지 말아야 합니다. class영역 혹은 method 영역 이라고도 불립니다. stack 영역 여는 중괄호 ..
-
CookieSTUDY/프론트엔드 2021. 2. 8. 15:40
Cookie란? - key와 value 값이 들어 있는 작은 데이터 조각으로 name, value, expires, path, domain, secure 정보를 가진다. - 서버와 클라이언트에서 모두 저장하고 사용할 수 있다. - 일정 기간 동안 데이터를 브라우저에 저장할 수 있다. * javascript document.cookie = "Name=Value; Expires=날짜; Domain=도메인; Path=경로; Secure"; name과 value : 데이터를 저장하고 읽는 데 사용하는 속성으로 쿠키를 사용할 때는 name과 value를 반드시 지정해야 한다. expires : 쿠키의 만료 날짜를 지정하는 것으로 GMT 또는 UTC 형식의 날짜를 입력해야 한다. 만료 날짜를 지정하지 않을 경우 브..
-
History.replaceState()STUDY/프론트엔드 2021. 2. 4. 18:28
History.replaceState() - 현재 history를 수정해 메소드의 매개변수에 전달된 stateObj, title, url로 대체한다. 일부 유저의 동작에 대한 응답으로 history 객체의 상태나 현재 history의 URL을 업데이트하려는 경우 유용하다. history.replaceState(stateObj, title[, url]) - Parameters stateObj : state 객체는 replaceState에 전달된 history 항목과 연관된 JavaScript 객체입니다. state object는 null일 수 있다. const data = { name = 'history', value = 'replaceState' } title : 나중에는 사용할 수도 있지만, 대부분의 ..
-
DragEventSTUDY/프론트엔드 2021. 2. 4. 11:06
drag : 요소 또는 텍스트 선택이 드래그 될 때 시작된다. dragend : 드래그 작업이 종료 될 때 (마우스 버튼을 놓거나 Esc 키를 눌러) 시작된다. dragenter : 드래그 한 요소 또는 텍스트 선택 항목이 유효한 드롭 대상에 들어가면 시작된다. dragexit : 요소가 더 이상 드래그 작업의 즉시 선택 대상이 아닌 경우 시작된다. dragleave : 드래그 한 요소 또는 텍스트 선택이 유효한 드롭 대상을 벗어날 때 시작된다. dragover : 요소 또는 텍스트 선택이 드래그되고 마우스 포인터가 유효한 놓기 대상 위에있을 때 연속적으로 발생한다. dragstart : 사용자가 요소 또는 텍스트 선택 드래그를 시작하면 시작된다. drop : 요소 또는 텍스트 선택이 유효한 놓기 대상에..
-
RestTemplate & WebClientSTUDY/백엔드 2021. 2. 3. 18:57
1. RestTemplate - Spring 3부터 지원 되었고 REST API 호출이후 응답을 받을 때까지 기다리는 동기방식이다. - Blocking I/O 기반의 Synchronous API (순서가 있는 처리) 스프링 부트는 Rest Template을 쉽게 사용할 수 있도록 빈을 등록해준다. 이때 빈은 RestTemplateBuilder를 빈으로 등록해 준다. Builder를 주입받아서 필요시마다 Build를 하고 RestClient를 생성해서 사용할 수 있다. 어플리케이션이 RestTemplate를 생성하고, URI, HTTP메소드 등의 헤더를 담아 요청한다. RestTemplate 는 HttpMessageConverter 를 사용하여 requestEntity 를 요청메세지로 변환한다. RestT..
-
@Mock, @MockBeanSTUDY/백엔드 2021. 2. 3. 17:06
1. @Mock - org.mockito.Mock - Mockito 라이브러리 내에 위치한다. - when이나 given 등을 이용해서 mock 객체가 특정 메서드를 호출했을 때, 동작하는 방식을 설정해 줄 수 있다. - spring에서 어느 의존성도 필요하지 않을 때 사용된다. - @InjectMocks과 함께 사용될 수 있다. @Mock 객체를 @InjectMocks 객체에 주입시킬 수 있다. @Mock private TestMapper testMapper; @InjectMocks private TestService testService; @BeforeEach void init() { this.testService = new TestService(testMapper);} @Test void test(..
-
@ControllerAdvice / @RestControllerAdviceSTUDY/백엔드 2021. 2. 3. 16:04
@ControllerAdvice - Spring에서 제공하는 어노테이션으로 모든 컨트롤러에서 선택한 패키지 또는 특정 어노테이션까지 다양한 컨트롤러에서 적용할 수 있는 전역 코드를 작성할 수 있다. @ExceptionHandler와 함께 사용할 수 있는 예외 처리에 중점을 두고 사용된다. - JSON으로 처리 결과를 반환하고 싶을 때는 @RestControllerAdvice(@ControllerAdvice + @ResponseBody)를 사용하면 된다. - AOP(Aspect Oriented Programming) 방식이다. - @Controller, @RestController에서 발생한 예외를 @ControllerAdvice 또는 @RestControllerAdvice에서 잡아 처리할 수 있다. 만약..