WEB 20

분산 데이터 스트리밍 플랫폼 카프카(Kafka와) 카프카 성능 알아 보기

이번 포스팅에서는 분산 데이터 스트리밍 플랫폼으로 알려져 있는 Kafka에 대해 알아보려고 합니다. 카프카, 데이터 플랫폼의 최강자를 읽고 정리하는 글입니다. 카프카, 데이터 플랫폼의 최강자 : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 위의 책을 읽고 공부하며 정리한 글이기 때문에, 틀린 부분이 있을 수 있으니 참고 부탁드립니다. 카프카(Kafka)란? 카프카(Kafka)는 분산 스트리밍 플랫폼으로, 대용량의 데이터 스트림을 처리하고 저장할 수 있는 오픈 소스 소프트웨어입니다. 아파치 소프트웨어 재단(Apache Software Foundation)에서 현재 개발 및 관리되고 있으며, 고성능, 내고장성, 확장 가능성 및 실시간 데이터 처리를 위한 도구..

WEB/Study 2023.10.01

[Spring]AOP 완전 정복하기(개념과 구성 요소)

Spring AOP(Aspect-Oriented Programming)은 스프링 프레임워크에서 제공하는 기능 중 하나로, 애플리케이션의 여러 부분에서 로깅, 트랜잭션 관리, 보안 등과 같은 공통 기능을 분리하고 모듈화 하는 데 사용됩니다. 이를 통해 애플리케이션의 핵심 비즈니스 로직과 관심 사항을 분리하여 코드의 재사용성, 유지 보수성, 확장성을 향상할 수 있습니다. Spring AOP의 주요 개념과 구성 요소 Spring AOP의 주요 개념과 구성 요소는 다음과 같습니다. 1.Aspect(관점) Aspect는 공통 관심 사항을 정의하는 모듈입니다. Aspect는 Advice, PointCut 및 Introduction의 세 가지 주요 구성 요소를 포함합니다. 2.Advice(조언) Advice는 Asp..

WEB/Spring 2023.09.13

웹 크롤링과 웹 스크래핑의 개념과 차이점

웹 상에서 데이터를 추출하기 위한 방법은 대표적으로 두 가지 방법이 있습니다. 바로 웹 크롤링과 웹 스크래핑입니다. 이 두 가지 데이터 추출 방법의 개념과 차이에 대해 알아보도록 하겠습니다. 정보 수집과 데이터 추출웹에서의 데이터 추출이란 웹 페이지의 HTML 구조를 파싱하고 원하는 정보를 추출하는 과정을 말합니다. 하지만 이러한 데이터 추출 이전에는 반드시 정보 수집 과정이 필요합니다. 따라서 웹 크롤링과 웹 스크래핑에 대한 개념을 알고 있어야 합니다. 웹 크롤링(Web Crawling) 이란?웹 크롤링은 웹 상의 다양한 웹 페이지를 자동으로 탐색하고 수집하는 과정을 의미합니다. 크롤러 혹은 스파이더라고 불리는 프로그램을 사용하여 여러 웹 페이지를 순회하며 링크를 추적하거나 사이트의 내용을 수집합니다...

WEB/Study 2023.08.10

[Spring]Initializr를 사용하여 간편하게 프로젝트 생성하기

Spring 프로젝트를 시작하기에 앞서 가장 첫 단계인 프로젝트에 대한 설정을 쉽게 할 수 있는 도구인 Spring Initializr에 사용법에 대해 작성하려 한다. Spring Initializr이란? Spring Initializr은 스프링 프레임워크 기반의 프로젝트를 빠르게 설정하고 초기화할 수 있는 도구입니다. 개발자들이 어렵지 않게 스프링 프로젝트를 생성할 수 있도록 도와주는 웹 기반의 도구이며, 프로젝트의 구조와 의존성 그리고 추가적인 설정을 사용자에 요구에 맞게 선택하고 생성할 수 있습니다. 기존의 SpringBoot 프로젝트를 만들기 위해서는 IDE 상에서 직접 프로젝트를 생성하였다. 하지만 처음 스프링을 접하는 사용자들에겐 프로젝트에 대한 설정을 하기에 많은 어려움이 있었고, 아래 주소..

WEB/Spring 2023.08.10

[Spring]MVC모델과 비교되는 WebFlux에 대해 알아보자

Spring Framework에는 대표적인 프로그래밍 모델이 있습니다. 하나는 가장 많이 알고, 대중적으로 쓰이는 Spring Mvc모델과 두 번째로는 이번에 소개할 Spring WebFlux 모델입니다. 이번 포스팅에서는 WebFlux 모델을 MVC 모델과 비교해서 알아보도록 하겠습니다. Spring WebFlux란? Spring WebFlux는 스프링 프레임워크의 일부로서, 비동기 및 리액티브 프로그래밍을 지원하는 모듈입니다. 기존의 Spring MVC와 비교하여 기존과 다른 리액티브 프로그래밍의 개념을 도입하여 데이터 스트림을 처리하고 더 많은 동시 요청을 처리할 수 있는 확장성 있는 웹 애플리케이션을 개발할 수 있게 해 줍니다. 리액티브 프로그래밍이란? Spring WebFlux와 Spring M..

WEB/Spring 2023.08.09

[MyBaits]Mapper의 쿼리 실행 후 조회 데이터의 개수를 가져오는 방법

Spring 프로젝트를 진행할 때 비즈니스 로직에서 mapper의 쿼리를 호출할 때 조회된 행의 개수가 필요한 경우가 있다. 이때 개수를 가져오는 방법에 대해 알아보자. 조회된 행의 개수 가져오는 방법 가장 간단한 방법은 다음과 같습니다. SELECT COUNT(*) FROM users; 'SELECT COUNT( * ) ' 쿼리를 실행하여 조회된 데이터의 개수를 얻는 방법입니다. 이제 Mapper를 작성했으니 이를 호출하는 Java 코드를 작성해 보도록 하겠습니다. // Java 코드에서 MyBatis 사용 public interface UserMapper { int getUserCount(); } // 호출 예시 SqlSession sqlSession = sqlSessionFactory.openSes..

WEB/Spring 2023.08.08

CSR과 SSR는 어떤 차이가 있을까?

대표적인 렌더링 방식인 CSR과 SSR의 각각의 특징에 대해 알아보고 둘의 차이점에 대해 알아보도록 하겠습니다. 렌더링(Rendering) 이란? 렌더링(Rendering)이란 서버의 데이터와 화면 각 요소의 템플릿을 조합하여 시각적인 출력물을 생성하는 과정을 의미합니다. 일반적으로 사용자 인터페이스를 만들거나 화면에 노출되는 그래픽이나 텍스트를 출력하는 과정에서 렌더링을 하게 됩니다. 현재 우리가 사용하는 모든 웹 애플리케이션 또한 동일한 렌더링 과정이 발생하는데, 대표적인 렌더링 방식은 SSR(서버 사이드 렌더링)과 CSR(클라이언트 사이드 렌더링)이 있습니다. 이 두 개의 렌더링 방식에 동작과정 및 차이에 대해 알아보도록 하겠습니다. SSR(서버 사이드 렌더링) 이란? 서버 사이드 렌더링(Serve..

WEB/Study 2023.08.02

웹 애플리케이션의 보안의 기본, Spring Security 알아보기

Spring Security는 Spring 기반 웹 애플리케이션의 보안성을 올리기 위해 활용되는 프레임워크로서, 사용자 인증, 인가, 보안 설정 등 다양한 기능을 제공합니다. 이 글에서는 Spring Security의 기본 개념과 주요 기능을 소개하고, 웹 애플리케이션 보안 강화를 위한 최적의 방법 또한 알아보도록 하겠습니다. Spring Security란? Spring Security는 웹 애플리케이션의 보안성을 높이기 위해 사용되며, 간편하게 개발 및 관리할 수 있습니다. 또한 이 프레임워크를 사용함으로써 개발자들이 보안에 더욱 집중할 수 있게 되며, 더 나아가 취약점을 최소화하는 안전한 웹 애플리케이션의 구축을 할 수 있도록 도와줄 수 있습니다. 이제 Spring Security에 주요 특징과 기능..

WEB/Spring 2023.07.26

[Spring]Feign Client를 활용한 마이크로서비스 통신 방법

마이크로서비스 아키텍처에서는 다양한 서비스들이 작은 단위로 분리되어 개발되고 운영됩니다. 이로 인해 서비스들 사이의 통신이 중요한 이슈가 되며, Spring Feign Client를 활용하면 간편하고 효율적인 통신 방법을 구현할 수 있습니다. 이 블로그에서는 Spring Feign Client를 사용하여 마이크로서비스 간 통신을 설정하는 방법과 이점에 대해 자세히 설명하겠습니다. Feign Client란? Spring Feign Client는 Spring Cloud 프로젝트의 일부로, 마이크로서비스 아키텍처에서 서비스 간 통신을 추상화하는 라이브러리입니다. Feign Client를 사용하면 HTTP RESTful API 호출을 간편하게 처리할 수 있으며, 클라이언트 인터페이스를 정의하여 서비스 간 통신을..

WEB/Spring 2023.07.22

[Spring]기본적인 어노테이션(Annotation)을 알아보자

Spring의 어노테이션의 사용으로 인해 기존의 XML 기반의 설정보다 간편하고 개발자가 더 쉽고 직관적으로 Spring 프레임워크의 기능을 활용할 수 있습니다. 이번 포스팅에서는 Spring으로 개발을 하면서 자주 사용되는 어노테이션의 종류를 알아보고 각각의 어노테이션에 대한 기본적인 기능을 알아보도록 하겠습니다. 어노테이션(Annotation)은 왜 등장하였을까? Spring 어노테이션은 스프링 프레임워크의 버전 2.5부터 도입되었습니다. 이전 버전의 스프링에서는 XML 기반의 설정이 주로 사용되었으며, 모든 빈(Bean)과 의존성 주입(Dependency Injection)은 XML 설정 파일에서 수행되었습니다. 그러나 XML 기반의 설정은 매우 유연하지만 작성해야 할 코드가 많고 가독성이 떨어지는..

WEB/Spring 2023.07.21