본문 바로가기

STUDY

(102)
1. 스프링 배치: Hello World Spring Batch 일괄 처리(Batch Process) 일괄처리(Batch Process)는 사용자의 개입 없이 또는 정해진 로직대로 스케줄링/실행되는 작업을 의미한다. 즉각적으로 처리될 필요가 없는 작업의 경우, 자원의 효율적 사용을 위해 이와 같은 방식을 사용한다. 예를 들어 쇼핑몰에서 매일의 판매 집계 데이터를 만드려고 한다면, 각각의 판매가 이루어 졌을때마다 데이터를 만들고 수정할 수도 있지만, 매일 자정에 일괄 처리를 한다면 더욱 효율적으로 같은 결과를 얻을 수 있다. 스프링 배치(Spring Batch) 스프링 배치는 일괄 처리를 위해 만들어진 프레임 워크이다. 스프링 배치는 개발자가 일괄 처리를 위한 부가적인 기능에 대한 고민 없이, 서비스를 위한 일괄처리 작업 구현에만 집중할 수 있도록 해준다. 일괄 처리를..
CSR 시대의 동적 크롤링 with Selenium Server Side Rendering / Client Side Rendering SSR(Server Side Rendering)이란 사용자에게 보여질 페이지가 서버에서 완성되어 전달되는 것을 말한다. 클라이언트(브라우저)는 그저 서버로 부터 받아온 정보를 사용자에게 그대로 보여주기만 하면 충분하다. SSR은 클라이언트의 성능에 크게 영향을 받지 않고, SEO 측면에서도 장점이 있다. CSR(Client Side Rendering)은 사용자에게 보여질 페이지가 클라이언트(브라우저)에서 만들어지는 것을 말한다. 서버는 완성된 HTML 파일이 아니라, 이를 만드는데 필요한 스크립트 코드와 관련 정보들을 반환한다. 클라이언트는 이를 자체적으로 스크립트를 실행하여 비어있는 HTML 코드들을 완성시킨다. CSR은..
채팅을 위한 노력의 역사 그리고 WebRTC 웹에서 기본적으로 클라이언트와 서버의 통신은 HTTP 방식으로 이루어진다. 클라이언트는 필요에따라 서버에 요청을 보내고 서버는 요청에 대한 응답을 보낸다. HTTP의 특징인 "단방향성"과 "비연결성"은 위와 같은 일반적인 웹상황에서 부족함이 없었다. 하지만 웹이 발전하고 풍부해짐에 따라 문제가 발생했다. 이제 사람들은 단순히 웹에서 정보 조회 뿐 아니라 사람들과 소통하고 싶어했고, 서비스 제공자들은 웹에서 채팅기능을 추가하고 싶었다. 하지만 지금까지 문제 없었던 "단방향성"과 "비연결성"이 발목을 잡았다. 처음 사람들이 생각해낸 방법은 짧은 주기로 계속 요청을 보내는 것이다(이를 Polling Request라고 부른다). 예를들어 1초마다 새로 올라온 채팅내역이 있는지 계속 요청하는 것이다. 이를 통해 ..
Java 8 ~ 11 버젼별 특징 1. Java 1.8 2014년 3월 발표. 일반 지원은 2019년 1월에 종료되었고, 연장 지원은 2030년 12월에 종료될 예정이다. 1) Interface static And default method 본래 Interface는 함수의 구현체 즉 body를 가질 수 없었다. 하지만 Java 1.8 부터는 인터페이스에 body를 가지는 static method와 default method가 추가되었다. // JavaInterface.java public interface JavaInterface { static public String interfaceStaticMethod() { return "interfaceStaticMethod"; } } // main 영역 public static void ma..
3-3) 스프링 입력값 검사: Bean Validation, Hibernate Validator, @Valid, @Constraint, ConstraintValidator - 입력값 검사 웹서비스를 이용하다보면 다양한 입력창과 유형에 따른 유효성 검사를 볼 수 있다. 예를들어, 이메일 입력창이 있으면 이메일 양식에 맞는지 검사가 이루어진다. Front에서 유효성 검사로 Server 호출을 막지만, 세상에는 짖굳은 사람들이 많기에 Front 유효성 검사를 무력화 시키는 경우도 있다. 따라서, 서버에서도 동일하게 입력값 체크를 해야한다. - 스프링에서의 입력값 검사: Bean Validation, Hibernate Validator 스프링에서는 데이터 검사 표준인 Bean Validation를 사용한다. 더 정확히는 그 구현체인 Hibernate Validator를 사용한다. 먼저 아래와 같이 Hibernate Validator를 사용할 수 있도록 dependency를 추가한..
3-2) 스프링 MVC 핸들러(Handler): @ReqeustMapping, @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, @RequestParam - 스프링 MVC 핸들러 MVC의 Controller 안에서 실제 요청을 처리하는 메소드를 핸들러(Handler)라고 한다. 사용자로부터 서버로 요청이 가면, 해당 요청에 맞는 컨트롤러의 핸들러로 요청 정보가 전해지고, 핸들러는 이를 처리하여 적절한 값을 반환 한다. 그리고 요청과 핸들러를 연결하는 것을 핸들러 맵핑(Handller Mapping)이라고 하고, @RequestMapping 어노테이션을 사용하여 맵핑이 이루어진다. - 요청 맵핑: @RequestMapping Http Request, 즉 서버로의 요청 정보는 다음과 같은 구조로 되어있다. 먼저 요청하는 첫번쨰 줄(start-line)에 메소드와 URL 요청경로가 나오고, 그 다음 헤더(http headers)에 요청자의 정보와 주고받을 데이..
[오픈뱅킹 API] 1. 사용자 인증, 토큰 발급 사용자 인증과 토큰 발급 오픈뱅킹 API를 이용하기 위해서는 먼저 인증 과정을 거쳐야한다. 서비스 사용자의 정보에 접근하기 위해서는, (1~2)먼저 사용자가 본인임을 증명하는 과정을 거친 후, 해당 인증 정보를 서비스에 넘겨준다. (3~4) 그리고 해당 인증 정보로 서비스 사용자에게 정보 조회 동의를 받았다는 것을 증명하고 인증 토큰을 받아야한다. (5~6) 이후 이 토큰을 사용하여, 사용자 정보에 접근하는 각종 오픈뱅킹 API를 호출한다. 사용자 인증 사용자 인증과정은 다음과 같다. 1. 서비스 정보를 들고, 사용자를 오픈뱅킹 본인 인증 페이지로 보낸다. 2. 사용자가 본인인증이 끝나면, 인증 정보(인증 코드)를 포함한 정보를 들고 서비스로 돌아온다. 3. 서비스는 해당 인증 정보를 획득하고 이후 과정..
[오픈뱅킹 API] 0. 오픈뱅킹 API란 오픈뱅킹 API란 최근 "뱅크샐러드" 라는 어플리케이션을 애용한다. 해당 어플은 한번의 인증으로 여러 은행, 증권 등 금융기관의 자산을 한번에 조회하고 요약하여 사용자에게 제공해준다. 그렇다면 뱅크샐러드는 어떻게 그러한 서비스를 제공할 수 있을까? 바로 오픈뱅킹 API다. 공식 사이트에서는 "오픈뱅킹은 핀테크기업이 금융서비스를 편리하게 개발할 수 있도록 은행 등 참가기관의 금융서비스를 표준화된 형태로 제공하는 인프라를 말하며, 오픈 API와 테스트베드로 구성됩니다." 라고 설명이 나와있다. 오픈뱅킹 API를 이용하면 힘들게 금융기관들에 협조 요청을 할 필요 없이, 잔액 조회 등 여러 기능을 사용할 수 있다. 학습 목표 지인들과 함께 하는 모임에서 매달 회비를 걷고, 그돈을 모아 주기적으로 만남을 가진다...