일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자동화워크플로우
- Java
- 하이브리드접근법
- 자바
- Kafka
- QA
- 프로토콜역할
- selenium
- 티스토리챌린지
- 헥사고날아키텍처
- 자료구조
- N+1문제
- 부트캠프
- kafka배포
- 오버로딩
- 프로세스와스레드의차이
- 엘라스틱서치
- n8n
- STOMP
- 오블완
- springboot
- JPA
- nplus1
- 스프링시큐리티
- 메소드
- XSS
- 테스트케이스
- jwt토큰
- 한화시스템부트캠프
- 캐시의 작동 원리
- Today
- Total
목록분류 전체보기 (73)
아쿠의 개발 일지
웹 애플리케이션이 점점 복잡해지면서 테스트 자동화는 필수 요소가 되었습니다. 테스트 자동화를 위한 대표적인 도구로 Selenium, Cypress, Playwright가 있습니다. 이번 글에서는 세 가지 도구의 특징을 비교하고, 어떤 상황에서 어떤 도구를 선택하면 좋을지 알아보겠습니다. 1. Selenium, Cypress, Playwright 비교구분SeleniumCypressPlaywright언어 지원Java, Python, C#, JavaScript 등JavaScript, TypeScriptJavaScript, TypeScript, Python, Java, C#브라우저 지원Chrome, Firefox, Edge, SafariChromium, Firefox, EdgeChromium, Firefox, ..
JPA를 사용하면서 연관 관계가 설정된 엔티티를 조회할 때 N+1 문제를 경험한 적이 있을 것입니다. 이는 하나의 쿼리를 실행한 후, 연관된 엔티티를 개별적으로 추가 조회하는 문제로 인해 성능 저하를 초래합니다. 이를 해결하기 위한 대표적인 방법이 fetch join과 EntityGraph입니다.이번 글에서는 fetch join과 EntityGraph의 개념을 이해하고, 이를 활용하여 성능 최적화를 어떻게 할 수 있는지 알아보겠습니다. .👍😊 1. Fetch Join 소개 및 활용Fetch Join 개념fetch join은 JPA의 JOIN FETCH 키워드를 활용하여 연관된 엔티티를 한 번의 쿼리로 조회하는 방법입니다. 이를 통해 N+1 문제를 해결하고 불필요한 추가 조회를 방지할 수 있습니다.Fe..
멀티쓰레드 환경에서 동시성 제어는 중요한 이슈입니다. Spring Boot 애플리케이션에서 여러 사용자의 요청이 동시에 처리될 때, 올바른 데이터 일관성을 유지하기 위해 적절한 동시성 제어 기법을 적용해야 합니다. 이번 글에서는 synchronized, Lock, Atomic 클래스를 활용한 동시성 제어 방법을 비교하고, 각각의 장단점을 알아보겠습니다. 1. 동시성 제어가 필요한 이유멀티쓰레드 환경에서는 여러 개의 쓰레드가 동시에 공유 자원에 접근할 수 있습니다. 이때 동기화 처리를 하지 않으면 데이터 무결성이 깨지거나 레이스 컨디션(Race Condition) 문제가 발생할 수 있습니다. 예를 들어, 아래 코드를 살펴봅시다. @RestController@RequestMapping("/counter")p..

AWS S3(Simple Storage Service)는 안정적인 클라우드 스토리지 서비스로, 다양한 애플리케이션에서 파일 저장 용도로 사용됩니다. 이번 글에서는 Spring Boot에서 S3 파일 업로드를 구현하는 방법과 비용 절감을 위한 최적화 전략을 소개합니다. 1. Spring Boot에서 S3 파일 업로드 구현1.1 AWS SDK 의존성 추가먼저, AWS SDK를 프로젝트에 추가해야 합니다. build.gradle 혹은 pom.xml에 아래 의존성을 추가합니다. software.amazon.awssdk s3 2.20.01.2 S3 클라이언트 설정Spring Boot에서 AWS S3를 사용하려면, S3Client를 설정해야 합니다.@Configurationpublic class ..

오늘날의 데이터 중심 시대에서 기업은 데이터를 효과적으로 저장하고 분석하는 것이 성공의 핵심 요소로 자리 잡고 있습니다. 데이터를 저장하고 활용하기 위해 대표적으로 사용되는 두 가지 주요 기술이 바로 데이터 웨어하우스(Data Warehouse)와 데이터 레이크(Data Lake)입니다. 이 글에서는 두 기술의 주요 차이점, 장단점, 그리고 각각의 활용 사례를 살펴보겠습니다. 데이터 웨어하우스란?데이터 웨어하우스는 정형 데이터(Structured Data)를 저장하고 분석하기 위한 중앙 저장소입니다. 이는 주로 관계형 데이터베이스(RDBMS)를 기반으로 하며, 비즈니스 인텔리전스(BI)와 데이터 분석 작업을 최적화하기 위해 설계되었습니다.특징정형 데이터 중심: 표 형식의 데이터로, 스키마(schema)가..

프로토콜이란 무엇인가요?우리가 인터넷을 사용하거나 파일을 전송하고, 이메일을 주고받는 등 다양한 작업을 할 때 보이지 않는 규칙들이 존재합니다. 바로 이러한 규칙들의 집합을 프로토콜(Protocol)이라고 부릅니다. 프로토콜은 컴퓨터나 네트워크 장치들이 서로 통신하기 위해 반드시 따라야 할 표준화된 규칙입니다.프로토콜의 역할프로토콜은 서로 다른 시스템 간의 원활한 소통을 보장합니다. 예를 들어, 두 사람이 서로 다른 언어를 사용하면 의사소통이 어렵듯이, 컴퓨터 시스템도 공통의 규칙 없이 데이터를 주고받기 힘듭니다. 따라서 프로토콜은 다음과 같은 역할을 합니다:데이터 형식 정의: 데이터를 어떤 형식으로 송수신할지를 정의합니다.데이터 전송 제어: 데이터가 올바른 순서로 전송되고 도착했는지를 확인합니다.오류 ..

클라우드 컴퓨팅이란?클라우드 컴퓨팅은 인터넷(혹은 클라우드)을 통해 데이터 저장, 서버, 네트워크, 소프트웨어 등 IT 리소스를 제공하는 기술입니다. 조직은 하드웨어를 직접 관리할 필요 없이 클라우드 서비스 제공자의 리소스를 활용하여 유연하고 확장 가능한 환경을 구축할 수 있습니다.클라우드 서비스의 특징온디맨드(Self-Service): 사용자는 필요한 리소스를 직접 설정하고 배포할 수 있습니다.유연한 확장성(Scalability): 트래픽에 따라 자원을 자동으로 확장하거나 축소할 수 있습니다.비용 효율성: 필요한 만큼만 요금을 지불(Pay-as-you-go)하며 초기 하드웨어 투자 비용이 필요 없습니다.글로벌 접근성: 전 세계 데이터 센터를 통해 낮은 지연 시간과 높은 가용성을 제공합니다. 주요 클라우..

웹 애플리케이션이 발전하면서 다양한 기능이 추가 되었지만, 동시에 보안 위협도 증가하고 있습니다.그중에서도 특히 XSS(Cross-Site Scripting) 와 CSRF(Cross-Site Request Forgery)는 흔히 발생하는 취약점으로 꼽힙니다. 이번 글에서는 XSS와 CSRF의 작동 원리와 이를 방어하기 위한 방법을 알아보겠습니다.1. XSS (Cross-Site Scripting)XSS란?XSS는 공격자가 악의적인 스크립트를 웹 페이지에 삽입하여, 이를 방문하는 사용자의 브라우저에서 실행되게 만드는 공격입니다. 주로 JavaScript를 활용하며, 사용자의 세션 쿠키를 훔치거나 악성 사이트로 리다이렉트시키는 데 사용됩니다.XSS의 유형Stored XSS공격 스크립트가 데이터베이스에 저장되..
1. CPU 캐시란?CPU 캐시는 메모리 접근 속도를 향상시키기 위해 설계된 소형 고속 메모리입니다. 프로세서와 메인 메모리(RAM) 사이에서 데이터를 임시 저장하며, 자주 사용되는 데이터에 대한 접근 속도를 높이는 역할을 합니다.2. CPU 캐시의 계층 구조캐시는 일반적으로 다단계 계층 구조를 가지며, 각 단계는 크기와 속도가 다릅니다:L1 캐시: 프로세서 코어 내부에 위치하며 가장 작고 빠름.L2 캐시: L1보다 크지만 조금 느림.L3 캐시: 여러 코어가 공유하며 가장 크고 상대적으로 느림.이러한 구조는 공간-속도 트레이드오프를 기반으로 데이터를 효율적으로 관리합니다.3. 캐시의 작동 원리지역성(Locality): 캐시의 작동은 시간적 지역성(Temporal Locality)과 공간적 지역성(Spat..

앱 애플리케이션이 점점 더 많은 사용자를 대상으로 하면서 안정성과 성능을 유지하기 위해 로드 밸런서는 필수적인 기술이 되었습니다. 이번 글에서는 로드 밸런서의 기본 개념과, 작동 원리 그리고 트래픽 분산 방식, 실무에서 활용 사례에 대해 알아보겠습니다. 로드 밸런서란?로드 밸런서(Load Balancer)는 여러 서버에 걸쳐 들어오는 트래픽을 분산시켜 서버 과부하를 방지하고 애플리케이션의 안정성과 확장성을 보장하는 네트워크 장치 또는 소프트웨어입니다. 이를 통해 서비스가 중단 없이 안정적으로 운영될 수 있습니다.로드 밸런서의 주요 역할트래픽 분산: 여러 서버에 트래픽을 균등하게 분산.고가용성 보장: 특정 서버가 장애를 겪더라도 다른 서버로 요청을 재분배.성능 최적화: 트래픽 부하를 관리하여 응답 시간을 ..