java 7

단일 스레드로 순차 처리 vs 비동기 vs 멀티스레드 성능 테스트 - Java

오늘은 비동기와 멀티스레드 모두 활용할 수 있는 로그 파일 분석 & 알림 시스템을 만들어 보았다. (한 줄 요약 : 십만 건의 로그 데이터 분석을 1. 그냥 2. 비동기 3. 멀티스레드 4. 비동기 + 멀티스레드 네 가지 케이스로 나누어 비교) 우선 이 프로젝트를 하게 된 이유는,, 실무에서는 대용량 데이터를 처리할 때 어떻게 효율성을 높이고 성능을 높이는지 궁금했다. 1. 기술 블로그를 통해 실무에서의 비동기, 멀티스레드 적용 사례 알아보기 2. 비동기, 멀티스레드의 개념과 어떤 경우에 적용하는지 알아보기 3. 프로젝트 기획하기 4. 로그 더미 데이터 만들기 5. Java로 처리 시간 확인하기 https://11st-tech.github.io/2024/01/04/completablefuture/ Jav..

Project 2024.11.07

[프로젝트 회고] 대용량 데이터 처리 프로젝트(최저 가격 검색 시스템)

프로젝트 개요최근 클라우드 엔지니어링 프로젝트에서 공연 예매 서비스를 고가용성 클라우드 시스템으로 구축했습니다. 이 과정에서 대용량 데이터 처리에 대한 관심이 생겨, 성능 이슈를 파악하고 해결하는 경험을 하고자 이번 프로젝트를 진행했습니다. 개발 환경은 Java 17, Spring Boot 3.3.0을 활용했습니다. 한국소비자원의 생필품 가격 정보 데이터는 약 21만 건의 데이터가 있어 부하 테스트에 적합하다고 판단하여 이 데이터를 사용하기로 결정했습니다. 데이터는 아래 링크에서 다운로드할 수 있습니다.한국소비자원 데이터  프로젝트의 목표는 사용자의 위치나 지정된 지역을 기준으로 최저 가격을 검색하는 기능을 제공하는 것이었습니다. 시/도, 구, 동 단위로 검색하여 최저 가격으로 구매할 수 있는 곳을 쉽게..

Project 2024.08.11

[AWS] CloudWatch, S3를 활용한 실습

미션 CPU 사용량 처리를 AWS CLI 기반으로 개발 개인이 어떤 경보를 발생시킬 것인지 선택 후 완성 S3 사용 예제 하나 완성 S3 기술 문서 보고 직접 구축 및 데이터 저장 test 완료 AWS 기사 또는 매뉴얼 하나 읽기 실습 1 CPU 사용량 처리를 AWS CLI 기반으로 개발 AWS CLI를 사용하여 CPU 사용량 경보 설정 공식 문서를 참고하여 실습했다. https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/monitoring/US_AlarmAtThresholdEC2.html 아래와 같이 put-metric-alarm 명령을 사용하여 경보를 생성한다. aws cloudwatch put-metric-alarm --alarm-name cpu-m..

Infra 2024.02.28

@RequestBody와 @ModelAttribute를 언제 사용해야 할까?

Intro Spring Boot 프로젝트 진행 중 REST API로 개발하다가 Thymeleaf 사용 차 @Controller 어노테이션으로 변경한 일이 있었다. 모여서 회의하다가 Server Side Rendering와 Client Side Rendering에 대한 개념 등 조금 더 알아보기로 했다. 그 중 난 @RequestBody와 @ModelAttribute의 차이점과 언제 활용할 수 있는 지에 대해 알아본 내용을 바탕으로 팀 기술 문서 자료를 준비했다. 컨텐츠 주제 @RequestBody VS @ModelAttribute 차이점, 유사점 등등 각각 특징 등을 비교해서 포스팅 해주세요. 이때 해당 작업은 어떨 때 구분해서 사용 되는지에 대해서 설명해주고! 해당 작업을 사용한 예시 코드도 좀 부탁드..

Project 2024.02.26

프로그래머스 압축 Java - 최적화하기

https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2018 KAKAO BLIND RECRUITMENT 코딩테스트 연습 | 프로그래머스 스쿨 개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요! school.programmers.co.kr 위의 문제를 이전에 풀어봤을 땐 5일씩 붙잡고 풀었던 기억이 난다. 여러 가지 노하우가 쌓인 지금 Ha..

Algorithm 2024.01.25

Spring Boot H2 Database 사용하기

실행 환경은 Windows, IntelliJ, Java 17, Spring Boot 3 버전, gradle 프로젝트를 사용했다. plugins { id 'java' id 'org.springframework.boot' version '3.2.1' id 'io.spring.dependency-management' version '1.1.4' } ... java { sourceCompatibility = '17' } resources 하위에 application.yml 파일을 만든 후 아래의 코드를 작성한다. spring: h2: console: enabled: true server: port: 8070 프로젝트 실행 후 Console 창에서 JDBC URL 을 찾아서 ctrl+C로 복사해둔다. 콘솔창에서 ..

Java 2023.12.27

[프로그래머스] Java 요격 시스템

https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 관련 개념 그리디, 스케줄링 문제 접근 target[i][1] 기준으로 정렬 [[1,4],[3,7] [4,5],[4,8] [5,12],[10,14],[11,13]] 첫 번째 set target[1][] = [1,4] target[i][1] = 4 이상이면 멈춰야 한다. set1 : [1,{4}],[3,7] -> set1의 첫 번째 항목의 index 1의 값이 기준이다. 이후 항목의 index 0..

Algorithm 2023.06.30