일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 최대공약수 예제
- 국세청 해외주식 양도세 신고방식
- katalon
- java.sql.SQLSyntaxErrorException
- 재귀함수 예제
- 재귀 예제
- 해외증권 양도세 한국투자증권
- 피보나치함수
- katalon xpath
- tomcat log
- git 연동
- 홈택스 해외주식 양도세
- js 자동완성
- 해외주식 양도세 신고
- 피보나치 예제
- 주식 양도세 신고방법
- 피보나치함수 예제
- 톰캣 실시간 로그
- CSTS 폭포수 모델
- oracle group by
- 한국투자증권 양도세 신고
- recursion example
- javascript 자동완성
- bfs 미로탐색 java
- katalon 자동화
- katalon 비교
- 한국투자증권 해외주식 양도세
- katalon 사용법
- Katalon Recorder 사용법
- 테스트 자동화
- Today
- Total
목록기타 (13)
엄지월드
스프링 부트 비동기 및 병렬 처리Spring Boot에서 비동기 처리 도입@EnableAsync 어노테이션으로 비동기 처리 활성화@Async 어노테이션으로 비동기 메서드 정의기본적으로 Executor가 비동기 작업을 처리반환 타입으로 Future, CompletableFutre 사용비동기 처리의 성능 최적화ThreadPoolTaskExecutor를 사용해 비동기 스레드 풀 설정corePoolSize, maxPoolSize, queueCapacity 등의 파라미터 최적화작업이 과도할 때 RejecctedExecutionHandler 설정적절한 스레드 풀 사이즈를 통해 리소스 사용 최적화@Beanpublic Exeucutor() { ThreadPoolTaskExcutor executor = new Threa..
성능 및 부하 테스트 개요성능 테스트시스템이 일상적인 사용량에서 얼마나 잘 작동하는지 평가 -> 응답 시간에 초점성능 테스트 주요 지표 응답 시간 : 요청을 처리하는 데 걸리는 시간처리량 : 일정 시간 동안 처리할 수 있는 요청 수CPU, 메모리, I/O 사용량 : 시스템 자원의 효율적인 사용 여부부하 테스트시스템이 최대 부하나 비정상적인 사용량에서 어떻게 동작하는지 평가-> 처리량, 안정성에 초점부하 테스트 주요 지표동시 사용자 수 : 동시에 시스템을 사용하는 사용자 수초당 처리 요청 수(QPS) : 시스템이 초당 처리할 수 있는 요청 수에러율 : 부하가 발생할 때 오류가 발생하는 비율성능 테스트의 유형로드 테스트 : 시스템의 처리량을 측정스트레스 테스트 : 시스템의 한계점을 찾아내기 위한 테스트스파이..

JVM 메모리 구조JVM 메모리 구조JVM 메모리의 주요 영역HeapStackMeta spaceCode CacheHeap 메모리Young GenerationEden, Survivor 영역으로 나뉨Old Generation오래 살아남은 객체들이 저장됨Minor GC vs Major GCStack 메모리메서드 호출 시 지역 변수 저장메서드 호출 및 반환 시 스택 프레임 추가 및 제거Stack 메모리의 한계 (고정 크기) Metaspace클래스 메타데이터 저장PermGen과 Metaspace의 차이점네이티브 메모리 사용Code CacheJIT 컴파일러가 변환한 기계어 저장자주 사용되는 코드 실행 속도 향상Code Cache 크기 조정 방법(-XX:ReservedCodeCacheSize)GC 알고리즘과 동작 원..
데이터베이스 성능 최적화 개요 및 전략쿼리 최적화 전략서브쿼리 대신 조인 사용 인덱스 설정 최적화복합 인덱스를 사용하여 다중 조건 쿼리 성능 개선인덱스 스캔과 인덱스 시크의 차이 이해인덱스 스캔 : 전체 데이터를 훓음인덱스 시크 : 필요한 데이터만 빠르게 찾아가는 방식 B-Tree 인덱스와 Hash 인덱스의 사용B-Tree 인덱스 : 범위 검색 Hash 인덱스 : 필요한 데이터만 빠르게 찾아감메모리 및 캐시 최적화버퍼 풀(Buffer Pool) 최적화로 디스크 I/O 최소화쿼리캐시 : 자주 사용되는 쿼리 결과를 메모리에 저장Shared Buffers와 Work Mem의 적절한 크기 설정캐시 무효화 정책을 통한 데이터 최신 상태 유지디스크 I/O 최적화파티셔닝을 통해 데이터 분할 처리I/O 대기 시간 분석..

스프링 부트 어플리케이션 캐시 적용 방법과 기본 원리캐시 활성화 : @EnableCaching 어노테이션 사용주요 어노테이션@Cacheable : 캐시 저장캐시된 데이터가 있을 경우 메서드 실행을 건너뛰고 캐시된 값 반환key 옵션 : 캐시에 저장될 키 값 지정 가능condition 옵션 : 조건에 맞는 경우에만 캐시 적용 가능 주요 어노테이션@CacheEvict : 캐시 삭제@CachePut : 캐시 업데이트캐시 프로바이더 설정Ehcache : 로컬 캐시를 제공하는 강력한 캐시 라이브러리Caffeine : 높은 성능을 자랑하는 메모리 기반 캐시Redis : 네트워크 기반의 분산 캐시로, 여러 인스턴스에서 데이터를 공유 가능 캐시 사용 시 고려해야 할 성능 이슈캐시 과다 사용 : 캐시가 너무 자주 갱신되..
스프링 부트 내장 톰캣의 주요 기능HTTP 요청 및 응답 처리 : GET, POST 등의 HTTP 메서드 처리SSL/TLS를 통한 HTTPS 지원스레드 풀 관리 : 동시 요청 처리를 위한 스레드 관리 기능압축 및 Keep-Alive와 같은 네트워크 최적화 기능 내장 Tomcat과 일반 Tomcat의 차이[내장] 애플리케이션 내부에서 실행VS [외장] 별도의 서버로 설치[내장] JAR로 패치징VS [외장] WAR로 배포[내장] 빠른 테스트 및 배포 VS [외장] 대규모 인프라 관리에 유리[내장] 어플리케이션 중심 설정 관리 -> 개발과 환경별 대응이 유연VS [외장] 서버 중심의 설정 관리 -> 통합적이고 운영자 친화적내장 톰캣의 기본 설정스레드 풀 : 기본적으로 200개의 스레드 처리server.tomc..
어플리케이션 구동 개요1 - JVM 시작클래스 로딩 : 어플리케이션 클래스와 라이브러리 로드메모리 할당 : 힙(Heap) 메모리와 스택(Stack) 메모리 초기화JVM 옵션 설정 : 성능 최적화를 위한 옵션 설정 (예 : -Xmx, -Xms)2 - Spring Application 클래스 실행 단계어플리케이션의 시작점을 정의구성 설정과 리스너 등록배너 출력 및 로깅 설정3 - 환경 설정 단계메서드 호출 시 지역 변수 저장메서드 호출 및 반환 시 스택 프레임 추가 및 제거Stack 메모리의 한계 (고정 크기)4 - 어플리케이션 컨텍스트 생성 단계Application Context 생성스프링의 DI(Dependency Injection)를 통한 Bean 주입Bean 라이프사이클 관리5 - Bean 등록 및 ..
외부 서비스 의존성외부 API 호출 지연으로 인해 애플리케이션 응답 지연네트워크 장애 시 외부 서비스의 불안정성으로 인한 성능 저하재시도 로직 미흡으로 인한 시스템 부하Circuit Breaker 미사용으로 장애가 전체 시스템에 파급자바 - JVM 메모리 관리 및 GC 튜닝적절한 Heap 메모리 크기 설정 (-Xms, -Xmx)최소, 최대 크기 설정GC 알고리즘 선택 (G1 GC, ZGC 등)G1 GC는 대규모 어플리케이션에 적합ZGC 지연 시간 최소화에 강점메모리 누수 방지 및 GC 로그 분석 자바-멀티스레드 및 동시성 처리 최적화스레드 풀 크기 조정(Executor Service, Fork Join Pool)비동기 처리 및 병렬 스트림 사용대용량 처리 시 병렬 스트림 사용스레드와 동시성 문제 해결 정..

인공지능(Artificial Intelligence) : 컴퓨터가 인간과 같이 생각할 수 있도록 만드는 기법을 연구하는 학문 머신러닝(Machine Learning) : 데이터에 기반한 학습을 통해 인공지능을 구현하는 기법들을 지칭. 딥러닝(Deep Learning) : 머신러닝 기법 중 하나인 인공신경망(Artificial Neural Networks) 기법의 은닉층(Hidden Layer)을 깊게 쌓은 구조를 이용해 학습하는 기법 머신러닝 : 명시적인 프로그래밍 없이 데이터를 이용해서 예측 또는 분류를 수행하는 알고리즘을 구현하는 기법을 뜻함. 머신러닝은 한국말로 기계 학습이라고도 부름. 머신러닝이 필요한 이유 - 머신러닝 방법론을 이용할 경우, 인간이 정확히 하나하나 로직을 지정 해주기 어려운 복..
#2. CPU 스케줄링 방법 중 다음과 같은 상황을 해결하기 위한 방법을 한 단어로 적으시오. 답 : 선점형 스케줄링 해설 : - 하나의 프로세스가 CPU를 점유하고 있을 때 다른 프로세스가 프로세서를 빼앗을 수 있는 방법 - 우선 순위가 높은 프로세스가 CPU를 먼저 차지하기가 용이하기 때문에 시분할 시스템에서 사용. - 많은 오버헤드를 초래. #3. 다음은 알고리즘의 효율성을 비교한 그래프이다. 이를 참고하여 물음에 답하시오. 답 : - 데이터의 수가 증가하는 비율에 비해 연산횟수 증가율이 낮아야 좋은 알고리즘이다. - 즉, 공간복잡도에 비해 시간복잡도 증가율이 낮아야 한다. #5. 다음에 대한 원인과 근본적인 해결안을 가장 잘 제시한 의견을 고르시오. 답 : 최 대리: 데이터 설계가 잘못되어 이상현..