전체 글
-
[프로그래머스] 있었는데요 없었습니다SQL-프로그래머스 2023. 2. 13. 15:56
문제 문제 정리하자면, 보호 시작일이 빠른 순으로 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문 작성하기 배운 점 - 어떤 숫자 ( 날짜도 포함 ) 의 비교를 해서 조회를 하는 문제는 단순히 where 문에서 비교연산자를 사용하면 된다 코드 SELECT o.ANIMAL_ID, o.NAME from ANIMAL_OUTS as o join ANIMAL_INS as i on o.ANIMAL_ID = i.ANIMAL_ID where o.DATETIME
-
[프로그래머스] - 없어진 기록 찾기SQL-프로그래머스 2023. 2. 13. 15:47
문제 요약 데이터 유실을 때문에 ANIMAL_OUTS에는 있지만, ANIMAL_INS에는 없는 데이터를 ID 순으로 조회하는 SQL문 작성하기 배운점 - 하나의 테이블에는 없지만, 연관된 테이블에 데이터를 확인하는 방법은 is NULL 을 사용하는 방법이 있다 - 입양을 간 기록 ( OUTS ) 은 있지만, 들어온 기록 ( INS )은 없는 데이터니까 왼쪽에 데이터가 있는 OUTS 테이블을 놓고 오른쪽에는 INS을 두어서 left join을 실행하는 것이다. 코드 SELECT o.ANIMAL_ID, o.NAME from ANIMAL_OUTS as o left join ANIMAL_INS as i on o.ANIMAL_ID = i.ANIMAL_ID where i.ANIMAL_ID is NULL order ..
-
[알고리즘] 백준 - 신나는 함수 실행 ( 9184 )알고리즘 2023. 2. 3. 15:26
1. 문제 2. 접근 1. 문제에서 함수를 구현하는 것은 쉬운데, 시간이 오래걸린다는 점에서 DP를 사용하면 된다는 점은 알수있다 2. 풀이를 보면 d를 3차원으로 초기화한다는 점을 알 수 있다. 특이한 점은 21번을 반복한다는 점이다. 이유는 조건에서 20을 초과하면 w(20,20,20)으로 재귀를 하기 때문이다. 3. 조건은 그대로 쓰면 되는데 시간을 좀 더 빠르게 나오게 하기 위해서 중간에 구현된 d[a][b][c] 가 있다면 바로 return하는 것을 볼 수 있다. 또한, 앞의 조건 2개는 바로 return 하는 반면 아래 2개 조건은 d[a][b][c]의 값으로 실행된다는것을 알아야 한다 4. 출력은 format 메소드 쓰면 된다! 3. 풀이 # 실버 2 - 9184 import sys inpu..
-
[알고리즘] 백준 - 2293. 동전1알고리즘 2023. 2. 1. 15:26
1. 문제 2. 접근 - 이 문제는 이코테의 효율적인 화폐 구성과 유사하다. N가지의 화폐로 K원을 만족시키는 경우의 수를 구하는 DP 문제임을 알 수 있다 - 각 숫자를 (1,2,5)를 더해서 숫자를 나타내는 방법을 표로 경우의 수를 확인할 수 있다. 3. 풀이 # 골드5 - 2293 import sys input = sys.stdin.readline n, k = map(int, input().split()) coin = [] for i in range(n): coin.append(int(input())) d = [0] * (k+1) d[0] = 1 for i in coin: for j in range(1, k+1): if j - i >= 0: d[j] += d[j-i] print(d[k])
-
[스프링] jar, war 차이점스프링 2023. 2. 1. 14:19
Jar file JAR = Java Archieve 라는 의미이다. - JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일 - Class (JAVA리소스, 속성 파일), 라이브러리 파일을 포함함 - JRE(JAVA Runtime Environment)만 있어도 실행 가능함 (java -jar 프로젝트네임.jar) Jar file structure 1. BOOT-INF : 개발자가 직접 작성한 클래스 파일들(classes)과, 의존성 주입을 통한 jar 파일(lib)들로 구성되어 있다. 2. META-INF : 프로젝트 매니페스트 파일(MANIFEST.MF)을 포함하는 폴더이다. 매니페스트 파일은 파일 그룹을 위한 메타데이터(이름, 버전 번호, 라이선스, 프로그램의 구성 등)를 포함하는 ..
-
[스프링] Loging 로깅스프링 2023. 2. 1. 13:43
로깅 라이브러리 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리( spring-boot-starter-logging )가 함께 포함된다. 1. SLF4J - http://www.slf4j.org SLF4J Simple Logging Facade for Java (SLF4J) The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framewor www.slf4j.org 2. L..
-
[스프링] JDK17사용시에 주의할 점스프링 2023. 1. 27. 20:27
JDK17과 Mysql 연동시 주의할 점 코드를 먼저 봐보자! # database 연동 설정 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/{스키마이름 작성해주세요}?serverTimezone=Asia/Seoul&characterEncoding=UTF-8 username: {username 작성해주세요} password: {pwd 작성해주세요} thymeleaf: cache: false # spring data jpa 설정 jpa: #database-platform: org.hibernate.dialect.MySQL5InnoDBDialect open-in-view: false s..
-
[CS] batch InsertCS 2023. 1. 9. 11:21
Batch Insert 여러 개의 SQL Statement를 하나의 구문으로 처리할 수 있다. Statement - Connection으로 연결된 객체에게, Query 작업을 실행하기 위한 객체이다 여러 개의 구문을 여러 번 network 를 통해 보내는 것이 아니라 여러 개의 구문을 합쳐서 1개로 보내기에 성능 개선을 할 수 있습니다. 다시 정리하면 spring data jpa 를 이용한다면 write-behind 를 통해 addBatch 와 같은 로직을 직접 작성할 필요 없고, batch_size 옵션을 준다면 batch 기능을 사용할 수 있습니다 spring data jpa batch insert 사용하는 방법 hibernate.jdbc.batch_size → 최대 몇 개까지 statements 를..