전체 글
-
Java 람다식(Lambda Expression)과 함수형 인터페이스 정리Java/자바의정석 2026. 6. 7. 23:30
람다식(Lambda Expression)이란?람다식은 메서드를 간단한 식(Expression)으로 표현하는 방법이다.기존에는 익명 클래스를 사용하여 객체를 생성해야 했지만, 람다식을 사용하면 훨씬 간결하게 표현할 수 있다. 기존방식Runnable r = new Runnable() { @Override public void run() { System.out.println("Hello"); }}; 람다식 사용Runnable r = () -> System.out.println("Hello"); 함수(Function)와 메서드(Method)의 차이사실 함수와 메서드는 근본적으로 동일하다.함수와 메서드의 차이 -근본적으로 동일. 함수는 일반적 용어 메서드는 객체지향개념 용어구분설명함수(F..
-
Programmers - 스포 방지 (중요한 단어 찾기) 풀이프로그래머스/Java 2026. 5. 13. 11:02
https://school.programmers.co.kr/learn/courses/30/lessons/468370 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 전체 흐름1단계: 메시지에서 단어 파싱 (단어의 시작/끝 인덱스 저장)2단계: 비스포 구간에 등장하는 단어 Set 수집3단계: spoiler_ranges 순서대로 순회하며 중요한 단어 카운트핵심 자료구조자료구조용도List wordList모든 단어의 [시작인덱스, 끝인덭스]Set nonSpoilerSet비스포 구간에 등장한 단어 문자열Set revealedSet이미 공개된 스포 단어 문자열 단어가 구간에 겹치는 조건단어와 구간이 겹치지 않는 경우는 딱 ..
-
[Programmers]코딩테스트 - 노란불 신호등프로그래머스/Java 2026. 5. 12. 22:31
https://school.programmers.co.kr/learn/courses/30/lessons/468371 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 신호등 문제로 배우는 LCM 탐색 알고리즘문제 이해n개의 신호등이 있고, 각 신호등은 초록 → 노란 → 빨간 순서로 반복됩니다.모든 신호등이 동시에 노란불이 되는 가장 빠른 시각을 구하는 문제입니다. 없으면 -1을 반환합니다. 신호등초록 (G)노란 (Y)빨간 (R)주기1번2초1초2초5초2번5초1초1초7초위 예시에서 정답은 13초입니다.1단계 — t초에 어떤 신호인지 알아내기신호등은 주기마다 반복되므로, (t-1) % 주기 로 사이클 내 위치(pos)..
-
Redis Set vs ZSet 차이점과 내부 동작 원리 정리DataBase/Redis 2026. 4. 15. 14:11
1. Redis Set 자료구조의 특징Redis Set은 중복 없는 문자열의 집합으로, 순서가 없고 유일한 값만 저장되는 자료구조입니다.1) 구조하나의 Key에 여러 Value가 저장되는 자료구조 (Key : Value = 1 : N)중복 값 자동 무시 — 같은 값을 두 번 추가해도 하나만 저장됨순서 없음 — 삽입 순서가 보장되지 않음집합 연산(합집합/교집합/차집합) 지원2. 내부 메모리 최적화(Encoding 전략)String, List와 마찬가지로 데이터 특성에 따라 Redis가 자동으로 인코딩을 선택합니다.2-1. listpack 인코딩요소 수가 적고(기본 512개 이하), 각 요소 크기가 작을 때(기본 64바이트 이하) 사용데이터를 찾는 경우는 느림 O(n)2-2. hashtable 인코딩요소 수..
-
Redis List Deep Dive — listpack, quicklist 그리고 큐 패턴DataBase/Redis 2026. 4. 15. 14:11
1. Redis List 자료구조의 특징Redis List는 순서가 있는 문자열 목록으로, 양쪽 끝에서 빠르게 삽입/삭제가 가능한 자료구조입니다.1) 구조 — Doubly Linked List 기반하나의 Key에 여러 Value가 순서대로 저장되는 자료구조 (Key : Value = 1 : N)양쪽 끝(Left/Right)에서 삽입/삭제가 O(1)중간 접근은 인덱스를 통해 가능하지만 O(N) → 비효율적이라 일반적으로 사용 X2) 삽입 방향이 두 가지 — LPUSH / RPUSHLPUSH : 왼쪽(Head)에 삽입 → 최신 데이터가 앞에 쌓임RPUSH : 오른쪽(Tail)에 삽입 → 선입선출(Queue) 구조에 적합2. Redis의 내부 메모리 최적화 (Encoding 전략)String과 마찬가지로 Li..
-
Jenkins란?DevOps/Jenkins 2026. 4. 15. 13:53
1. Jenkins란 무엇인가?소프트웨어 개발 과정에서 **지속적 통합(CI)**과 **지속적 배포(CD)**를 구현해주는 대표적인 무료 오픈소스 자동화 서버개발자가 코드를 수정하여 저장소에 업로드하면, 이후의 빌드 → 테스트 → 배포 과정을 자동으로 실행해줌또한 Jenkins의 로고는 ‘집사(버틀러)’ 캐릭터로 디자인되어 있는데, 이는 개발자가 직접 수행하지 않아도 해당 과정을 대신 처리해주는 자동화 도구의 역할을 상징적으로 표현한 것이다. 2. Jenkins를 도입하면 무엇이 좋아질까?반복적인 수작업 제거 개발자가 직접 컴파일하고 서버에 접속해 배포하던 과정을 자동화불필요한 반복 작업을 줄이고 생산성 향상개발자는 핵심 비즈니스 로직과 코드 작성에 집중 가능빠른 피드백과 버그 최소화코드 푸시 즉시 자동..
-
[Linux] - 리눅스 SUID / SGIDlinux 2026. 2. 25. 13:43
리눅스 파일 권한에는 우리가 흔히 아는 rwx 외에도특수 권한(Special Permission) 이 존재한다.대표적인 것이 바로:SUID (Set User ID)SGID (Set Group ID)(보너스) Sticky Bit이 권한은 단순히 읽고 쓰는 문제가 아니라프로세스 실행 시 권한이 어떻게 동작하는지를 결정하는 기능이다.1. 특수 권한이란?기본 권한 구조는 다음과 같다.[소유자][그룹][기타] 하지만 특수 권한이 추가되면 앞에 한 자리가 더 붙는다.[특수권한][소유자][그룹][기타] 예:4755여기서 앞자리 4가 바로 SUID를 의미한다. 2. SUID (Set User ID)SUID가 설정된 실행 파일은 해당 파일을 실행한 사용자가 아니라, 파일 소유자의 권한으로 실행된다.즉, 실행 시 권한이 ..
-
[Linux] - Linux Permission 정리 (chmod 600/640/755)linux 2026. 2. 25. 13:24
리눅스를 사용하다 보면 chmod 600, chmod 755 같은 숫자를 자주 보게 된다.이 숫자는 단순한 코드가 아니라 파일 보안의 핵심 설정값이다.이번 글에서는 리눅스 권한 체계를 이해하기 쉽게 정리해본다. 1. 리눅스 권한의 기본 구조리눅스 파일 권한은 3개의 대상에게 각각 설정된다.대상기호설명Owneru파일 소유자Groupg파일이 속한 그룹Othero그 외 모든 사용자 각 대상은 3가지 권한을 가질 수 있다.권한기호숫자의미Readr4읽기Writew2쓰기Executex1실행 2. 숫자로 표현하는 이유 (8진수 방식)권한은 숫자 3자리로 표현한다.[소유자][그룹][기타]각 숫자는 r(4), w(2), x(1)을 더해서 만든다. 예:rw- = 4 + 2 = 6r-x = 4 + 1 = 5r-- = 4..