분류 전체보기505 [SpringBoot] DB정보 엑셀로 다운로드하기 1. pom.xml org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-web org.apache.poi poi-ooxml 4.1.2 mysql mysql-connector-java runtime 2. Excel Helper 업로드와 동일하게 POI의 Workbook, Sheet, Row, Cell 클래스를 사용한다. 간단한 과정은 다음과 같다. 1. Workbook 생성 2. Workbook에서 Sheet 생성 3. 파라미터로 받은 저장할 객체 리스트를 반복하면서 각 cell에 set한다. 4. ByteArrayOutputStream을 생성해서 workbook을 저장한다. 5. .. 기록/BACKEND 2022. 8. 5. [SpringBoot] 엑셀 DB에 업로드하기 1. pom.xml org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-web org.apache.poi poi-ooxml 4.1.2 mysql mysql-connector-java runtime 2. Excel Helper Apache POI 클래스인 Workbook, Sheet, Row, Cell을 사용한다. 과정은 다음과 같다. 1. InputStream에서 Workbook을 생성한다. 2. Workbook에서 Sheet 이름으로 가져와서 Sheet 객체를 생성한다. 3. Sheet.iterator()에서 Row 객체들을 순서대로 가져올 수 있다. 4. Row에서 Cell 객.. 기록/BACKEND 2022. 8. 4. [SpringBoot] JPA repository로 ManyToOne관계 쿼리 작성 이번에 새로 JPA를 사용하게 되었는데, 기존 sql문과는 완전히 다르게 접근해야하는 부분이 있어서 작성해보려고 한다. 내 프로젝트에서 Board와 Comment 엔티티는 다음과 같다. 1. Entity Board @Entity @Table(name = "Board") @Data @DynamicInsert @DynamicUpdate public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "BoardNo", nullable = false) private Integer boardNo; @ManyToOne(fetch = FetchType.LAZY, optional = false) @OnDelete(ac.. 기록/BACKEND 2022. 8. 2. CI(Continuous Integration) 1. CI(Continuous Integration), 지속적 통합 개발자들이 빠른 주기로 작업한 내용을 통합 브랜치에 통합하고 빌드하는 개발 방식을 의미한다. 여기서 통합이란, 개인이 작업한 코드를 공용 작업 환경에 올리는 것을 의미한다. 이 과정은 개인 브랜치를 중앙 브랜치에 merge하는 과정으로 이뤄진다. CI는 통합과정에서 발생하는 이슈를 가능한 빨리 발견하기 위해 필요하다. 2. CI를 이용한 애자일 기능을 개발할 때는 코드를 여러 번 수정하게 되는데, 이 과정에서 코드를 반영하고, 버전 관리 시스템에서 변경 사항을 가져오고, 소스코드를 빌드하고, 단위 테스트를 진행하고, 통합하고, 통합된 코드르 빌드하고, 이를 묶어 배포하는 등 여러 과정을 수행한다. CI 환경에서는 젠킨스 같은 도구를 이용.. 기록/CI&CD 2022. 8. 1. [JO] 1658 최대공약수와 최소공배수 1. 문제 JUNGOL www.jungol.co.kr 두개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 2. 풀이 a>=b일 때, a%b==0이면 a와 b의 최대공약수는 b다. a%b!=0이라면 a와 b의 최대공약수는 b와 a%b의 최대공약수와 동일하다. import java.io.*; import java.util.*; public class JO_1658_최대공약수와최소공배수 { public static void main(String[] args) throws IOException { StringTokenizer st = new StringTokenizer(new BufferedReader(new InputStreamReader(System.in)).readLine.. 코딩테스트/ELSE 2022. 7. 31. [SpringBoot] JWT토큰 인터셉터 처리하기 보호되어 있는 글 입니다. 2022. 7. 30. [BOJ] 2004 조합 0의 개수 - JAVA 1. 문제 2004번: 조합 0의 개수 첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, $n \ne 0$)이 들어온다. www.acmicpc.net 2. 풀이 1. N! / M!(N-M)!을 구해야하므로 2의 개수, 5의 개수를 각각 구한다. 2. 분모의 2, 5 개수는 플러스, 분자의 2, 5개수는 마이너스한다. 3. 2, 5 개수 중 더 적은 값을 출력한다. 10이 되려면 더 작은 개수에 맞춰야 하기 때문이다. import java.io.*; import java.util.*; public class BOJ_2004_조합0의개수 { public static void main(String[] args) throws IOException { StringTo.. 코딩테스트/BOJ 2022. 7. 29. [BOJ] 1965 상자넣기 - JAVA 1. 문제 1965번: 상자넣기 정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가 www.acmicpc.net 정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가 있다. 예를 들어 앞에서부터 순서대로 크기가 (1, 5, 2, 3, 7)인 5개의 상자가 있다면, 크기 1인 상자를 크기 5인 상자에 넣고, 다시 이 상자를 크기 7인 상자 안에 넣을 수 있다. 하지만 이렇게 상자를 넣을 수 있는 방법은 여러 가지가 있을 수 있다. 앞의 예에.. 코딩테스트/BOJ 2022. 7. 28. [BOJ] 1735 분수 합 - JAVA 1. 문제 1735번: 분수 합 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. www.acmicpc.net 분수 A/B는 분자가 A, 분모가 B인 분수를 의미한다. A와 B는 모두 자연수라고 하자. 두 분수의 합 또한 분수로 표현할 수 있다. 두 분수가 주어졌을 때, 그 합을 기약분수의 형태로 구하는 프로그램을 작성하시오. 기약분수란 더 이상 약분되지 않는 분수를 의미한다. 2. 풀이 1. 수를 입력받은 후 분수의 합을 분모 분자 각각 구한다. 2. 약분하기 위해서 분모 분자의 최대공약수를 구한다. 3. 분모, 분자를 최대공약수로 나눈 값을 출력한다. 최대공약수 : gcd(a,b)==gcd(b,a%b) 식을 .. 코딩테스트/BOJ 2022. 7. 27. [PG] 주차 요금 계산 - JAVA 1. 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다. 요금표 기본 시간(분) 기본 요금(원) 단위 시간(분) 단위 요금(원) 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:0.. 코딩테스트/PROGRAMMERS 2022. 7. 26. [BOJ] 1309 동물원 - JAVA 1. 문제 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 어떤 동물원에 가로로 두칸 세로로 N칸인 아래와 같은 우리가 있다. 이 동물원에는 사자들이 살고 있는데 사자들을 우리에 가둘 때, 가로로도 세로로도 붙어 있게 배치할 수는 없다. 이 동물원 조련사는 사자들의 배치 문제 때문에 골머리를 앓고 있다. 동물원 조련사의 머리가 아프지 않도록 우리가 2*N 배열에 사자를 배치하는 경우의 수가 몇 가지인지를 알아내는 프로그램을 작성해 주도록 하자. 사자를 한 마리도 배치하지 않는 경우도 하나의 경우의 수로 친다고 가정한다. 2. 풀이 N=1일 때, 10 / 01 / 00인 경우는 각각 1씩이다. N=2일 때, 10 / 01 / 00인 경우는 2,.. 코딩테스트/BOJ 2022. 7. 25. [BOJ] 18352 특정 거리의 도시 찾기 - JAVA 1. 문제 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 어떤 나라에는 1번부터 N번까지의 도시와 M개의 단방향 도로가 존재한다. 모든 도로의 거리는 1이다. 이 때 특정한 도시 X로부터 출발하여 도달할 수 있는 모든 도시 중에서, 최단 거리가 정확히 K인 모든 도시들의 번호를 출력하는 프로그램을 작성하시오. 또한 출발 도시 X에서 출발 도시 X로 가는 최단 거리는 항상 0이라고 가정한다. 예를 들어 N=4, K=2, X=1일 때 다음과.. 코딩테스트/BOJ 2022. 7. 24. 이전 1 ··· 17 18 19 20 21 22 23 ··· 43 다음