본문 바로가기

분류 전체보기229

[Java] API 서버 개발 기본 Spring으로 API 서버를 개발할 때 가장 중요한 건 딱 하나이다.이 서버는 "화면(View)"을 반환하는 서버인가?아니면 "데이터(JSON)"를 반환하는 서버인가?요즘 대부분의 시스템은 프론트엔드(React, Vue 등)와 분리된 구조이기 때문에Spring 서버는 거의 항상 JSON 데이터를 반환하는 API 서버 역할을 한다.이 글에서는 API 서버 개발에 필요한 핵심 개념만 빠르게 정리한다.※ @Controller vs @RestController API 서버라면 → 거의 무조건 @RestController 사용 ▶ @Controller@Controller@GetMapping("/home")public String home() { return "home";}"home"이라는 데이터를 반환하는.. 2026. 5. 5.
[Backend] 트래픽 폭주를 막는 4가지 방법 (Rate Limiting, Caching, Asynchronous Processing, Load Balancing) 트래픽은 언제든 폭발할 수 있다.서비스를 운영하다 보면 이런 상황이 반드시 온다.인기 이벤트 오픈 (예:콘서트 티켓팅)특정 시간대 트래픽 집중 (출근 시간, 점심 시간)외부 유입 급증 (광고, 바이럴)특히 티켓팅 시스템이나 쇼핑몰에서는짧은 시간에 수만~수십만 요청이 몰리면서 서버가 다운되는 상황이 발생할 수 있다.이때 단순히 서버 스펙을 올리는 것만으로는 해결되지 않는다.요청 자체를 제어하고, 분산하고, 최적화하는 구조가 필요하다.이번 글에서는 백엔드 관점에서 트래픽 폭주를 막는 4가지 방법에 대해 정리한다.※ Rate Limiting (요청 제한)특정 사용자(IP 또는 API Key)가 일정 시간 동안 보낼 수 있는 요청 수를 제한하는 방식핵심 : 과도한 요청 자체를 막는다. ✅ Java 예시 (간단한.. 2026. 4. 25.
[DevOps] 도시락 비유로 이해하는 Docker, Jenkins, Kubernetes 구조 개발을 하다 보면 "내 PC에서는 잘 되는데 서버에서는 왜 안 될까?"라는 고민을 한 번쯤은 하게 된다.이 문제를 해결하기 위해 등장한 것이 Docker이고, 이를 자동으로 빌드하고 배포하는 것이 Jenkins, 그리고 실행된 서비스를 안정적으로 운영하는 것이 Kubernetes이다.이 글에서는 Jenkins, Docker, Kubernetes를 하나의 흐름으로 연결해서 이해해보자조금 더 쉽게 이해할 수 있도록 '도시락'이라는 비유를 활용해 전체 구조를 직관적으로 정리해보자※ 핵심 개념Image (이미지) = 포장된 도시락 (재료를 준비하고 요리까지 완료해, 꺼내서 바로 먹을 수 있는 상태) - 실행에 필요한 코드 + 라이브러리 + 설정이 포함된 불변(immutable) 템플릿 - 읽기 전용이며, 컨테이.. 2026. 4. 23.
[Cloud] AWS 자격증(SAA-C03) ※ 강의자료 ※ 기출문제(해설포함) 비밀번호가 설정된 PDF 파일입니다. 2026. 4. 15.
[DevOps] Linux 표준 경로와 실무 디렉토리 구조 파악 방법 ※ 리눅스 표준 경로 정리리눅스는 FHS(Filesystem Hierarchy Standard)라는 규격에 따라 디렉토리 구조가 정의되어 있다.즉, 서버가 달라도 주요 경로 의미는 동일하다.✅ /etc - 시스템 전역 설정 (시스템과 서비스 설정 파일 위치) ▶ 대표 파일/etc/hosts : IP ↔ 호스트 매핑/etc/passwd : 사용자 계정/etc/shadow : 비밀번호 해시/etc/fstab : 마운트 설정/etc/resolv.conf : DNS ▶ 대표 명령어cat /etc/hosts# 서버의 로컬 DNS 설정 확인# cat : 파일 내용 출력# /etc/hosts : 호스트 매핑 파일✅ /var - 로그 및 가변 데이터 (시스템 실행 중 생성/변경되는 데이터) ▶ 대표 위치/var/log.. 2026. 2. 22.
[Network] 포트 포워딩(Port Forwarding)이란? SSH 터널링과 함께 이해하기 ※ 포트 포워딩이 필요한 이유내부망 서버나 데이터베이스는 외부에서 직접 접근할 수 없는 경우가 많다. 보안 정책에 따라 내부 IP는 외부에 노출되지 않기 때문이다.이때 외부에서 내부 서버에 안전하게 접속하기 위해 사용하는 기술이 바로 포트 포워딩이다. ※ 터널링(Tunneling)이란?터널링(Tunneling)은 네트워크에서 두 지점 사이에 가상의 통신 경로(터널)를 만들어 외부에서 직접 접근할 수 없는 내부 네트워크로 트래픽을 전달하는 기술이다.즉, 외부에서 내부망으로 들어가는 전용 통로를 만드는 것이다. ※ 포트 포워딩은 터널링의 한 종류포트 포워딩은 터널링 기술을 이용해 특정 포트로 들어온 트래픽을 다른 서버의 IP와 포트로 전달하는 방식이다.관계 : 터널링 ⊃ 포트 포워딩 ※ 포트 포워딩(Port.. 2026. 2. 19.
[Network] 프록시 서버(Proxy Server)란 무엇인가 ※ 프록시 서버(Proxy Server)내 PC와 외부 인터넷 사이에서 통신을 대신 수행하는 중간 서버이다.즉, 사용자는 인터넷에 직접 접속하지 않고, 모든 외부 통신을 프록시 서버를 통해서만 수행한다. ▶ 기본 구조[ 사용자 PC ] → [ 프록시 서버 ] → [ 외부 인터넷 ] ※ 왜 프록시 서버가 필요한가프록시 서버는 개인 환경보다 회사·조직 네트워크 환경에서 주로 사용된다.핵심 목적은 단순하다.외부 통신을 중앙에서 통제하기 위함 ※ 프록시가 없는 환경 vs 있는 환경▶ 프록시가 없는 경우 (개인 환경)[ 사용자 PC ] → [ 인터넷 ]· 사용자가 직접 외부와 통신· 통제 없음· 자유로운 접근 ▶ 프록시가 있는 경우 (회사 환경) [ 사용자 PC ] → [ 프록시 서버 ] → [.. 2026. 2. 8.
[DevOps] Linux 명령어 (기본) 쉽게 이해하기 ※ 경로 기본 개념/ # 루트 디렉토리(최상위 경로). # 현재 디렉토리.. # 상위 디렉토리~ # 홈 디렉토리(/home/username)/path1/path2 # 절대경로(현재 위치와 무관하게 항상 동일한 위치를 가리킴, 루트 디렉토리부터의 경로)./ # 현재 디렉토리에 있는 파일을 실행하거나 접근할 때 사용(예:./start.sh) # 현재 디렉토리는 PATH에 포함되지 않기 때문에 경로를 직접 지정해야 실행 가능 ※ ls (목록 조회)ls# 현재 디렉토리 내부 파일/디렉토리(폴더) 목록 조회ls /var/log# (어디서나) 절대경로 /var/log 디렉토리.. 2025. 12. 25.
[Big Data] HBase 핵심 개념과 실무 사용법 정리 ※ HBase란?HBase는 HDFS 위에서 동작하는 Hadoop 생태계 기반의 분산 NoSQL 데이터베이스로,초대규모 데이터를 RowKey 기반으로 빠르게 저장·조회하는 데 강점을 가진다. - 수평 확장(Scale-out)에 매우 유리- RowKey 기준 사전순 정렬 구조- 컬럼 패밀리(Column Family) 기반 물리 저장- 실시간 매트릭·로그 등 대량 쓰기 중심 데이터에 적합- SQL이 아닌 put/get/scan/delete 기반 API 사용 HBase를 제대로 사용하려면 RowKey 설계와 scan 동작 방식을 이해하는 것이 핵심이다. ※ HBase 데이터 모델 구조HBase는 RDBMS와 구조가 완전히 다르다.요소설명RowKey정렬 + 파티션 기준 (가장 중요)Column Family (C.. 2025. 12. 16.