반응형

java 14

[JAVA] 파일 다운로드 API

📌 개요API가 호출되었을 때 서버에 저장된 파일을 로컬 PC에 내려주는 API서버 내 저장된 경로와 파일명으로 파일 객체를 생성하고, Byte 배열로 변환 후 getoutputstream을 이용해 파일을 내려준다.📌 response 관련 메소드getOutputStreamHTTP 응답을 처리할 때 웹 서버는 클라이언트로 응답을 보내기 위해 HttpServletResponse 객체를 사용 response.getOutputStream()은 이 HttpServletResponse 객체를 통해 HTTP 응답의 바디에 데이터를 쓸 수 있는 스트림을 얻어옴. 이후에 데이터를 이 스트림에 쓰면, 해당 데이터가 HTTP 응답의 바디로 전송됨 일반적으로 파일 다운로드를 위해서는 생성된 파일을 스트림으로 변환한 후 r..

JAVA 2025.03.12

[데이터베이스/JAVA] Connection Pool

커넥션 풀(Connection Pool)이란?데이터베이스와 연결할 때, 매번 새로운 DB Connection을 생성하는 것은 비용이 많이 들고 속도를 저하시킬 수 있지만 커넥션 풀을 사용하면 일정 개수의 연결을 미리 생성해 필요할 때 가져다 쓰고 사용이 끝나면 다시 풀에 반환하여 재사용할 수 있다. 커넥션 풀의 사용 이유성능 향상: 커넥션을 미리 생성하여 재사용하므로 매번 새 연결을 만드는 시간과 비용을 절약리소스 절약: 데이터베이스 서버의 연결 개수를 제한하기 때문에, 필요 이상으로 많은 연결을 생성하지 않도록 제어 동시 접속 관리 : 많은 사용자가 동시에 접속할 때 일정 수의 커넥션만 유지하여 시스템 과부하를 방지 커넥션 풀의 동작 방식애플리케이션 시작 시, 일정 개수의 DB 연결을 미리 생성애플리..

Database 2025.02.19

[프로그래머스] Level 3. 억억단을 외우자

문제 설명 영우는 천하제일 암산대회를 앞두고 있습니다. 암산보다는 암기에 일가견이 있는 영우는 구구단을 확장하여 억억단을 만들고 외워버리기로 하였습니다. 억억단은 1억 x 1억 크기의 행렬입니다. 억억단을 외우던 영우는 친구 수연에게 퀴즈를 내달라고 부탁하였습니다. 수연은 평범하게 문제를 내봐야 영우가 너무 쉽게 맞히기 때문에 좀 어렵게 퀴즈를 내보려고 합니다. 적당한 수 e를 먼저 정하여 알려주고 e 이하의 임의의 수 s를 여러 개 얘기합니다. 영우는 각 s에 대해서 s보다 크거나 같고 e 보다 작거나 같은 수 중에서 억억단에서 가장 많이 등장한 수를 답해야 합니다. 만약 가장 많이 등장한 수가 여러 개라면 그 중 가장 작은 수를 답해야 합니다. 수연은 영우가 정답을 말하는지 확인하기 위해 당신에게 프..

[프로그래머스] Level 1. 콜라 문제

문제 설명 오래전 유행했던 콜라 문제가 있습니다. 콜라 문제의 지문은 다음과 같습니다. 정답은 아무에게도 말하지 마세요. 콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가? 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. 문제를 풀던 상빈이는 콜라 문제의 완벽한 해답을 찾았습니다. 상빈이가 푼 방법은 아래 그림과 같습니다. 우선 콜라 빈 병 20병을 가져가서 10병을 받습니다. 받은 10병을 모두 마신 뒤, 가져가서 5병을 받습니다. 5병 중 4병을 모두 마신 뒤 가져가서 2병을 받고, 또 2병을 모두 마신 뒤 가져가서 1병을 받습니다. 받은 1병과 5병을 받았을 때 남은 1병을 모두 마신 뒤 가져가면 1병을 또 받을 수 있..

[프로그래머스] Level 2. 주차 요금 계산

문제 설명 주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다. 요금표 기본 시간(분) 기본 요금(원) 단위 시간(분) 단위 요금(원) 180 5000 10 600 입/출차 기록 시각(시:분) 차량번호 내역 05:34 5961 입차 06:00 0000 입차 06:34 0000 출차 07:59 5961 출차 07:59 0148 입차 18:59 0000 입차 19:09 0148 출차 22:59 5961 입차 23:00 5961 출차 자동차별 주차 요금 차량 번호 누적 주차 시간(분) 주차 요금(원) 0000 34 + 300 = 334 5000 + ⌈(334 - 180) / 10⌉ x 600 = 14600 0148..

[프로그래머스] Level 1 . [1차] 비밀지도

문제 설명 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. "지도 1"과 "지도 2"는 각각 정수 배열로 암호화되어 있다. 암호화된 배열은 지도..

[프로그래머스] Level 1 . 내적

문제 설명 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 제한사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. [1,2,3,4] [-3,-1,0,2] 3 [-1,0,1] [1,0,-1] -2 내 답안 public int solution(int[] a, int[] b) { int answer = 0; for(int i = 0; i < a.length; i++){ answer += (a[i]*b[i]); } r..

[프로그래머스] Level 1 . 성격 유형 검사하기

문제 설명 나만의 카카오 성격 유형 검사지를 만들려고 합니다. 성격 유형 검사는 다음과 같은 4개 지표로 성격 유형을 구분합니다. 성격은 각 지표에서 두 유형 중 하나로 결정됩니다. 지표 번호 성격 유형 1번 지표 라이언형(R), 튜브형(T) 2번 지표 콘형(C), 프로도형(F) 3번 지표 제이지형(J), 무지형(M) 4번 지표 어피치형(A), 네오형(N) 4개의 지표가 있으므로 성격 유형은 총 16(=2 x 2 x 2 x 2)가지가 나올 수 있습니다. 예를 들어, "RFMN"이나 "TCMA"와 같은 성격 유형이 있습니다. 검사지에는 총 n개의 질문이 있고, 각 질문에는 아래와 같은 7개의 선택지가 있습니다. 매우 비동의 비동의 약간 비동의 모르겠음 약간 동의 동의 매우 동의 각 질문은 1가지 지표로 성..

[프로그래머스] Level 1. 없는 숫자 더하기

문제 설명 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 원소 ≤ 9 numbers의 모든 원소는 서로 다릅니다. number result [1,2,3,4,6,7,8,0] 14 [5,8,4,0,6,7,9] 6 내 답안 public int solution(int[] numbers) { int answer = 0; for(int i = 0; i < numbers.length; i++){ answer += numbers[i]; } return 45-answer;..

[프로그래머스] Level 1. 로또의 최고 순위와 최저 순위

문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니다..

반응형