Dev. 17

Top 5 Most Used Architecture Patterns

Layered Architecture 이 패턴은 시스템의 컴포넌트(구성 요소)를 별개의 계층으로 분리. 주로 Presentation Layer, Business Layer, Database Layer로 구분. 예로, 사용자 인터페이스 설계시, 우리는 MVP(Model-View-Presenter) 패턴을 볼수 있음. Layered Architecture(계층 구조)의 주된 목표는 한 계층의 변화가 다른 계층에 부정적인 영향을 미치지 않도록 분리하는 것입니다. 이 아키텍처는 각각의 레이어가 고유한 책임을 갖도록하여 추상화, 캡슐화를 제공함. Event-driven Architecture 이 패턴은 느슨하게 결합된 소프트웨어 구성 요소와 서비스 간의 이벤트 생산 및 소비를 촉진합니다. 대표적인 예로 CQRS ..

Dev. 2023.12.06

Big Tech가 Production에 코드를 전송하는 방법

How Big Tech Ships Code to Production 크게 단계를 위 내용처럼 나누었다. Plan(계획) P1. 사용자 피드백, 요구사항 수집( product 팀 ) P2. 수집된 요건을 더 작은 작업 항목(work items)이나 사용자 이야기로 생성( product & engineering 팀 ) Development D1. P2 단계에서 생성된 항목에 대해 sprint 미팅에서(1~2주기간) 개발자가 pick up (좀더 규모가 큰 프로젝트에서는 작업이 여러번의 스프린트를 통해 수행될수도 있음. 엔지니어링 관리자 또는 tech 리더가 팀 역량의 균형을 맞추기 위해 스프린트 전반에 걸쳐 항목의 우선순위를 정하고 순서 결정) D2. Sprint가 계획되면, 개발 착수. 이때 규모가 있다면..

Dev. 2023.11.30

#1. 나만의 앱 만들기

Step 1. Data source 입수하기 -> 현재 막연히 생각하고 있는 앱이 실현 가능한지 어려운지 판단하기 위해, 데이터를 스크래핑 해서 가져올수 있는지를 알아보자 To-do List 작성하기 Data source 입수를 위해 Scraping 해서 데이터를 가져오는 프로그램을 작성해보자 -> 완료 이를 DB에 적재해보자 관련 API 까지 작성해보자 How to? -> 노마드코더 웹 스크래퍼 만들기 클론코딩 해보기 https://nomadcoders.co/ 노마드 코더 Nomad Coders 코딩은 진짜를 만들어보는거야!. 실제 구현되어 있는 서비스를 한땀 한땀 따라 만들면서 코딩을 배우세요! nomadcoders.co 23/6/2(금) Start! 실제 앱 개발을 위해서는 굳이 백엔드 구성 없이 ..

Dev./Mobile 2023.06.02

Flux, WebFlux, Spring WebFlux 개념 정리

📌 1. Flux 란? 리액티브 프로그래밍 모델을 따르는 자바스크립트 라이브러리인 리액터(Reactor) 프로젝트에서 사용되는 개념. Flux는 Pub-Sub 패턴을 기반으로 하며, 데이터 스트림을 처리하는데 사용된다. 데이터를 스트림으로 처리하는데 적합한 API를 제공하며, 데이터를 처리하는 방법을 정의하는 함수형 인터페이스를 제공. Flux는 일반적으로 비동기 방식으로 데이터를 처리하기에, 블로킹이 발생하지 않고 더 효율적으로 데이터를 처리할 수 있다. 🎯 Flux 아키텍쳐란? 단방향 데이터 흐름을 통해 보다 예측가능한 상태를 관리할 수 있는 클라이언트 사이드 웹 어플리케이션 아키텍쳐 📌 2. WebFlux란? WebFlux 란 client, server 에서 reactive 스타일의 어플리케이션의 ..

Dev./Framework 2023.03.29

Apache Kafka(KRaft) 구성하기 - 1(기동까지)

Step 1 : GET KAFKA 아래에서 최신 버전 카프카 다운로드(일단 최신으로 한번해보자구 ..) https://kafka.apache.org/downloads Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org 원하는 위치로 옮긴 이후 압축 해제 tar -xzf kafka_2.13-3.4.0.tgz cd kafka_2.13-3.4.0 bin -> binary, ShellScript config -> 설정에 필요한 파일들 *server.properties libs -> binary에서 필요한 라이브러리들 추가로 data 디렉토리 생성해두자 #broker 에서 생성되는 데이터 저장을 위해 디렉토리를 미리 만들자 m..

Dev./Apache Kafka 2023.02.21

JBoss 란?

What is JBoss Application Server? JBoss 애플리케이션 서버는 Red Hat에 의해 개발된 오픈소스 미들웨어 플랫폼으로 Java 애플리케이션들과 다양한 다른 소프트웨어 애플리케이션의 구현을 위해 사용됨. 비즈니스 규모에 맞게 확장할 Java 서비스들을 빌드하고 배포할 수 있음. JBoss 애플리케이션 서버를 WildFly 10과 통합하면 메시징, HA(high-availability) 클러스터링, 분산 캐싱과 같은 기능을 구현 할 수 있음. Linux, Unix, OS X(Mac), Windows 서버 모두 Run 가능 What is Jboss EAP 6? JBoss EAP 6는 개방형 표준을 기반으로 개발된 오픈소스 미들웨어 플랫폼으로 Java EE6 인증을 받은 제품. J..

Dev./Java 2022.06.07

[Prometheus] Metric Types

Prometheus 데이터 구조 시계열 데이터를 처리하기 위한 기본 데이터 구조는 다음과 같이 정의 됩니다. type sample struct{Labels map[string]string Value float64} Metric 이란? Timestamp와 보통 한두가지 숫자 값을 포함하는 이벤트. 쉽게 수집하는 시계열 데이터로 이해. 프로메테우스의 메트릭 Metric_Name{ field1 = value1, field2=value2} VALUE 로 수집된다. 아래는 SpringBoot 2.7.0 에서 actuator와 micrometer-registry-prometheus를 활용하여 띄운 prometheus sample 값(https://github.com/hotpotato0/boot-db-exporter..

Dev./Monitoring 2022.06.03

[Spring] Configuration 비교

Springboot 설정 파일 yaml 사용법 대부분의 애플리케이션에서 설정(Configuration)과 관련된 변수(정보)들은 보통 파일에 쓰고 읽는 방식으로 프로그래밍함. 외부에 설정파일을 넣을 수도 있고, 내부적으로 프로젝트에 넣을 수도 있다. 파일 포맷 또한 다양하다(.properties, .ini) Springboot 에서도 이런 Configuration에 대한 내용을 다양한 포맷의 파일에 적고, 읽기가 가능한데, 그중 가장 적합하고 권장하는 방식인 yaml에 대해 간단히 정리해보자 *.properties vs *.yml [properties] spring.datasource.hikari.driver-class-name=org.mariadb.jdbc.Driver spring.datasource...

Dev./Spring 2022.05.18