전체 글
-
네트워크 대역폭(Bandwidth)이란?Computer Science/Network 2026. 1. 19. 13:41
오늘은 백엔드 서버를 설계하고 운영할 때 절대 간과해서는 안 될 요소, 바로 네트워크 대역폭(Bandwidth)에 대해 이야기해보려 합니다.서버 로직 최적화에는 공을 들이면서, 정작 데이터가 오가는 '길'에 대해서는 무관심하지 않으셨나요? 대역폭을 이해하면 성능 개선은 물론 인프라 비용까지 획기적으로 줄일 수 있습니다. 💸1. 대역폭(Bandwidth)이란 무엇인가?네트워크 대역폭은 단위 시간 내에 전송할 수 있는 데이터의 최대 용량을 의미합니다. 흔히 속도와 혼동하지만, 정확히는 '통로의 넓이'에 가깝습니다.핵심 개념 비교용어개념비유대역폭 (Bandwidth)이론상 최대 전송 가능량고속도로의 차선 수 (8차선 vs 2차선)처리량 (Throughput)실제로 전송된 데이터 양1시간 동안 실제 통과한 차..
-
[LeetCode] Rotate Array: 배열 회전 마스터하기 (Kotlin 풀이 및 최적화 전략)Problem Solving/LeetCode 2026. 1. 16. 23:18
오늘은 기술 면접 단골 문제인 LeetCode의 189. Rotate Array 문제를 함께 살펴보겠습니다. 배열을 다루는 기본적인 감각은 물론, 공간 복잡도 최적화 능력을 어필하기 아주 좋은 문제입니다.📌 문제 개요주어진 정수 배열 nums를 오른쪽으로 k단계만큼 회전시키는 문제입니다.Input: nums = [1,2,3,4,5,6,7], k = 3Output: [5,6,7,1,2,3,4]핵심 조건: k는 음수가 아닐 수 있으며, 배열의 길이보다 클 수 있습니다. 또한, 가능하다면 O(1) 공간 복잡도(In-place)로 해결하는 것이 권장됩니다.💡 첫 번째 접근: 임시 배열 활용하기 (Space O(n))코드 구현 (Kotlin)class Solution { fun rotate(nums: I..
-
[LeetCode] 27. Remove ElementProblem Solving/LeetCode 2025. 3. 2. 14:22
class Solution(object): def removeElement(self, nums, val): result = [] k = 0 for i in nums: if val != i: k+=1 result+=[i] nums[:] = result[:] return khttps://leetcode.com/problems/remove-element/?envType=study-plan-v2&envId=top-interview-150 주어진 배열 nums에서 val 이라는 값을 전부 제거한 뒤, val이 아닌 원소의 개수를 반환하는 문제새로운 배열을 만들..
-
[LeetCode] 88. Merge Sorted ArrayProblem Solving/LeetCode 2025. 2. 23. 16:08
오랜만에 리트코드를 풀어봤다https://leetcode.com/problems/merge-sorted-array/?envType=study-plan-v2&envId=top-interview-150오름차순으로 정렬된 두 개의 배열을 합치는 것포인터 두 개를 사용했고, 마지막 인덱스 처리하기 번거로워서 각각의 배열 양 끝에 max number 값을 넣어주었다import sysclass Solution(object): def merge(self, nums1, m, nums2, n): i = 0 j = 0 result = [] nums1+=[sys.maxsize] nums2+=[sys.maxsize] while i오랜만에 푸니까 ..
-
kubernetes componentsEtc 2023. 11. 12. 16:05
쿠버네티스는 컨테이너를 파드 내에 배치하고 노드에서 실행함으로서 워크로드를 구동한다. Node 클러스터 내 설치되는 가상 혹은 물리 머신을 의미. 과거에는 미니언즈라는 용어로 불렀다. 용어는 현재도 혼용해서 사용한다. 어플리케이션이 실행중이다가 노드가 죽을 수도 있으니, 일반적으로 클러스터에는 여러 개의 노드를 둔다. Cluster 노드(워커 머신)의 집합. 모든 클러스터는 최소 한 개 이상의 워커 노드를 가진다. 클러스터 외부에서 관점에서는 하나의 노드가 죽어도 다른 노드로 접근 가능하기 때문에, 부하 분산 및 고가용성을 보장한다. 고가용성을 보장하기 위해서는 쿠버네티스 자체적으로 다음의 일을 지속적으로 수행해야 한다. 모든 클러스터를 관리하고, 관리중인 자원의 정보를 저장하고, 노드를 모니터링 하고..
-
(kotlin)gradle spring boot application dockerizeSpring 2023. 9. 28. 19:07
https://spring.io/guides/topicals/spring-boot-docker/ Getting Started | Spring Boot Docker The Spring Boot Maven and Gradle plugins use buildpacks in exactly the same way that the pack CLI does in the following examples. The resulting images are identical, given the same inputs. Cloud Foundry has used containers internally for many years now, an spring.io 1. spring boot application initialize ht..
-
Engine=InnoDB는 뭘 지정해주는 걸까 - MySQL 엔진과 스토리지 엔진Computer Science/Database 2023. 7. 9. 23:05
MySQL 아키텍처 MySQL 서버는 MySQL 엔진, 스토리지 엔진으로 구분 스토리지 엔진은 핸들로 API를 만족하면 누구든 구현해서 서버에 추가 가능 MySQL 엔진 아키텍처 MySQL 엔진 MySQL 엔진은 아래의 역할들을 수행하며 요청된 SQL 문장을 분석, 최적화하는 핵심 처리를 함 커넥션 핸들러: 클라이언트로부터의 접속 및 쿼리 요청을 처리 SQL 파서 전처리기 옵티마이저: 쿼리를 최적화 하여 실행 스토리지 엔진 실제 데이터를 디스크 스토리지에 저장하거나 데이터를 읽어오는 부분을 전담 스토리지 엔진은 여러 개를 동시에 사용할 수 있다 각 스토리지 엔진은 성능 향상을 위해 키 캐시나 InnoDB 버퍼 풀과 같은 기능을 내장 mysql> CREATE TABLE test_table (fb1 INT,..
-
HTTPS는 어떻게 신뢰성있는 통신을 보장할까❓Computer Science/Network 2022. 11. 12. 22:18
더보기 약 1년만에 고향 티스토리로 돌아와 글을 쓰는 감회가 새롭다 현재 HTTP 완벽 가이드 책으로 스터디를 진행중인데, 14장 보안 HTTP 단원 발표 준비를 하며 당연하게만 쓰고있었던 HTTPS를 제대로 이해보고자 한다 https://2jinishappy.tistory.com/338 대칭 키/공개 키/단방향 암호화 알고리즘(정의와 예시) 암호화 알고리즘은 암호화/복호화에 사용되는 키, 그리고 양방향 가능 유무를 기준으로 분류할 수 있다. Symmetric-Key Algorithm 대칭 키 알고리즘 대칭 키 암호는 암호화 알고리즘의 한 종류로, 암호 2jinishappy.tistory.com 이전에 대칭키, 공개키 암호화 알고리즘에 관한 글을 작성한 적이 있었다. 대칭키 공개키가 어떤건지는 알겠는데,..