Java - 비동기 처리(ExecutorService / Future)
·
Java & Spring/Java
□ ExecutorService 정의여러 개의 스레드를 효율적으로 관리하고 재사용할 수 있도록 돕는 스레드 풀(Thread Pool) 관리 인터페이스submit() 또는 execute()를 통해 작업을 실행할 수 있다.작업을 실행하면 Future 객체를 반환하여 결과를 받을 수 있다. □ Future 정의ExecutorService.submit() 메서드를 호출하면 작업의 결과를 받을 수 있는 Future 객체가 반환된다.future.get()을 호출하면 결과를 가져올 수 있지만, 결과가 준비될 때까지 블로킹(대기) 된다.작업을 취소할 수도 있다 → future.cancel(true) □ 장점스레드 풀(Thread Pool)을 관리하면서 비동기 작업을 효율적으로 수행 □ 단점블로킹 방식이므로 결과를 기다..
Java - 비동기 처리(Thread & Runnable)
·
Java & Spring/Java
□ 단점새로운 스레드를 생성함으로 리소스 낭비가 발생스레드 생성 비용이 비쌈OS의 스레드 관리 부담이 커질 수 있음- Thread생성을 통한 비동기 처리 public static void main(String[] args) { final long startTime = System.currentTimeMillis(); for(int i = 0; i { try { log.info("{}번째 작업 {}, 소요시간: {}", finalI, plus(), System.currentTimeMillis() - startTime); } catch (Inter..
HTTP 요청과 응답에 사용되는 클래스들
·
Java & Spring/Java
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/http/HttpEntity.html HttpEntity (Spring Framework 6.2.2 API)hasBody public boolean hasBody() Indicates whether this entity has a body.docs.spring.io □ HttpHeaders- HTTP 헤더를 나타내는 클래스, 요청과 응답의 헤더를 설정하고 가져올 때 사용- 주로 인증 토큰, 콘텐츠 유형, 인코딩 방식 등 헤더 값을 설정할 때 사용□ HttpEntity- HTTP 요청 또는 응답을 나타내는 클래스이며, 헤더와 본문을 모두 포함- 본문과 헤더..
[백준][Gold IV] Java - 1043번 : 거짓말
·
Java & Spring/코딩테스트
□ 문제 : 최대 거짓말 가능 회수를 카운트하는 프로그램 구현https://www.acmicpc.net/problem/1043진실을 아는 사람이 없는 경우 파티 수 만큼 거짓말 가능진실을 아는 사람이 있는 경우 전염되어 거짓말을 할 수 있는 파티 수가 줄어듬ex)진실을 아는사람 (1)이 있다고 가정4번 파티에 진실을 아는사람(1)과 모르는 사람(2)가이 있고3번 파티에 (2)와 다른 모르는 사람(3)이 있다면 지민이는 3번 파티에서도 거짓말을 할 수 없게됨□ 사용 알고리즘BFS□ 전체 코드코드 보기import java.io.*;import java.util.*;public class Main { static BufferedReader br = new BufferedReader(new InputStr..
그래프탐색 - DFS와 BFS
·
Java & Spring/알고리즘
□ DFS와 BFS에 대한 개념 강의 영상https://www.youtube.com/watch?v=_hxFgg7TLZQ&t=624s  □ 실행 코드코드 보기import java.io.*;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); static int N, M, ..
[백준] Java - 1929번 : 소수 구하기
·
Java & Spring/코딩테스트
- 알고리즘 : 에라토스테네스의 체- 전체코드코드 보기import java.io.*;import java.util.ArrayList;import java.util.List;public class Main { public static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); public static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); public static void main(String[] args) throws IOException { String[] input = br.readLine..
[백준] Java - 1018번 : 체스판 다시 칠하기
·
Java & Spring/코딩테스트
- 알고리즘 : 브루트 포스- 전체 코드더보기import java.io.*;public class Main { public static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); public static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); public static void main(String[] args) throws IOException { String[] input = br.readLine().split(" "); int N = Integer.parseInt(input[0..
MySQL 공간 인덱스(Spatial Index) 적용 - 체육관 검색
·
Java & Spring/고도화
※ MySQL 공간 함수 공식 문서□ 전체 QueryDsl 코드- MySQL의 공간인덱스를 사용하기 위해 Point타입을 사용R-Tree자료구조 @Override public Page search(String name, String address, GymType gymType, Point userLocation, Double requestDistance, Pageable pageable) { BooleanExpression condition = buildSearchCondition( name, address, gymType, userLocation, requestDistance); NumberTe..
csv파일으로 더미데이터 생성하기
·
Java & Spring/Java
- build.gradleimplementation 'com.opencsv:opencsv:5.6' - 전체 코드package com.play.hiclear.domain.gym.service;import com.opencsv.CSVReader;import com.opencsv.exceptions.CsvValidationException;import com.play.hiclear.common.enums.Ranks;import com.play.hiclear.domain.gym.entity.Gym;import com.play.hiclear.domain.gym.enums.GymType;import com.play.hiclear.domain.gym.repository.GymRepository;import com.p..
[TIL](2024)10.14 ~ 10.18
·
Java & Spring/TIL
WIL회고이번 팀 프로젝트에서 AOP, QueryDsl을 사용해볼수있어서 좋았다.필수 기능 구현 부분이 이전 과제들보다 어려워 도전 기능(AWS, Redis, Docker)등을 사용해보지 못한게 아쉬웠다.10월 14일 (월)- 오늘 한 일팀 프로젝트 시작, 회의 진행ERD 설계API 설계와이어프레임 작성코드 및 Git 컨벤션10월 15일 (화)- 오늘 한 일Card기능 초기 구현팀 프로젝트 1차 병합10월 16일 (수)- 오늘 한 일Card기능 CRUD 구현10월 17일 (목)- 오늘 한 일Card Activity를 AOP를 활용하여 구현Card 조회 QueryDsl을 사용하여 구현10월 18일 (금)- 오늘 한 일최종 병합 및 리펙토링프로젝트 발표 담당