Notice
Recent Posts
Recent Comments
Link
«   2026/09   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

seaking110 님의 블로그

백엔드 개발자 필수 지식 본문

Today I Learned

백엔드 개발자 필수 지식

seaking110 2025. 1. 20. 18:01

백엔드

  • 역할 : 데이터 처리, 비즈니스 로직, 데이터베이스 관리 등 서버 측 작업 담당
  • 클라이언트 요청을 처리하고 필요한 데이터를 반환, 특정 작업을 수행
  • API 및 데이터 처리 결과 제공

 

클래스와 객체와 인스턴스의 차이

  • 클래스 : 객체를 만들어 내기 위한 틀 객체의 속성과 메서드의 집합을 담아 놓은 것
  • 객체 : 클래스로부터 만들어지는 실체, 클래스로 선언된 변수를 객체라 한다.
  • 인스턴스 : 객체가 메모리에 할당이 된 상태, 런타임에 구동되는 객체

 

static

  • 스태틱으로 선언된 변수, 블록, 메서드 등은 선언과 동시에 heap 영역이 아닌 

 

cloude, 오프프레미스, 온프레미스

  • 클라우드 : 내가 아닌 다른 회사의 공급자가 호스팅하고 인터넷을 통해 사용자에게 제공되는 인프라, 플랫폼 또는 소프트웨어를 말합니다.
  • 이를 이용하면 자체 인프라나 하드웨어 설치 없이도 애플리케이션과 리소스를 쉽고 싸게 이용 가능
  • 분산된 서버를 기반으로 작용하므로 서비스 운영에만 집중 가능하다. 
  • 이를 Off - premist 방식이라고 한다.
  • On - premist 방식은 기업이나 개인이 자체 시설에서 보유하고 직접 유지 관리하는 프라이빗 데이터 센서(IDC)를 의미

 

 

Iaas , Pass, Saas

  • Iaas : 인프라형 클라우드 서비스
  • 클라우드가 단지 인프라를 제공
  • Node.Js, MongeDB 등을 개발자가 직접 설치해야하나 특정 서비스에 종속되지 않는다.
  • AWS의 EC2, NCP

 

  • Pass 플랫폼형 클라우드 서비스
  • 클라우드가 플랫폼 제공
  • Node.Js 등 MongeDB 등이 설치되어있으며 그저 클릭을 통해 서비스를 이용 가능
  • 모니터링 CI/CD가 제공 <- 배포

 

  • Saas : 서비스형 클라우드 서비스
  • 완전한 서비스를 클라우드서비스로부터 제공받아 사용
  • ex 슬랙

 

Pass와 Iaas 비교

IaaS

  • 유연하며 플랫폼에 종속되지 않습니다.
  • 이식성이 높음
  • 운영비 효율 낮음

PaaS

  • 유연하지 않으며 플랫폼에 종속됩니다.
  • 이식성은 낮음
  • 운영비 효율 좋음

 

 

데이터 교환 형식 Json 직렬화 / 열 직렬화

JSON

  • JavaScript Object Notation
  • 자바 스크립트 객체 문법으로 구조화된 데이터 교환 형식
  • 파이썬 자바 스크립트, 자바 등 여러 언어에서 데이터 교환 형식으로 쓰이며 객체 문법말고도 단순 배열, 문자열도 표현 가능
  • 키 값과 밸류 값으로 구성

 

Json 직렬화 / 열 직렬화

  • 직렬화란
    • 외부의 시스템에서도 사용할 수 있도록 바이트 형태로 데이터를 변환
  • 역직렬화
    • 바이트 형태의 데이터를 내부에서 사용할 수 있도록 데이터를 변환
  • Ex ) JSON.parse() 역직렬화 , JSON.stringify()  직렬화

 

JSON 의 활용

JSON은 프로그래밍 언어와 프레임워크 등에 독립적이므로, 서로 다른 시스템간에 데이터를 교환하기에 좋습니다. 주로 API의 반환형태, 시스템을 구성하는 설정파일에 활용됩니다.

 

API 개념

  • 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자 컴퓨터 사이에 있는 중계 계층을 의미
  • 어떻게 통신할 것인지 어떠한 데이터를 주고 받을 건지 등에 대한 방법이 정의된 중계 계층을 말함
  • WEB API, Web Socket APO 등이 있는데 보통 WEB API를 기준으로 설명

 

인터페이스

  • 서로 다른 두개의 시스템 장치 사이에서 정보나 신호를 주고 받는 경우의 접점이나 경계면
  • 이를 통해 해당 컴퓨터의 내부 서버가 어떻게 구현되어있는지에 상관없이 통신이 가능

 

API 작동 방식

  • 사용자가 브라우저를 통해 서버에 요청을 하게 되면 API가 중계 계층 역할을 하며 요청을 처리
  • 직접 서버의 데이터베이스에 접근 하는 것을 방지

 

API의 장점

  • 제공자는 서비스의 중요한 부분을 드러내지 않아도 됨
  • 사용자는 해당 서비스가 어떻게 구현되는지 알 필요 없이 필요한 정보만을 받을 수 있음
  • OPEN API의 경우 앱 개발 프로세스를 단순화 시키고 시간과 비용을 절약
  • 내부 프로세스가 수정되었을 때 API를 매번 수정하는 것이 아닌 API가 수정이 안되게 만들 수 있다.
  • 이를 통해 내부 DB, 서버의 로직이 변경되어도 매번 사용자가 앱을 업데이트 하는 일은 줄어들 수 있습니다.
  • 제공자는 데이터를 한곳에 모을 수 있다.

 

API 종류

  • private : 내부적으로 사용 주로 해시키를 하드코딩해놓고 이를 기반으로 서버와 서버간의 통신
  • public : 모든 사람이 사용, 많은 트래픽을 방지하기 위해 하루 요청 수의 제한, 계정당 몇개 등 관리 ex open API

 

네트워크

  • HTTP 
  • 처음에는 서버와 브라우저 간에 데이터를 주고 받기 위해 설계된 프로토콜이나 지금은 서버와 서버간의 통신에도 많이 이용
  • HTTP는 헤더를 통한 확장이 쉽다.
  • HTTP는 stateless : 동일한 연결에서 연속적으로 수행되는 두 요청 사이에 연속적인 상태 값은 없다. 즉 HTTP는 독립적

 

SSH

  • 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
  • 보통 프라이빗 키가 잇는 경로에서 이런식으로 키를 명시하고 실행
  • HTTP 보다 조금 더 보안적으로 강함

 


사용해보면 좋을 기술 스택

 

Redis

  • Redis는 키-값 저장소로, 데이터를 메모리에 저장해 빠른 속도를 제공합니다.
    • 주 사용 사례: 캐시, 세션 관리, 실시간 처리(랭킹, 메시징 시스템).
    • 특징: Pub/Sub 메시징, 데이터 영속성 지원(옵션).

Docker

  • Docker는 애플리케이션과 그 환경을 컨테이너라는 패키지로 묶어주는 플랫폼입니다.
    • 특징: 어디서든 동일한 환경에서 실행 가능.
    • 주 사용 사례: 배포 자동화, 마이크로서비스 관리.
    • 예: 웹 서버, DB 등을 컨테이너화하여 빠르게 배포.

Kafka

  • Apache Kafka는 분산 메시지 큐 시스템으로, 실시간 데이터 스트리밍을 처리합니다.
    • 주 사용 사례: 이벤트 처리, 로그 분석, 실시간 데이터 처리.
    • 특징: 대량의 데이터를 빠르고 안정적으로 처리하며, 생산자-소비자 모델 기반.

Prometheus

  • Prometheus는 오픈소스 모니터링 및 경고 시스템입니다.
    • 주 사용 사례: 서버, 컨테이너, 애플리케이션의 상태 및 성능을 모니터링.
    • 특징: 시계열 데이터 저장소, 경고 기능, Grafana와 자주 연동.

CI/CD

  • CI/CD (Continuous Integration/Continuous Deployment)는 코드 자동화를 위한 프로세스입니다.
    • CI: 코드 변경 사항을 자동으로 테스트 및 빌드.
    • CD: 빌드된 코드를 자동으로 서버에 배포.
    • 예: GitHub Actions, Jenkins 등 사용.

'Today I Learned' 카테고리의 다른 글

Spring 3 Layered  (0) 2025.01.22
Spring 입문!  (0) 2025.01.22
키오스크 과제 트러블 슈팅  (0) 2025.01.20
Enum과 Stream  (0) 2025.01.17
분할 정복을 이용한 거듭제곱  (0) 2025.01.16