일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인플레이션
- 객체지향
- mco
- 현금흐름표
- etf
- Java
- 프로그래머스
- StringBuffer
- 금리인하
- 백준
- 접근제어자
- 제태크
- XLF
- 그리디 알고리즘
- 오버라이딩
- 주식
- 주린이
- 알고리즘
- 자바
- 다형성
- S&P500
- 무디스
- 기업분석
- 배당성장
- javascript
- object
- 미국주식
- 금리인상
- FCF
- 잉여현금흐름
- Today
- Total
목록2024/04 (7)
오늘의하루
DB(데이터베이스)를 Master와 Slave로 나누는 것은 주로 데이터베이스의 성능, 확장성, 가용성, 및 안정성을 향상시키기 위해 사용되는 아키텍처 설계 패턴입니다. Master는 데이터에 대한 쓰기 작업을 담당하고, Slave는 주로 읽기 작업을 처리합니다. 이렇게 부하를 분리함으로써 읽기 요청이 많은 환경에서 성능을 향상시킬 수 있습니다. NETWORK docker network master-slave docker network connect master-slave [master container_name_or_id] docker network connect master-slave [slave container_name_or_id] docker network inspect master-slave ..
개선 사항 분석 결과 반환: 기존에는 문서를 소스 코드에 번호를 붙여 작성하여 클라이언트에게 제공했습니다. 그러나 이제는 JSON 형식으로 문서를 만들어 전달하는 방식으로 변경되었습니다. 이 변경으로 인해 시간 복잡도가 O(N^2)에서 O(N)으로 개선되어 응답 속도가 향상되었습니다. 이 과정에서 Gson과 Jackson 중 어떤 라이브러리를 선택할지 고민했고, JMH를 이용하여 밴치마크를 수행한 결과 Jackson이 Gson보다 약 2.6배 정도 더 빠르다는 결론을 얻었습니다. 따라서 Jackson을 선택하였습니다. 이와 같은 과정을 통해 코드의 가독성을 유지하고, 응답 시간을 개선하는 데에 기여하였습니다. Benchmark Mode Cnt Score Error Units JSONBenchmark.gs..
OpenPDF란? OpenPDF란 Java로 작성된 PDF를 처리하는 라이브러리 입니다. PDF 문서를 생성, 편집, 읽기 및 조작할 수 있는 기능을 제공하여 자바 애플리케이션에서 PDF 관련 작업을 수행하는 데 도움을 줍니다. 활동을 하게 된 계기 PDF 처리를 위해 기존에는 PDFBox를 사용하고 있었습니다. 그러던 중 PDFBox의 내부 코드를 더 자세히 살펴보고 싶어졌고, 이를 통해 코드를 보며 학습하는 기회를 얻었습니다. 그러던 중 OpenPDF 라이브러리를 발견했고, PDFBox에는 없는 기능들이 있을지 궁금해졌습니다. 또한, 최근에는 유지보수성과 코드의 가독성을 높이는 것에 관심이 많았는데, 이를 이론적인 수준에서만이 아니라 실제 프로젝트에 적용하여 검증받고 싶어졌습니다. 그래서 OpenPD..
성능 향상을 위한 Load Balancing 전략을 검토하고, AWS의 ELB와 오토 스케일링을 활용하여 효과적인 서비스 배포를 준비합니다. Load Balancing Load Balancing은 Scale-Out 전략의 핵심으로, 서버나 리소스의 수를 증가시켜 시스템 성능을 향상시킵니다. 테스트 결과, 30~40개의 스레드가 최적의 성능을 나타내므로 이를 고려하여 Load Balancing 전략을 수립합니다. Nginx를 통한 Load Balancing 설정 Nginx는 Reverse Proxy와 Load Balancing 설정이 간편하며, 적은 자원으로 많은 연결을 처리할 수 있어 선택했습니다. Load Balancing 알고리즘으로는 Least Connections, Generic Hash를 테스트..
사용자를 특정 그룹에 추가 그룹에 사용자를 추가하는 명령은 시스템 관리자 혹은 root 권한을 가진 사용자만 가능하다. $ sudo usermod -aG docker jangto usermod : 사용자 계정을 수정하는데 사용되는 명령어로 사용자 계정의 특성을 변경하거나 그룹에서 추가 또는 삭제 하는 등 작업을 할 수 있습니다. -aG : 이 옵션은 사용자를 그룹에 추가할때 사용되며, a는 append를 의미하고 G는 추가할 그룹을 지정해줍니다. docker : 이 자리에는 그룹의 이름이 들어갑니다. jangto : 이 자리에는 그룹에 추가될 사용자 이름이 들어갑니다. Window에서 docker로 파일 복사 만약 파일이 C드라이브나 D드라이브에 있다면 /mnt/c/ 혹은 /mnt/d/를 붙여서 복사 할..
개선 사항 시간 복잡도 개선: O(N^2)의 시간 복잡도를 가진 메소드를 O(N)으로 개선했습니다. 이로써 데이터 처리 과정의 속도가 향상되었습니다. 압축 해제 라이브러리 사용: 기존에는 ZipInputStream을 사용했으나, Apache의 archivers를 사용하여 압축을 해제하는 방식으로 변경했습니다. 이는 성능과 안정성을 향상시켰습니다. 데코레이터 사용: 주석 제거 전 프로세스에서 ArchiveInputStream으로 Stream을 만들어서 주석 제거 메소드에서 Stream을 사용하여 파일 IO작업의 성능을 높였습니다. 이로써 파일 IO 작업의 효율이 개선되었습니다. 반복적인 작업 개선: 반복적으로 접근하여 파일 IO 작업이 이뤄지는 부분을 개선하여 한 번만 접근하도록 수정하였습니다. 이로써 불..
개선 사항 프로세스 단계 간소화: 불필요한 프로세스 단계를 제거하고, 필요한 작업을 더 효율적으로 처리하기 위해 프로세스를 재구성했습니다. 이로써 프로세스의 실행 속도를 향상시켰습니다. String 객체 생성 최소화: 불필요한 String 객체 생성을 제거하고, 메모리 사용을 최적화하기 위해 InputStream을 활용하여 데이터를 처리하도록 수정했습니다. 버퍼 크기 증가: 프로세스의 효율성을 높이기 위해 버퍼 크기를 4096byte로 증가시켰습니다. 이는 프로세스의 데이터 처리량을 늘려서 성능을 향상시켰습니다. 불필요한 IO 작업 제거: 불필요한 IO 작업을 최소화하여 메모리 사용을 줄였습니다. 이는 프로세스의 부하를 감소시켜서 전반적인 성능을 향상시켰습니다. 환경 설정 Apache JMeter ver..