728x90
반응형

안녕하세요, 수염난아이티 입니다.

이번 페이지에서는 로드밸런서 (LB) 에 대해서 알아보겠습니다.

 

# 이미지 출처 : https://m.blog.naver.com/mathesis_time/221807095356

 

 

1. 로드밸런서 정의

로드밸런서는 네트워크 트래픽을 여러 서버에 고르게 분배하여 하나의 서버에 과부하가 걸리지 않도록 관리하는 장치 또는 소프트웨어입니다. 이를 통해 서비스 가용성을 높이고, 효율적인 리소스 사용과 성능 최적화를 도모합니다.

 

2. 로드밸런서 필요성

 

  • 트래픽 분산
    • 많은 사용자가 동시에 접속할 경우 한 서버에 트래픽이 집중되면 성능 저하나 장애가 발생할 수 있습니다. 로드밸런서는 이러한 문제를 해결합니다.
  • 고가용성 보장
    • 서버 중 일부가 장애를 일으켜도, 로드밸런서는 나머지 정상 서버로 트래픽을 자동으로 분산하여 서비스 중단을 방지합니다.
  • 확장성 제공
    • 새로운 서버를 추가하거나 제거하는 과정이 로드밸런서를 통해 관리되어 네트워크의 유연한 확장이 가능합니다.
  • 보안 강화
    • 로드밸런서가 외부 트래픽을 관리하여 악성 요청을 차단하고, 보안 정책을 적용할 수 있습니다.

 

3. 로드밸런서 예시

 

  • 하드웨어 기반 로드밸런서
    • F5 BIG-IP: 네트워크 경로에서 작동하며, 고성능 트래픽 처리를 지원합니다.
    • Citrix ADC: 고급 네트워크 관리와 성능 최적화 기능 제공.
  • 소프트웨어 기반 로드밸런서
    • NGINX: 오픈소스 기반의 소프트웨어 로드밸런서로 HTTP, TCP, UDP 트래픽 분산을 지원합니다.
    • HAProxy: 고성능 오픈소스 로드밸런서로 대규모 트래픽 관리에 적합합니다.
  • 클라우드 기반 로드밸런서
    • AWS Elastic Load Balancer (ELB): 클라우드 환경에서 서버 간 트래픽을 자동 분산합니다.
    • Google Cloud Load Balancing: 전 세계 네트워크 사용자를 대상으로 낮은 지연 시간의 트래픽 분산을 지원합니다.

 

 

읽어주셔서 감사합니다.

728x90
반응형

'▶IT World◀ > IT Basic' 카테고리의 다른 글

[it용어] 메쉬업(Mash-Up)이란?  (2) 2025.01.06
쿠버네티스(Kubernetes, k8s)란?  (4) 2025.01.01
미들웨어(Middleware)란 무엇인가?  (7) 2024.12.27
[it용어] 인증/인가 란?  (9) 2024.12.24
[it용어] FO/BO 란?  (2) 2024.12.24
728x90
반응형

안녕하세요, 수염난아이티 입니다.

이번 페이지에서는 미들웨어(Middleware)에 대해서 알아보겠습니다.

 

 

1. 미들웨어란 무엇인가?

간단하게 설명하자면, 미들웨어란 "서로 다른 시스템 간의 중개자 역할을 하는 소프트웨어" 라고 말할 수 있습니다.

미들웨어는 애플리케이션, 데이터베이스, 사용자 인터페이스 등 서로 다른 컴포넌트들이 원활히 통신할 수 있도록 돕습니다.

 

다시 말해서, 서로 다른 기종의 하드웨어나 프로토콜, 통신환경 등을 연결하여 애플리케이션과 그 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있게 하는 소프트웨어를 말합니다.

출처 : https://www.developerupdates.com/blog/what-is-middleware

더보기

미들웨어의 사전적의미

: 미들웨어는 양 쪽을 연결하여 데이터를 주고 받을 수 있도록 중간에서 "매개 역할"을 하는 소프트웨어이며, 네트워크를 통해서 연결된 여러개의 디바이스에 있는 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해주는 소프트웨어를 말한다. 3계층 클라이언트/서버 구조에서 미들웨어가 존재한다. 웹 브라우저에서 데이터베이스로부터 데이터를 저장하거나 읽어올 수 있게 중간에 미들웨어가 존재한다.

2. 미들웨어의 주요 역할

컴퓨터의 OS는 미들웨어에 비하면 상대적으로 기본적인 기능밖에 없습니다. OS가 단독으로 처리할 수 있는 일은 별로 없습니다. OS위에 설치된 프로그램들이 주로 우리가 사용하는 역할들을 수행합니다.

하지만, 미들웨어가 있다면 복잡한 처리가 가능합니다.

가령 서버와 데이터베이스와의 상호 작용은 미들웨어가 담당합니다. 웹 브라우저에서 데이터베이스로부터 데이터를 저장하거나 읽어올 수 있게 중간에 미들웨어가 존재하게 됩니다.

 

1) 데이터 전송

: 클라이언트와 서버 간의 데이터 전송을 관리합니다.

2) 통신 관리

: 분산 시스템에서 여러 서버가 서로 통신해야 할 때, 통신을 관리합니다.

3) 웹 애플리케이션 관리

: 클라이언트의 요청을 처리하고 동적 웹 콘텐츠를 생성합니다.

 

3. 미들웨어 기능에 따른 종류

1) 웹 서버

: 웹 서버는 브라우저의 요청에 따라 웹 페이지를 전송하는 미들웨어 입니다. 우리가 사용하는 PC나 스마트폰 등에서 보는 콘텐츠들은 웹 서버에 있는 문자와 이미지를 표시합니다. 이 콘텐츠들은 정적이며 웹 서버에 저장된 내용이 그대로 전송됩니다. 한편, 사용자나 시간에 의해 내용이 바뀌는 동적 콘텐츠가 요구될 때는 애플리케이션 서버에 요구합니다. 동적 콘텐츠는 쇼핑몰 사이트의 포인트나 장바구니 등을 예로 들 수 있습니다.

 

2) 애플리케이션 서버

: 웹 서버의 요청에 따라 응용프로그램에서 동적 콘텐츠를 생성하는 미들웨어 입니다. 애플리케이션은 java, PHP, Ruby 등의 언어로 작성됩니다. 애플리케이션 서버만으로 요청에 응할 수 없는 경우에는 데이터베이스 관리 서버에 요청하여 정보를 얻어야 합니다. 예를 들어 데이터베이스에 저장된 고객 데이터가 필요한 요청을 받는 경우 입니다.

 

3) 데이터베이스 관리 서버

: 데이터베이스 관리 서버는 데이터베이스 관리 시스템이 실행되는 서버 입니다. 데이터 자체는 데이터베이스 관리 서버에 저장되지 않고 어디까지나 스토리지에서 필요한 정보를 꺼내거나 쓰는 것이 데이터베이스 관리 서버의 역할입니다. 데이터베이스 관리 서버는 애플리케이션 서버로부터 요청을 받고 데이터베이스 언어인 SQL을 이용하여 필요한 정보를 추출 및 전송 합니다.

 

#출처 : https://medium.com/twolinecode/13-%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4-middleware-%EB%9E%80-23abb33ec4f4

 

#13. 미들웨어(Middleware)란?

미들웨어란, 운영 체제와 해당 운영 체제에서 실행되는 응용 프로그램 사이에 존재하며 분산 컴퓨팅 환경에서 컴퓨터와 컴퓨터간의 연결을 안전하고 용이하게 해주는 전반적 관리를 도와주는

medium.com

 

읽어주셔서 감사합니다.

728x90
반응형

'▶IT World◀ > IT Basic' 카테고리의 다른 글

쿠버네티스(Kubernetes, k8s)란?  (4) 2025.01.01
로드밸런서 (LB) 란?  (4) 2024.12.31
[it용어] 인증/인가 란?  (9) 2024.12.24
[it용어] FO/BO 란?  (2) 2024.12.24
JSON 파일 이란?  (3) 2024.12.11
728x90
반응형

안녕하세요, 수염난아이티 입니다.

it시스템을 개선/개발하는 업무를 하다보면 관리자/사용자의 권한설정을 다시 손 보게 되는데

이때 자주 나오는 용어가 "인증"과 "인가" 입니다.

 

이번 페이지에서는 "인증"과 "인가"에 대해서 간단히 알아보겠습니다.

 

1. 인증이란?

인증(Authentication)은 서비스를 이용하려는 사용자가 인증된 신분을 가진 사람이 맞는지 검증하는 작업입니다.

일반적인 인증 시나리오는 이메일 계정에 로그인하려면 ID와 PASSWORD를 입력하는데,

이 과정이 바로 인증 입니다.

 

>2. 인가란?

인가(Authorization)는 이미 인증된 사용자가 특정 리소스에 접근하거나 특정 작업을 수행할 수 있는 권한이 있는지를 검증하는 작업을 의미합니다.

가령 인증된 사용자(로그인을 한 사용자)가 특정 웹 싸이트에 게시글을 작성할 수 있는지 검증한다면,

이 과정을 인가(Authorization)과정 이라고 부릅니다.

 

>3. 인증과 인가의 필요성

온라인 시스템과 서비스 상에서 사용자의 신원을 밝히고, 사용자가 접근할 수 있는 자원과 수행할 수 있는 작업을 제어하는데 필수적입니다. 이릍 통해 시스템의 보안을 확보할 수 있습니다.

 

4. 인증과 인가의 차이점

-. 인증은 사용자에 의해 시작되지만, 인가는 정책에 의해 결정됩니다.

-. 인증은 비밀번호, 생체인식, 일회용 핀 또는 앱 등을 사용해 자격 증명을 확인하는 반면,

인가는 보안 팀에서 관리하는 설정을 사용해 권한을 허가하거나 거부합니다.

-. 인증은 사용자가 볼 수 있지만, 인가는 사용자가 볼 수 없습니다.

-. 인증은 부분적으로 사용자가 직접 변경할 수 있지만, 인가는 사용자가 직접 변경할 수 없습니다.

 

읽어주셔서 감사합니다.

728x90
반응형

'▶IT World◀ > IT Basic' 카테고리의 다른 글

로드밸런서 (LB) 란?  (4) 2024.12.31
미들웨어(Middleware)란 무엇인가?  (7) 2024.12.27
[it용어] FO/BO 란?  (2) 2024.12.24
JSON 파일 이란?  (3) 2024.12.11
ETL 이란?  (1) 2024.12.02
728x90
반응형

안녕하세요, 수염난아이티 입니다.

 it관련 프로젝트를 진행하다보면 FO/BO 란 용어를 쉽게 접할 수 있는데요,

 

간혹 프론트 엔드를 OF, 백엔드를 BO로 오해하시는 경우가 있는데,

완전히 틀린 말은 아닌 것 같지만 의미와 범위가 다르기에

이번 페이지에서는 it용어인 FO와 BO에 대해서 알아보겠습니다.

 

 

1. FO란?

Front Office의 줄임말 입니다.

 

#정의

 

1) 사용자 인터페이스(UI)와 사용자 경험(UX)

: FO는 웹서비스의 프론트엔드 부분을 담당하여, 사용자가 직접 상호작용하는 화면, 디자인, 기능을 구현합니다.

이는 고객이 웹서비스를 이용하면서 경험하는 모든 부분을 포함합니다.

 

2) 실시간 데이터 처리 및 서비스 제공

: FO는 고객의 요청에 즉시 반응하는 시스템 입니다. 사용자의 로그인, 정보 조회, 거래 실행 등 실시간을 처리해야 하는 업무를 다루며, 빠르고 정확한 처리가 필수적 입니다.

 

3) 고객과의 직접적 상호작용

: FO는 고객과의 직접적인 접점을 담당하며, 고객의 요구 사항을 실시간으로 반영하고 대응하는 역할을 합니다. 이 과정에서 고객 지원, 문의 응답, 피드백 수집 등이 이루어집니다.

 

2. BO란?

Back office의 줄임말 입니다.

 

#정의

 

1) 내부 시스템 관리 및 지원

: BO는 웹서비스 운영에 필요한 내부 시스템을 관리하고 지원하는 역할을 합니다. 서버 관리, 데이터베이스 관리, 보안 및 인프라 유지보수 등 실시간 고객 상호작용과 직접 관련이 없는 업무를 처리합니다.

 

 

2) 프로세스 및 데이터 처리

: BO는 사용자 데이터, 거래 내역, 리포트 생성 등 백엔드에서 이루어지는 데이터 처리 및 분석을 담당합니다. 이를 통해 FO가 원활하게 운영될 수 있도록 뒷받침하는 역할을 합니다.

 

3) 자동화 및 효율성 최적화

: BO는 반복적인 업무를 자동화하거나 최적화하여, 전반적인 업무 효율성을 높이는 데 기여합니다. 이는 비용 절감, 프로세스 개선, 그리고 시스템 성능 향상으로 이어집니다.

 

3. FO/BO 차이점

 

1) FO는 고객과의 직접적인 상호작용과 관련된 업무를 다루며, BO는 이러한 업무를 지원하는 내부 관리나 후속 작업을 담당합니다.

 

2) FO는 보통 실시간 데이터와 빠른 처리 속도가 중요하며, BO는 대개 프로세스 관리와 데이터 분석, 시스템 안정성 등이 중요한 요소입니다.

 

읽어주셔서 감사합니다.

728x90
반응형

'▶IT World◀ > IT Basic' 카테고리의 다른 글

미들웨어(Middleware)란 무엇인가?  (7) 2024.12.27
[it용어] 인증/인가 란?  (9) 2024.12.24
JSON 파일 이란?  (3) 2024.12.11
ETL 이란?  (1) 2024.12.02
CI/CD 란?  (4) 2024.11.24
728x90
반응형

안녕하세요, 수염난아이티 입니다.

 

IT 공부 또는 업무를 수행하다보면 JSON 파일 이란 것을 심심치않게 접할 수 있는데요,

이번 페이지에서는 JSON 파일에 대해서 알아보겠습니다.

 

출처 : https://velog.io/@surim014/posts

 

목차

1. JSON 파일 이란?

2. JSON 구조

3. JSON 장점

 

1. JSON 파일 이란?

-. JavaScript Object Notation 의 약자로 '자바스크립트 객체 표기법'

-. JSON은 웹 어플리케이션에서 데이터를 전송할 때 일반적으로 사용됨

-. JSON은 문자열 형태로 존재함. 네트워크를 통해 전송할 때 유용한 형식임

-. 데이터에 Access 하기 위해 네이티브 JSON 객체로 변환될 필요가 있음

 

2. JSON 구조

-. JSON 데이터는 이름과 값의 쌍으로 이루어짐 → {key : value} 형식

-. JSON 데이터는 쉼표(,)로 나열됨

-. 객체(object)는 중괄호 {} 로 표현함

-. 배열(array)는 대괄호 [] 로 표현함

[
  {
    "name": "Molecule Man",
    "age": 29,
    "secretIdentity": "Dan Jukes",
    "powers": [
      "Radiation resistance",
      "Turning tiny",
      "Radiation blast"
    ]
  },
  {
    "name": "Madame Uppercut",
    "age": 39,
    "secretIdentity": "Jane Wilson",
    "powers": [
      "Million tonne punch",
      "Damage resistance",
      "Superhuman reflexes"
    ]
  }
]

 

3. JSON 장점

-. Javascript 에서 객체를 만들 때 리터럴(Literal)과 프로퍼티(Property)를 표현하기에 모양과 규칙이 굉장히 단순함

-. 사람과 기계가 모두 이해하기 쉬움

-. 용량이 작아서 최근 XML 을 대체하는 데이터 전송에 많이 사용

-. 프로그래밍 언어와 플랫폼에 독립적이기에 서로 다른 시스템 간에 객체를 교환하는데 용이

-. 다수의 웹사이트들이 JSON 기반 API를 사용하고 있음

 

728x90
반응형

'▶IT World◀ > IT Basic' 카테고리의 다른 글

[it용어] 인증/인가 란?  (9) 2024.12.24
[it용어] FO/BO 란?  (2) 2024.12.24
ETL 이란?  (1) 2024.12.02
CI/CD 란?  (4) 2024.11.24
IT 시스템 아키텍처란?  (0) 2024.11.21
728x90
반응형

안녕하세요, 수염난아이티 입니다.

 

 이번 페이지에서는 ETL에 대해서 알아보겠습니다.

 

Extract(추출), Transform(변환), Load(저장) 를 나타내며

기업, 조직, 단체 등에서 데이터를 분석하여 유용하게 사용하기 위해 데이터를 변환하여

특정 저장소(데이터베이스)에 저장하는 방법 입니다.

 

 위 그림처럼 다양한 소스로부터 데이터를 추출하고 데이터를 사용가능할 수 있는 형태로 변환하고

변환된 데이터를 저장하여 최종 사용자가 목적에 맞게 문제를 해결하는데 데이터를 활용하는 일련의 과정 입니다.

 

주로 ETL은 데이터엔지니어가 수행을 하며 핵심은 데이터엔지니어가 특정 조직이 신뢰할 수 있는 데이터를 만들어 주는 것 입니다.

 

■ Extract (추출)

소스에서 데이터를 추출하는 것 이며, 소스는 일반적으로 비즈니스 시스템, API, 센서 데이터 등 여러가지 종류로 이루어져 있습니다. 추출은 크게 3가지로 나눌 수 있습니다.

① 부분 추출 (업데이트 미포함)

: 데이터를 얻는 가장 쉬운 방법은 레코드가 변경되면 소스 시스템이 알려주는 것 입니다.

② 부분 추출 (업데이트 포함)

: 소스 시스템에 따라 업데이트가 발생해도 알림을 제공하지 않는 경우가 있습니다.

 다만, 변경된 레코드를 지목하여 그러한 레코드의 추출을 제공할 수 있습니다.

③ 전체 추출

: 어느 데이터가 변경되었는지 파악할 수 없는 소스 시스템인 경우 시스템에서 데이터를 추출할 가능성이 있는 유일한 방식은 전체 추출 뿐 입니다. 이 방식을 취하면 마지막 추출의 사본을 같은 형식으로 추출하여 변경 사항을 확인해야 합니다.

 

■ Transform (변환)

소스에서 추출된 원시 데이터를 변환하여 다양한 애플리케이션에서 사용할 수 있는 형식으로 지정합니다.

이 단계에서는 데이터를 정리, 매핑, 변환(대게 특정 스키마로)하여 운영 요구사항에 부합하도록 설정합니다.

보통은 데이터를 대상 데이터 소스에 바로 로드하는 것이 아니라, 준비(Staging) 데이터베이스에 업로드하는 것이 보편적 입니다. 이 단계를 거치면 혹시나 무언가 계획에서 어긋난다 하더라도 금세 롤백할 수 있습니다.

 

■ Load (저장)

마지막으로 로드 기능은 변환한 데이터를 특정 대상 데이터베이스에 저장하는 프로세스를 말합니다.

이 데이터베이스는 기존에 존재할 수도 신규일 수도 있습니다. 이 단계는 각각 ETL 툴을 쓰거나 맞춤형 코드를 써서 수행하면 됩니다.

 

#출처 : https://devkhk.tistory.com/39

728x90
반응형

'▶IT World◀ > IT Basic' 카테고리의 다른 글

[it용어] 인증/인가 란?  (9) 2024.12.24
[it용어] FO/BO 란?  (2) 2024.12.24
JSON 파일 이란?  (3) 2024.12.11
CI/CD 란?  (4) 2024.11.24
IT 시스템 아키텍처란?  (0) 2024.11.21
728x90
반응형

안녕하세요, 수염난아이티 입니다.

 

IT공부나 업무를 하다보면 CI/CD라는 용어를 어렵지 않게 찾아볼 수 있습니다.

그래서 이번 페이지에서 CI/CD의 의미를 간략하게 설명해보겠습니다.

 

우선 약어는 아래와 같습니다.

  • CI : Continuous Integration (지속적 통합)
  • CD : Continuous Delivery (지속적 배포)

지속적 통합과 배포를 통해 소프트웨어 개발 라이프 사이클을 간소화하고 가속화 하는 것이

CI/CD의 목표입니다.

출처 : https://www.redhat.com/

 

CI 는 코드 변경사항을 공유 소스 리포지토리에 자동으로 자주 통합하는 사례를 나타내며,

CD 는 코드 변경사항을 통합, 테스트, 제공을 타나내느 프로세스로 구성됩니다.

 

제가 현재 담당하는 한 프로젝트도 CI/CD 가 적용되어 있습니다.

 

하나의 인식모델을 여러 지역에 배포 및 업그레이드를 중앙에서 관리 하는데요,

만약 인식모델이 배포된 지역별로 각기 존재한다면,

인식모델을 관리하는 담당자는 n개의 인식모델을 각각 업그레이드 및 배포해야 하는 어려움이 있을 겁니다.

 

그러나 CI/CD를 적용하여 하나의 인식모델을 중앙에서 관리 및 배포한다면

해당 담당자는 지속적인 업그레이드 및 관리차원에 훨씬 수월하게 업무를 수행할 수 있게 됩니다.

 

이상 간략히 CI/CD에 대해서 알아봤습니다.

728x90
반응형

'▶IT World◀ > IT Basic' 카테고리의 다른 글

[it용어] 인증/인가 란?  (9) 2024.12.24
[it용어] FO/BO 란?  (2) 2024.12.24
JSON 파일 이란?  (3) 2024.12.11
ETL 이란?  (1) 2024.12.02
IT 시스템 아키텍처란?  (0) 2024.11.21
728x90
반응형

안녕하세요, 수염난아이티 입니다.

 
이번 페이지에서는 it 시스템 아키텍처에 대해서 이야기 해볼까 합니다.
개인적으로 it 시스템 아키텍처란 용어를 사용하는 개인마다 조금의 개념적 차이는 있다고 생각합니다.
 
통상적으로 it 시스템 아키텍처란?

목표하는 대상에 대하여 그 구성과 동작 원리, 구성 요소 간의 관계 및 시스템 외부 환경과의 관계 등을 설명하는 설계도 혹은 청사진을 말합니다.

아래는 독립형 쇼핑몰 시스템 아키텍처의 예시 입니다.

#출처 : https://boardmix.com/kr/skills/system-architecture/

 

더 깊은 설명이 들어가면 상당히 어려워질 수 있고 사실 저도 이해가 잘 안가는 부분이 생기기도 합니다.

최근 회사에서 담당 프로젝트의 시스템 아키텍처를 공유한 적이 있는데

어느 분께서는 '시스템 아키텍처라기 보단, 어플리케이션 흐름도 처럼 보인다.' 라는 의견을 주시기도 했습니다.

 

요점은 시스템 아키텍처에는 역할이 있는 구성요소들이 표현되어야 하고 각 구성요소들의 연관성을 보여주고 나아가 시스템의 최종목표가 표현되어 있으면 저는 개인적으로 시스템 아키텍처라고 말할 수 있을 것 같습니다.

 

더 깊은 내용은 저도 계속 공부하면서 업데이트 해보겠습니다.

728x90
반응형

'▶IT World◀ > IT Basic' 카테고리의 다른 글

[it용어] 인증/인가 란?  (9) 2024.12.24
[it용어] FO/BO 란?  (2) 2024.12.24
JSON 파일 이란?  (3) 2024.12.11
ETL 이란?  (1) 2024.12.02
CI/CD 란?  (4) 2024.11.24

+ Recent posts