전체 글
-
NGINX Ingress vs Gateway APIBack-End/Docker & k8s 2026. 10. 6. 22:27
들어가며Kubernetes를 공부하다 보면 Ingress, NGINX Ingress, Gateway API 같은 말이 뒤섞여 나옵니다. 이름도 비슷하고 하는 일도 비슷해 보여서 처음엔 뭐가 뭔지 헷갈리기 쉽습니다.사실 하는 일은 같습니다. 클러스터 밖에서 들어온 요청을 안쪽의 알맞은 Service로 보내 주는 거죠. 차이는 그 규칙을 어떻게 적고, 누가 관리하느냐에 있습니다.그리고 지금 꼭 알아 둘 소식이 하나 있습니다. 가장 많이 쓰이던 ingress-nginx가 2026년 3월로 지원을 끝냈어요. 이제 막 배우기 시작했다면 Gateway API 쪽에 무게를 두는 게 좋습니다.Pod와 Service 정도만 알면 따라올 수 있도록, 건물 비유로 하나씩 풀어 보겠습니다.왜 이런 게 필요할까?Kubernet..
-
NGINX Ingress 지원 종료, Gateway API로 옮겨야 할까?Back-End/Docker & k8s 2026. 10. 6. 22:08
NGINX Ingress 지원 종료, Gateway API로 옮겨야 할까?들어가며ingress-nginx를 쓰고 있다면 이제는 다음 선택지를 준비해야 합니다.그렇다고 답이 무조건 Gateway API인 것은 아닙니다.Kubernetes 커뮤니티가 관리하던 ingress-nginx는 2026년 3월부로 유지보수가 종료됐습니다. 이미 떠 있는 컨트롤러가 갑자기 멈추는 것은 아니지만, 앞으로 새로운 취약점이나 버그가 발견돼도 공식 패치를 기대하기 어렵습니다.그래서 질문은 두 가지로 나누는 편이 좋습니다.ingress-nginx에서 언제 벗어날 것인가그다음 목적지를 무엇으로 할 것인가이 글에서는 ingress-nginx가 왜 은퇴했는지, Gateway API가 Ingress와 구조적으로 무엇이 다른지, 실제 Y..
-
LeetCode: 22. Generate ParenthesesAlgorithm & Data Structure/LeetCode 2025. 10. 27. 17:01
22. Generate ParenthesesLeetCode 22번 문제인 Generate Parentheses는 괄호((, ))를 사용하여 올바른 조합만 생성하는 대표적인 백트래킹 문제입니다.문제 설명입력으로 n이 주어지면, n 쌍의 괄호로 만들 수 있는모든 잘 형성된(well-formed) 괄호 문자열을 반환해야 합니다.예시InputOutputn = 1["()"]n = 3["((()))","(()())","(())()","()(())","()()()"]핵심 개념올바른 괄호 문자열은 다음 조건을 만족합니다.여는 괄호 ( 개수는 n을 초과할 수 없다언제나 ) 개수 ≤ ( 개수 이어야 한다(닫는 괄호가 먼저 나오면 불가능)즉, 생성 과정에서 잘못된 탐색을 조기에 차단하면모든 경우를 탐색할 필요가 없습니다.이..
-
LeetCode: 17. Letter Combinations of a Phone NumberAlgorithm & Data Structure/LeetCode 2025. 10. 24. 21:52
LeetCode: 17. Letter Combinations of a Phone Number숫자 문자열 digits(2–9) 가 주어지면, 전화 키패드 매핑에 따라 만들 수 있는 모든 문자 조합을 구하는 문제입니다.예를 들어 "23" → ["ad","ae","af","bd","be","bf","cd","ce","cf"].이 글에서는 접근 방식(아이디어) → 코드 구조 → 시간/공간 복잡도 → 엣지 케이스 → 대안 풀이(BFS) 순서로 정리합니다. 마지막에 디버깅 팁과 테스트 케이스도 넣었습니다.문제 핵심 요약각 숫자(2–9)는 문자 집합에 매핑됨:2→abc, 3→def, 4→ghi, 5→jkl, 6→mno, 7→pqrs, 8→tuv, 9→wxyz목표: 각 자리에서 문자 1개씩 골라 모든 길이 digits..
-
static 변수와 메서드Back-End/Java 2025. 7. 10. 14:14
Java를 다루다 보면 static이라는 키워드를 마주치게 됩니다.처음엔 단순히 “공유된다”는 설명으로 접근하지만, 실무에선 객체지향 설계 철학과 메모리 구조, 그리고 테스트 전략까지 얽히기 때문에 더 깊은 이해가 필요합니다.static이란 무엇인가?static은 클래스 레벨에서 존재함을 의미합니다.즉, 객체 인스턴스를 생성하지 않고도 접근할 수 있으며, 모든 인스턴스가 공유합니다.static 변수 (클래스 변수)정의클래스가 메모리에 로딩될 때 JVM의 메서드 영역(Method Area) 에 단 한 번 할당됩니다.public class Counter { static int count = 0; public Counter() { count++; }}위 코드를 통해 new Coun..
-
오버로딩 (Overloading)과 오버라이딩 (Overriding)Back-End/Java 2025. 7. 9. 13:36
오버로딩 (Overloading)같은 이름의 메서드를 "매개변수만 다르게" 여러 개 정의하는 것 특징같은 클래스 안에서 발생메서드 이름은 같고, **매개변수(타입/개수/순서)**가 달라야 함반환 타입만 다르면 오버로딩이 안 됨 예시public class Calculator { public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; }} ✔️ 같은 이름 add지만 매개변수가 다름 → 오버로딩오버라이딩 (Overr..
-
Spring: 빈(Bean)이란?Back-End/Spring 2025. 4. 11. 21:35
🫘 스프링의 빈이란? – 객체를 관리하는 스프링의 핵심 메커니즘“Spring에서 Bean이란, 단순한 객체가 아닙니다.생성부터 소멸까지, 프레임워크가 관리하는 살아있는 객체입니다.” 1. 들어가며 – 객체는 누가 관리하나요?Java 애플리케이션에서 객체를 생성하는 가장 기본적인 방법은 new 키워드를 사용하는 것입니다.MyService myService = new MyService();하지만 이 객체가 여러 클래스에서 공통으로 필요하다면, 매번 new로 만들면 비효율적이고, 객체 간 의존성이 복잡해지며, 테스트도 어려워집니다.이런 문제를 해결하기 위해 Spring은 IOC(제어의 역전, Inversion of Control) 이라는 개념을 도입합니다.객체를 직접 만들고 연결하지 않고, Spring이 ..
-
Elasticsearch: BULK란?Search & AI/Elasticsearch 2025. 3. 27. 09:56
🚀 Elasticsearch의 Bulk API란?📌 정의Bulk API는 여러 개의 요청(문서 생성, 수정, 삭제 등)을 한 번의 HTTP 요청으로 묶어서 처리할 수 있는 기능입니다.✅ "많은 문서를 빠르게 처리"하고 싶을 때 사용하는 대표 기능! 🤔 왜 Bulk이 필요할까?일반적인 방식:POST /index/_doc/1POST /index/_doc/2POST /index/_doc/3 ...→ 각 요청마다 네트워크 통신과 인덱싱 오버헤드가 발생Bulk 방식:POST /_bulk { "index": { "_index": "my_index", "_id": "1" } }{ "title": "algo", "professor": "kim" }{ "index": { "_index": "my_index", "_..