본문 바로가기

👩‍💻TIL66

[Spring] WebFlux의 개념 / Spring MVC와 간단비교 💡 WebFlux란? Spring WebFlux는 Spring 5에서 새롭게 추가된 모듈입니다. WebFlux는 클라이언트, 서버에서 reactive 스타일의 어플리케이션 개발을 도와주는 모듈이며, reactive-stack web framework이며 non-blocking에 reactive stream을 지원합니다. 장점 : 고성능, spring 과 완벽한 통합, netty 지원, 비동기 non-blocking 메세지 처리 단점 : 오류처리가 다소 복잡하다. 스프링5는 Spring Boot 2 부터 도입이 되었으며, Spring Boot 2 의 stack 는 아래와 같습니다. Reactive Stack 를 사용할지, Servlet Stack 를 사용할지 선택이 필요합니다. 💡Spring MVC vs... 2021. 5. 7.
[소프트웨어 공학] 애자일 방법론 (Agile) - SW개발 프로세스 모델 📌애자일방법 - 변화를 수용하고, 협업을 강조하며, 제품의 빠른 인도를 강조하는 반복적 개발방법 - 문서화 작업보다 코드, 소프트웨어 자체를 중요시함 - 요구사항의 변화는 불가피하고 이것을 대응하는 것이 현실적 - 기존의 개발프로세스는 설계기간이 길며 재작업시 오버헤드가 크다는 생각 - 환경의 빠른 변화에 대응하고 빠른 인도가 중요하다는 생각 애자일 : 요구사항이 바뀌기 쉬운 중소형의 비즈니스 시스템이나 전자상거래 응용에 적합 애자일(Agile) 방법론은 구체적인 개발 프로세스가 아닌 개발 지침, 철학에 가깝다. 변화를 수용하고 협업과 제품의 빠른 인도를 강조하는 반복적 개발 방법 문서화보다 코드, 프로그램, 소프트웨어 자체를 중요시 함 요구사항의 변화는 불가피하며 이에 대응하는 것이 현실적이다. 기존의.. 2021. 5. 7.
[소프트웨어 공학] 소프트웨어 개발 프로세스란? [소프트웨어 공학] 소프트웨어 개발 프로세스란? 소프트웨어 개발 프로세스(software development process)는 소프트웨어 시스템을 개발하거나 유지보수할 목적으로 수행되는 활동 일체 또는 절차를 뜻한다. 비슷한 말로 소프트웨어 생명 주기가 있다. SW개발에서의 프로세스 : 작업 순서의 집합 + 제약 조건(일정, 예산, 자원)을 포함하는 일련의 활동(activity) 👉🏻 작업(task) : 소프트웨어를 개발할 때 일을 수행하는 작은 단위 💡 소프트웨어 개발 프로세스의 목적은 전체적인 개발에 대한 가이드라인을 제공하는 데 있다. 체계적인 개발을 지원할 수 있으며 프로젝트의 관리에도 도움을 준다. 개발 조직은 적당한 프로세스 모델을 보유하여 공통의 개발문화와 공통의 기술을 제공해야한다. 💡소.. 2021. 4. 1.
[소프트웨어 공학] 개발 프로세스-반복진화형 모델/점증진화형 모델 [소프트웨어공학] 개발 프로세스 - 반복진화형 모델/ 점증진화형 증분 모델 /프로토타이핑 소프트웨어 개발 프로세스는 개발 활동들의 절차이며 프로세스 모델은 프로세스의 추상화된 표현이다. 프로세스 모델 중 반복적 모델은 반복 진화형 모델과 점증 진화형 모델로 구분이 가능하다. 📌 반복진화형 모델 불완전한 요구사항으로 초기버전을 만든 후, 요구사항을 정제하는 작업을 반복하여 만들어가는 소프트웨어 프로세스 모델 분명한 요구사항과 시스템의 범위를 정하는 노력이 선행됨 한번의 진화단계에서 프로토타이핑을 통해 요구사항을 보완하며 점차적으로 명확한 요구사항 도출 더보기 💡 프로토타이핑 방법 개발초기에 간단한 모형(prototype)을 만드는 것 프로토타입을 통해 사용자가 초기에 요구사항 및 피드백을 할 수 있도록 하.. 2021. 3. 27.
[소프트웨어공학] 개발 프로세스 - 폭포수모델 [[소프트웨어공학] 개발 프로세스 - 폭포수모델 소프트웨어 개발 프로세스는 개발 활동들의 절차이며 프로세스 모델은 프로세스의 추상화된 표현이다. 📌 폭포수 모델 선형순차모델, 고전적 소프트웨어 프로세스 모델 1️⃣ 타당성 조사 : 문제점을 파악하고 해결방안을 제시하여 투입비용대비 이익 평가 조직 측면의 타당성: 조직의 전략적 목표를 충족하는가 경제적 타당성 : 비용 대비 수익 효과가 큰가 기술적 타당성 : 정해진 시간 안에 현재의 기술 수준으로 개발할 수 있는가 운영의 타당성 : 운영/사용 능력, 다른 시스템과의 연동 가능성 판단 👉🏻 제한된 시간내에 예측을 해야하기 때문에, 시간적 제약과 정신적 압박감이 존재 2️⃣요구분석과 명세 : 프로젝트의 성패를 좌우하는 중요한 단계 👉🏻 무엇을 개발할지 결정 요.. 2021. 3. 27.
[소프트웨어공학] 개발 프로세스 - V 모델과 나선형 모델 [소프트웨어공학] 소프트웨어 개발 프로세스 - 나선형 모델과 V 모델 소프트웨어 개발 프로세스는 개발 활동들의 절차이며 프로세스 모델은 프로세스의 추상화된 표현이다. 소프트웨어 개발 프로세스 모델 중 나선형 모델과 V 모델은 각각 반복 진화형 모델과 폭포수 모델의 확장된 형태이다. 👉🏻 반복 진화형 모델과 폭포수 모델에 대해 더 알아보기 📌 V 모델(V-Model) 폭포수 모델의 확장된 형태로 분석이나 설계 등의 개발 단계마다 상응하는 테스트 단계가 존재하는 소프트웨어 프로세스 모델 각 개발단계별로 상응하는 테스트 작업이 존재 V 형태로 진행 - 아래 방향으로 진행하다가 코딩 단계를 거치면서 위로 향함 코드 뿐만 아니라 요구사항과 설계결과도 테스트할 수 있어야함. 폭포수 모델의 확장된 형태로, 폭포수 모.. 2021. 3. 27.
[elasticsearch] 로그스태시로 엘라스틱서치에 Oracle 데이터 동기화하기 이전 글로 Logstash를 이용하여 MySQL에 있는 데이터를 엘라스틱서치로 동기화하는 것을 알아보았습니다. 👉로그스태시로 엘라스틱서치 MySQL 동기화하기 오늘은 MySQL이 아닌 오라클에 있는 데이터를 엘라스틱서치로 동기화하는 것을 정리해보려고 합니다. 먼저 큰 흐름은 MySQL이나 Oracle이나 거의 유사합니다. 다른 점이 있다면, 각각의 jdbc에 맞는 라이브러리를 사용한다는 것? 정도가 차이라고 할 수 있습니다. 1️⃣ 먼저 엘라스틱서치와 같은 버전의 Logstash를 다운받습니다. (👉 다운로드 링크) 2️⃣ jdbc 플러그인을 설치합니다. ./bin/logstash-plugin install logstash-input-jdbc 3️⃣ jdbc 플러그인이 설치되면 자신이 사용하는 RDBMS.. 2021. 2. 3.
[elasticsearch] 로그스태시로 엘라스틱서치 MySQL 동기화하기 [elasticsearch] 로그스태시로 엘라스틱서치 mysql 동기화하기 ELK Stack은 Elastic Search, Logstash, Kibana를 통칭하는 말인데, 데이터 로그들이 logstash를 거쳐 엘라스틱서치에 저장되고, 이를 시각화하여 Kibana에서 보여주게 된다. 그중에서도 로그스태시는 다양한 소스에서 데이터를 수집해 이를 변환하여, 저장소로 전달하는 역할을 한다. 소스의 종류, 사이즈, 형태에 관계 없이 수집할 수 있는 것이 특징적이다. 데이터가 로그 스태시를 거칠 때 필터링이 발생하는데, 필터를 통해 각 이벤트를 공통 형식으로 변환, 통합해줄 수 있다. 먼저, 로그스태시를 활용하여 jdbc(mysql)에 저장된 데이터를 엘라스틱서치로 자동으로 동기화하도록 설정하기를 해보자! 1️.. 2021. 1. 27.
[kafka] 카프카 시작하기 튜토리얼 [kafka] 카프카 시작하기 튜토리얼 아파치 카프키 튜토리얼의 내용(kafka.apache.org/quickstart)을 따라 정리한 내용입니다. STEP 1: GET KAFKA 1) 링크 클릭하여 최신버전의 kafka를 다운로드 합니다. (저는 wget을 사용하여 tgz파일을 다운받았습니다. 👉 wget 사용법이 궁금하다면 wget으로 파일 다운로드 하기 ) $ wget https://downloads.apache.org/kafka/2.7.0/kafka_2.13-2.7.0.tgz 2) 다운받은 링크를 압축해제 합니다. $ tar -xzf kafka_2.13-2.7.0.tgz $ cd kafka_2.13-2.7.0 STEP 2: START THE KAFKA ENVIRONMENT (참고, 카프카 환경을 .. 2021. 1. 20.
[kafka] 메세지큐/ 카프카의 구조, 구성요소, 작동원리 [kafka] 메세지큐, 카프카의 구성요소, 작동원리 카프카(apache kafka)는 메세지큐 방식으로 대용량 데이터를 수집하고 이를 사용자들이 실시간 스트림으로 소비할 수 있게 만들어주는 역할을 하며, 다양한 기업에서 여러 스토리지와 분석 시스템에 데이터를 연결하기 위한 필수 도구로 인식되고 있다. 💡 카프카 탄생 배경 카프카는 '링크드인'에서 탄생하게 되었으며, 현재는 아파치 카프카로 오픈소스로 제공되고 있다. 기존의 링크드인 시스템에서는 하나의 서비스가 너무 많은 시스템과 연결되어 발생하는 문제를 해결하기 위해 아래와 같은 목표로 새로운 시스템을 만들었다. 프로듀서와 컨슈머의 분리 메시징 시스템과 같이 영구 메시지 데이터를 여러 컨슈머에게 허용 높은 처리량을 위한 메시지 최적화 데이터가 증가함에 .. 2021. 1. 19.