개발기술 (127) 썸네일형 리스트형 데이터베이스 인덱스 종류와 전략 (MYSQL InnoDB) 인덱스 개념과 분류인덱스 개념 및 목적인덱스의 목적: 데이터베이스 테이블의 모든 데이터를 검색하지 않고, 빠르게 원하는 데이터를 탐색하기 위해 사용됩니다.인덱스란: 레코드의 특정 칼럼 값과 레코드의 저장 위치를 키-값 쌍으로 저장하며, 빠른 탐색을 위해서 칼럼 값을 항상 정렬된 상태로 유지합니다.인덱스 사용 결과:데이터를 저장할 때, 인덱스를 유지하기 위한 추가적인 저장과 정렬 작업이 필요하여 **저장 성능(Insert, Update, Delete)**이 저하됩니다.그러나 읽기 작업 시, 이미 정렬된 데이터를 기반으로 탐색하므로 조회 성능이 크게 향상됩니다. 데이터 저장과 읽기의 비율: 일반적으로 저장 작업과 읽기 작업의 비율이 2:8 정도로, 저장 성능을 어느 정도 희생할지 고려하여 인덱스 전략을 설계.. Spring JPA 트랜잭션 @Transactional이 실제로 하는 일public void transactionalMethod() { PlatformTransactionManager transactionManager = getTransactionManager(); // 트랜잭션 매니저 획득 TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition()); // 트랜잭션 시작 EntityManager entityManager = entityManagerFactory.createEntityManager(); // Persistence Context 생성 bindEntityManagerToTransactio.. RESTFUL API 설계 REST API의 등장배경 멀티플랫폼의 등장단순히 하나의 브라우저만 지원하면 되었던 이전과는 달리, 최근의 서버 프로그램은 여러 웹 브라우저는 물론이며, 아이폰, 안드로이드 애플리케이션과의 통신에 대응할 수 있어야 합니다. 그전에는?2010년 이전만 해도 Server Side에서 데이터를 전달해주는 Client 프로그램의 대상은 PC 브라우저로 그 대상이 명확했다. 클라이언트의 환경이 비교적 일정했기 때문에, 서버에서 완성된 웹 페이지를 만들어 전송하는 방식이 일반적이었습니다. 그렇다 보니 그냥 JSP ASP PHP 등을 필요한 웹페이지를 구성하고 작업을 진행하면 됐다.즉, 데이터와 프레젠테이션 로직이 서버에서 함께 처리되었습니다. 그래서 범용적이고 유연하고 확장성이 있는 구조가 필요서버는 데이터만을 제.. 비동기 Web Flux WebFlux란?Spring WebFlux는 Spring 5에서 도입된 Reactive Programming을 지원하는 비동기, 논블로킹(non-blocking) 웹 프레임워크입니다. 기존의 Spring MVC가 Servlet 기반의 동기적, 블로킹 방식으로 작동하는 것과는 달리, WebFlux는 Reactive Streams API를 기반으로 하여 더 높은 확장성과 비동기 처리를 제공합니다.WebFlux의 주요 특징논블로킹 I/O (Non-blocking I/O) WebFlux는 Netty, Undertow와 같은 비동기 I/O 처리 엔진과 통합되어 동작합니다. 요청과 응답 처리 과정에서 I/O 작업이 블로킹되지 않아 많은 요청을 동시에 처리할 수 있습니다. Spring WebFlux는 비동기 I/O를.. Spring 스케쥴러 Spring SchedulerSpring Scheduler는 Spring Framework의 구성 요소로, 개발자가 특정 간격이나 시간에 작업을 수행할 수 있도록 도와줍니다. Spring Task API의 일부로, 외부 라이브러리에 의존하지 않고도 작업을 스케줄링할 수 있습니다. 백그라운드 작업 실행, 주기적인 데이터 처리, 작업 자동화, 정기적인 유지 보수 작업에 유용하게 사용할 수 있습니다.Spring Scheduler의 주요 기능간단한 설정:주석(annotation) 또는 XML 설정을 통해 스케줄 작업을 구성할 수 있어 간단하게 설정하고 관리할 수 있습니다.Spring Boot와의 통합:Spring Boot에서는 최소한의 설정으로도 사용 가능하며, 많은 설정이 자동으로 구성됩니다.Fixed Del.. 빌드와 Gradle 개념, Gradle 빌드 사용법 빌드개념 설명빌드(Build) : 소스 코드를 컴파일, 테스트, 패키징 등을 실행하여 컴퓨터가 실행할 수 있는 실행 파일로 만드는 과정컴파일 (Compile) : 프로그래밍 언어로 작성된 소스 코드를 기계어로 변환하여 실행 가능한 파일로 만드는 과정입니다. 예를 들어, Java 코드(.java)를 바이트 코드(.class)로 변환합니다. 페이지들을 한글로 번역하기컴퓨터는 사람이 작성한 고수준 언어(Java, C, Python 등)를 직접 이해하지 못하기때문에 하지 못하기때문에 기계어(또는 중간 언어)로 바꿔 CPU에서 실행할 수 있는 언어로 변경하는 과정패키징 (Packaging) : 컴파일된 파일을 하나의 패키지로 묶어 배포 가능한 형태로 만드는 단계입니다. Java에서는 .jar 파일이나 .war 파.. 빌드 후 서버 배포 로컬배포mavenLocal 배포자체 library를 쓰는 프로젝트에서 local 배포를 진행할때 mavenLocal 저장소에 자체 library 빌드를 진행한다.clean build publishToMavenLocal -x testmavenLocal 배포 저장위치gradle 에서 아래의 두가지 변수에 따라서 배포파일의 위치가 결정된다.group = 'some.platform'version = '1.0.0'~/.m2/repository/{groupId}/{artifactId}/{version}/ 전체 빌드와 배포 프로세스개발 단계 : 개발자가 Java 코드를 작성합니다.빌드 : Gradle을 사용하여 전체 빌드 과정을 처리합니다.서버 배포.jar 파일( .class 파일의 묶음)을 실행시키기 위해서 .. 성능 테스트 개념과 실행 성능 테스트란 ? 특정 워크로드에서 애플리케이션의 안전성과 속도, 확장성 및 반응성이 어떻게 유지되는 지를 판별하는 방법. 소프트 웨어의 품질을 보장하는 방법테스트의 종류대부분의 프로젝트에서는 부하 테스트와 스트레스 테스트가 기본적으로 필요합니다.부하 테스트는 시스템이 정상 범위 내에서 안정적으로 작동하는지를 확인하기 위해 필수적입니다.스트레스 테스트는 시스템의 한계를 확인하여 예상치 못한 상황에서도 얼마나 안정적으로 작동할 수 있는지를 평가하는 데 도움이 됩니다.용어설명목표부하 테스트 (Load Test)일정 수준의 정상적인 트래픽 부하를 시뮬레이션시스템이 예측된 부하를 견디는지 확인스트레스 테스트 (Stress Test)정상 범위를 초과하는 부하를 줘서 한계를 측정언제부터 느려지거나 터지는지 확인스.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 16 다음