DEV 52

Spring Security 아키텍처

Filter Spring Security는 Sevlet Filter에서 동작함 Servlet Filter를 먼저 확인해야 함 Client → FilterChain FilterChain = Filter + Servlet 요청을 받으면 서블릿 컨테이너에서 Filter, Servlet을 포함하고 있는 FilterChain을 생성 위 그림에서 Servlet은 DispatcherServlet HttpServletRequest의 URI에 의해서 처리됨 Filter의 역할 다음 차례의 Filter, Serlvet이 동작하는 것을 막고 HttpServletResponse에 응답을 씀 HttpServletRequest, HttpServletResponse를 변경하여 다음 차례의 FilterChain에서 변경된 사항을 사..

DEV/Spring Security 2024.01.30

Servlet부터 MVC의 도입까지

Web Server, WAS의 차이점(nginx? apache? tomecat?, CDN?) Web Server와 WAS의 개념부터 시작해야합니다. Web Server : HTTP 기반, 정적 파일 제공 (HTML, CSS, JS, Image, Video) ex) NGINX, Apache WAS : HTTP 기반, Web Server 기능 포함, 동적 HTML, HTTP JSON API, 코드를 실행해서 애플리케이션 로직 수행 서블릿, JSP, 스프링 MVC 같은 것들이 WAS에서 동작한다 자바에서는 서블릿 컨테이너 기능을 제공하면 WAS라고 부른다 ex) tomcat, jetty, undertow 위와 같이 구분할 수 있지만, 명확한 구분이 존재하지는 않습니다. Web Server에서 애플리케이션 로직..

DEV/Spring MVC 2024.01.29

jevn 설정 (JDK 버전 변경하기)

1. jenv 설치 brew install jenv 2. jdk 설치 brew tap AdoptOpenJDK/openjdk brew install --cask adoptopenjdk8 brew install --cask adoptopenjdk11 아래와 같은 에러가 발생하는 경우에는 hwanseok@hwanseoks-MacBook-Pro ~ % brew install --cask adoptopenjdk8 Error: Cask adoptopenjdk8 exists in multiple taps: homebrew/cask-versions/adoptopenjdk8 adoptopenjdk/openjdk/adoptopenjdk8 아래의untap을 해준 뒤 다시 install을 하면 된다 brew untap ado..

DEV/JAVA 2024.01.26

모니터링 데이터에는 LLM를 어떻게 붙여야할까?

1. 들어가며 알파고와 이세돌의 경기가 있었던 날이 2016년 3월이니, 벌써 거의 8년 전의 일입니다. 작년 2023년에는 GPT-4가 세상에 나왔습니다. 1년마다 정말 큰 변화를 맞이하고 있습니다. 모니터링 데이터 속에서 하루 하루를 살아가다보니 LLM의 흐름을 모니터링 데이터의 관점에서 생각해보게 되었습니다. 텍스트 데이터만 입력으로 받는 LLM을 모니터링 데이터에 어떻게 적용할 수 있을까요? 2. Elastic은 어떻게 했을까? 2.1. Vector DB 조금만 알아보기 Elastic Search는 내부적으로 Vector DB를 사용합니다. Elastic Master Class에서는 “Lucene을 세계 최고의 Vector DB로 만들겠다”고 선언하기도 했습니다. 그러면 이 Vector DB는 무..

DEV/INSIGHT 2024.01.02

Java Thread Tutorial | Thread 생성부터 synchronized까지

STEP 1. 메인 쓰레드, 백그라운드 쓰레드 자바 프로그램을 실행하면 쓰레드가 항상 실행됩니다. GC 등을 위해서 백그라운드에서 실행되는 쓰레드도 존재합니다. class HelloWorld { // main 메서드를 실행시키는 하나의 쓰레드가 반드시 동작함 public static void main(String[] args) { System.out.println("Hello World"); } // GC 등 백그라운드 쓰레드도 함께 실행됨 /** * Hello World * * Process finished with exit code 0 */ } STEP 2. 멀티 쓰레드가 필요한 이유 아래의 코드에서 네트워크 작업은 3초, 디스크 작업은 5초가 소요되도록 설정했습니다. 멀티 쓰레드 없이 순차적으로 수..

DEV 2023.11.30

직접 구현하는 데이터 플랫폼 | 01. 데이터 수집 계층

1. 들어가며 요즘 이 책에서 '한글'로 설명하는 내용을 '코드'로 구현해보고 있습니다. 회사에서 업무 일정이 조금 빠듯하고 지칠 때도 있지만, 그래도 최근에 이 책을 정말 재밌게 읽고 있습니다. 내용이 좀 딱딱할 수 있지만 한 줄 한줄이 지금까지 쌓은 인사이트들의 집합이라는 생각을 하면서 추가했습니다. 재밌게 읽으실 수 있기를 바랍니다. 모든 코드는 hwanseok-dev/data-platform에 포함되어 있습니다. 본문에서 다루는 코드는 ingest-2023-11-17 태그를 기준으로 작성되었습니다. 2. 수집 계층이란 데이터 플랫폼에서 수집 계층은 소스 시스템에서 데이터를 가져오는 역할을 합니다. 소스 시스템에서 생성 및 수집된 데이터를 우리의 서버로 가져오는 첫 번째 관문입니다. 3. 소스 시스..

DEV 2023.11.17

데이터 플랫폼 설계와 구축 | 03. 빅3의 활용과 확대 | 수집, 저장, 처리, 메타데이터 계층 설계시 고려사항

현대 플랫폼 아키텍처가 가진 계층들과 각각의 역할을 설명한다. 이와 더불어 고속/저속 스토리지, 스트리밍과 배치 방식 비교, 메타데이터 관리, ETL 오버레이 , 데이터 소비자의 개념도 설명한다. 4계층으로 구성된 데이터 플랫폼 수집 저장 처리 서비스 클라우드 데이터 웨어하우스 / APIs / 데이터 내보내기 데이터 플랫폼의 6계층 수집 : 스트리밍 데이터와 배치 데이터를 수집해서 각각 다르게 처리한다 스트리밍 데이터 : 고속 스토리지 배치 데이터 : 저속 스토리지 / 데이터 레이크에 접속해 활용 스트리밍 모드 , 배치 모드에서 다양한 데이터 소스로 보안 연결할 수 있어야 한다2 데이터 변환이나 데이터 포맷 변환 과정을 크게 거치지 않고도 소스 시스템에서 데이터 플랫폼으로 데이터를 전송할 수 있어야 하며..

DEV/Data Platform 2023.11.06

데이터 플랫폼 설계와 구축 | 02. 데이터 웨어하우스만이 아닌 데이터 플랫폼인 이유 | 데이터 플랫폼에서의 데이터 수집,처리,엑세스 방식

데이터 수집 애저 데이터 팩토리와 같은 관리형 서비스를 사요하면 데이터 플랫폼이나 데이터 웨어하우스로 데이터를 수집하는 파이프라인은 비교적 쉽게 만들 수 있다. ... 그러나 데이터 수집 파이프라인이 동작하는 방식에서 클라우드 데이터 플랫폼과 클라우드 데이터 웨어하우스 구현 간에 근본적인 차이점이 있다. 클라우드 데이터 웨어하우스만 활용한 사례 마케팅 캠페인 데이터(MYSQL) - 애저 데이터 팩토리 서비스 - 애저 시냅스 (데이터 스토리지와 처리) 클릭 스트림 로그 - 애저 데이터 팩토리 서비스 - 애저 시냅스 (데이터 스토리지와 처리) MYSQL 연동 서비스를 통해서 캐페인 데이터를 입력 받는다. DW에서 저장할 스키마에 맞게 변경한다. 입력 데이터를 그대로 유지하기도 한다. 데이터 팩토리를 출력 데..

DEV/Data Platform 2023.11.04

데이터 플랫폼 설계와 구축 | 02. 데이터 웨어하우스만이 아닌 데이터 플랫폼인 이유 | 데이터 웨어하우스와 데이터 플랫폼의 차이

단일 데이터 웨어하우스와 데이터 플랫폼의 차이 A : 단일 클라우드 데이터 웨어하우스 기반의 아키텍처 B : 확대된 설계 원칙을 적용한 데이터 플랫폼 아키텍쳐 주요 사항 소스 데이터 구조가 변경될 때 데이터 플랫폼 파이프라인에는 어떤 일이 벌어지는가 대규모 반정형 데이터가 어떤 과정을 통해서 분석이 진행되는가 데이터를 제공하고 분석하는 방법 관점 기업에서 조그만 리포팅 솔루션을 구축해야 한다. 관계형 데이터베이스에 저장된 캠페인 데이터와 사용자의 클릭 정보를 스트림으로 저장한 클릭 스트림 정보가 있다. 이를 통해서 사용자들이 방문한 경로가 마케팅 캠페인의 링크로 들어온 정보인지, 그들이 누구인지를 찾아내야 한다. 마케팅 캠페인 테이블에는 id, 이메일, unique_code, send_date 정보 4가..

DEV/Data Platform 2023.11.01

데이터 플랫폼 설계와 구축 | 01. 데이터 플랫폼 소개 | 하둡 이후 퍼블릭 클라우드의 활용

# 퍼블릭 클라우드 활용 퍼블릭 클라우드는 온디맨드, 온디맨드+프로비저닝, 사용량 기반의 요금 지불 모델을 모두 지원한다. 이 퍼블릭 클라우드로 하둡의 한계를 뛰어넘는 데이터 레이크 설계가 가능하게 됐다. 이를 통해 데이터 레이크의 유연성과 확장성을 높일 수 있는 설계가 가능하고, 필요한 자원도 크게 줄일 수 있어서 비용 효과적이다. # 퍼블릭 클라우드의 장점 1. 언제나 리소스를 추가/축소 가능하다 2. 데이터 웨어하우스와 다르게 스토리지와 컴퓨팅을 각각 증설할 수 있게 되었다. 3. 사용량에 따라 비용 지불할 수 있다 4. 자본 투자/예산/상각 방식에서 운영 비용 방식으로의 전환 5. 시스템의 운영, 지원 및 업데이트를 클라우드 서비스에서 제공한다 6. 즉시 사용 가능 최근들어 수행 성능을 높여야 하..

DEV/Data Platform 2023.10.31