Java 8 이상에서는 컬렉션을 처리할 때 for문 대신 Stream API를 활용하는 경우가 많습니다.코드를 더 간결하게 만들 수 있고, 병렬 처리도 쉽게 가능하죠.하지만 성능이나 가독성 측면에서는 어떤 차이가 있을까요?오늘은 실제 성능 비교 테스트와 함께 for문과 Stream의 차이를 정리해보겠습니다.✅ 1. 기본 차이점항목for문Stream프로그래밍 스타일명령형 (Imperative)선언형 (Declarative)코드 길이비교적 길고 절차적임짧고 함수형 스타일병렬 처리직접 쓰레드 구현 필요.parallel() 사용으로 간단함학습 난이도직관적이고 쉬움함수형 개념 이해 필요✅ 2. 예시: 문자열 숫자들의 합 구하기String numStr = "1234567890";🔸 for문 방식int sum = ..
JWT(JSON Web Token)는 웹 애플리케이션에서 사용자 인증과 정보 교환을 위해 널리 사용되는 토큰 기반 인증 방식입니다. JWT는 JSON 형식의 데이터를 안전하게 전송할 수 있도록 설계되었으며, 특히 OAuth 2.0, OpenID Connect 등 다양한 인증 시스템에서 사용됩니다.1. JWT의 구조JWT는 점(.)으로 구분된 세 부분으로 구성됩니다.헤더.페이로드.서명1.1 헤더(Header)JWT의 헤더는 어떤 알고리즘을 사용할 것인지 정의합니다. 일반적으로 다음과 같은 JSON 형식입니다.{ "alg": "HS256", // 서명에 사용할 알고리즘 (예: HS256, RS256) "typ": "JWT" // 토큰 타입}1.2 페이로드(Payload)페이로드는 사용자 정보(..
최근 많은 웹사이트와 모바일 앱에서 소셜 로그인을 제공하고 있습니다. 사용자는 구글, 페이스북, 네이버, 카카오 같은 소셜 계정을 이용해 별도의 회원가입 없이 서비스를 이용할 수 있습니다. 이러한 소셜 로그인은 OAuth 2.0 프로토콜을 기반으로 동작합니다. 이번 글에서는 OAuth 2.0의 개념과 소셜 로그인 구현 방식을 살펴보겠습니다.1. OAuth 2.0이란?OAuth 2.0(Open Authorization 2.0)은 타사 애플리케이션이 사용자 비밀번호를 직접 요구하지 않고, 인증 및 권한을 부여받을 수 있도록 하는 표준 프로토콜입니다. 이를 통해 보안성을 강화하고, 사용자 경험을 개선할 수 있습니다.1.1 OAuth 2.0의 주요 개념리소스 소유자(Resource Owner): 보호된 자원(예..
AWS KMS(Amazon Web Services Key Management Service)는 AWS에서 제공하는 관리형 키 관리 서비스로, 데이터를 보호하고 암호화 키를 안전하게 생성, 저장, 제어할 수 있도록 돕는 서비스입니다. AWS KMS를 사용하면 강력한 보안 표준을 준수하면서도 다양한 AWS 서비스 및 애플리케이션에서 암호화 기능을 쉽게 구현할 수 있습니다.AWS KMS의 주요 기능키 생성 및 관리대칭 키 및 비대칭 키 생성 가능키의 자동 로테이션 설정 가능키 정책을 활용한 세부적인 접근 제어 제공데이터 암호화 및 복호화AWS 서비스에서 직접 KMS를 활용하여 데이터 암호화 가능 (예: S3, RDS, EBS 등)AWS SDK 또는 CLI를 사용하여 애플리케이션 내에서 암호화 및 복호화 수행I..
HTTP 방식의 파일 업로드 도중 중단되었을 때 나중에 이어서 업로드하는 기능을 구현하려면 파일 조각 업로드(chunked upload) 방식이나 비동기 파일 업로드 방식 등을 고려할 수 있습니다.1. 파일 조각 업로드 (Chunked Upload)파일을 작은 조각으로 나누어 업로드하는 방식입니다. 중단되었을 때, 이미 업로드된 부분은 그대로 두고, 중단된 부분부터 다시 업로드를 시작할 수 있습니다.클라이언트 측: 파일을 일정 크기(예: 1MB)로 분할하여 업로드합니다. 각 조각은 순차적으로 서버로 전송되며, 서버는 각 조각을 받고 저장합니다.서버 측: 각 파일 조각을 수신하여 임시 디렉터리에 저장하고, 모든 조각이 업로드되면 이를 하나로 합쳐서 최종 파일을 생성합니다.중단 처리: 클라이언트가 중단된 지..
Git을 사용하여 원격 저장소에 접근할 때, 매번 사용자 이름과 비밀번호를 입력하는 번거로움을 줄이기 위해 인증 정보를 저장할 수 있습니다.(1) HTTPS 인증 저장Git은 HTTPS 인증 정보를 저장할 수 있도록 Credential Helper를 제공합니다.기본 Credential Helper 설정git config --global credential.helper store이 설정을 하면 첫 인증 후 인증 정보가 평문으로 저장됩니다.캐시 방식 사용git config --global credential.helper cache이 경우 인증 정보가 메모리에 저장되며 기본 만료 시간은 15분입니다. 시간을 조정하려면:git config --global credential.helper 'cache --time..
각 서버별 Git 설치 방법Git은 소프트웨어 개발 및 버전 관리를 위한 필수 도구로, 다양한 서버 환경에서 설치할 수 있습니다. 이 글에서는 Ubuntu, CentOS/RHEL, macOS, 그리고 Windows 환경에서 Git을 설치하는 방법을 정리합니다.1. Ubuntu에서 Git 설치기본 패키지로 설치Ubuntu는 기본적으로 apt를 사용하여 Git을 설치할 수 있습니다.sudo apt updatesudo apt install git설치가 완료되면 다음 명령어로 버전을 확인하세요:git --version최신 버전 설치 (PPA 사용)Ubuntu의 기본 저장소에 포함된 Git은 최신 버전이 아닐 수 있습니다. 최신 버전을 설치하려면 Git PPA를 추가해야 합니다.sudo add-apt-reposi..
POC (Proof of Concept)란 무엇인가?POC (Proof of Concept)는 아이디어나 이론, 특정 기술적 해결책이 실현 가능한지를 검증하는 과정을 의미합니다. 직역하면 "개념 증명"으로, 초기 단계에서 아이디어의 실질적인 가능성을 확인하고 프로젝트를 본격적으로 시작하기 전 문제점을 사전에 식별하는 중요한 절차입니다.개발이나 기술 도입이 필요한 프로젝트를 시작할 때, 많은 시간과 자원이 소요됩니다. 이때 POC를 통해 아이디어가 실제로 작동하는지, 예상되는 효과를 제공할 수 있는지를 확인함으로써 리스크를 줄이고 효율적으로 프로젝트를 추진할 수 있습니다.POC의 목적과 중요성실현 가능성 검토아이디어나 계획이 실제로 실행 가능한지를 판단하는 데 가장 큰 목적이 있습니다.예를 들어, 새로운 ..
Spring Boot에서 PostgreSQL 데이터소스를 설정할 때, applicationName은 spring.datasource.url에 포함시킬 수 있습니다. jdbc:postgresql://host:port/database?ApplicationName=myAppName위에처럼 JDBC URL에 파라미터로 추가합니다. 이 방법을 통해 PostgreSQL의 연결 로그나 모니터링 도구에서 어플리케이션 이름을 쉽게 식별할 수 있습니다.[springboot datasource 설정 예시]datasource: url: jdbc:log4jdbc:postgresql://localhost:5432/databaseName?ApplicationName=MyAppName username: postgres..

PostgreSQL의 한글데이터가 들어있는 컬럼을 기준으로 정렬조건을 지정했을때 가나다 순으로 나오지 않을 수 있다. PostgreSQL에서는 ICU(International Components for Unicode)를 사용하여 더 세밀한 정렬을 지원하고.다음과 같은 방법을 통해 COLLATE 설정을 사용할 수 있다. 먼저 내가 사용할 수 있는 COLLATE 설정을 조회하기 위해 아래 명령어를 입력해보자SELECT * FROM pg_collation WHERE collname LIKE 'ko%'; "ko-KR-x-icu" 나 "ko-x-icu" 설정으로 collate 설정을 잡아주면 가나다 순으로 조회되는것을 확인할 수 있다.select * from table_name order by column_na..
- Total
- Today
- Yesterday
- smtp
- PostgreSQL
- Message-ID
- 개발면접질문
- 개발면접
- 웹서버
- 신입개발자면접
- BtoC
- 성능최적화
- db
- pop3
- java
- imap
- database
- 기술면접
- 데이터베이스
- 정보처리
- java메일
- 레디스
- javamail
- OAuth2.0
- 개발기술면접
- redis-cluster
- Spring
- 개발자면접
- 신입개발자기술면접
- 레디스클러스터
- 신입개발자
- 개발자면접질문
- http
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |