일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- springdatajpa
- Servlet
- pointcut
- SpringBoot
- jpa
- db
- AOP
- kotlin
- 알고리즘
- Greedy
- Thymeleaf
- 김영한
- 자바
- 그리디
- 백준
- JDBC
- Android
- Spring Boot
- 스프링 핵심 원리
- Proxy
- JPQL
- spring
- Exception
- 인프런
- transaction
- 스프링
- 스프링 핵심 기능
- http
- java
- QueryDSL
- Today
- Total
목록java (156)
개발자되기 프로젝트
문제 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 상관없이 묶을 수 있다. 하지만, 같은 위치에 있는 수(자기 자신)를 묶는 것은 불가능하다. 그리고 어떤 수를 묶게 되면, 수열의 합을 구할 때 묶은 수는 서로 곱한 후에 더한다. 예를 들면, 어떤 수열이 {0, 1, 2, 4, 3, 5}일 때, 그냥 이 수열의 합을 구하면 0+1+2+4+3+5 = 15이다. 하지만, 2와 3을 묶고, 4와 5를 묶게 되면, 0+1+(2*3)+(4*5) = 27이 되어 최대가 된다. 수열의 모든 수는 단 한번만 묶거나, 아니면 묶지 않아야한다. 수열이 주어졌을 때, 수열..
1. 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 2. 출력 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한..
1. JDK 11설치 $ sudo apt-get update && sudo apt-get upgrade $ sudo apt-get install openjdk-11-jdk 2. JRE 설치 $ sudo apt-get install openjdk-11-jre 3. 설치 확인 $ java -version $ javac -version 4. 자바 위치 확인하기 # javac 위치 확인 which javac readlink -f /usr/bin/javac 위를 보면 javac의 실제 위치는 /usr/lib/jvm/java-11-openjdk-amd64/bin/ 으로 확인됨. 따라서 $JAVA_HOME은 "/usr/lib/jvm/java-11-openjdk-amd64"로 설정해야함. 5. 환경설정 vim ~/.b..
1. 문제 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다. - A: 3ms 시점에 작업 완료 (요청에서 종료까지 : 3ms) - B: 1ms부터 대기하다가, 3ms 시점에 작업을 시작해서 12ms 시점에 작업 완료(요청에서 종료까..
1. Devtools html 수정을 자주할 텐데 매번 서버 다시 띄우기 너무 귀찮음. debTools 사용하면 html 수정 후 recompile만 하면 바로 반영됨. build.gradle implementation 'org.springframework.boot:spring-boot-devtools' 2. H2 Database DB 파일 생성 jdbc:h2:~/blog 최초 접근 user 폴더 경로에 blog.mv.db파일 생성 확인 네트워크 모드로 접근 jdbc:h2:tcp://localhost/~/blog 해당 url로 접근하여 사용하면됨. dependancy implementation 'org.springframework.boot:spring-boot-starter-jdbc' 3. applica..
1. DTO 로 변환해서 리턴. @GetMapping("/api/v2/simple-orders") public List odersV2(){ List orders = orderRepository.findAllByString(new OrderSearch()); List result = orders.stream() .map(o -> new SimPleOrderDto(o)) //map은 a를 b로 바꾸는 것. .collect(Collectors.toList()); return result; } @Data private class SimPleOrderDto { private Long orderId; private String name; private LocalDateTime orderDate; private Or..
1. JPA의 데이터 타입 분류 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 예) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능. 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경시 추적 불가. 예) 숫자 100을 200을 변경하면 그냥 완전히 다른 값으로 대체됨! 2. 값 타입의 분류 기본 값 타입 자바 기본 타입 : int, double 래퍼 클래스 : Integer, Long String 임베디드 타입(embedded type, 복합 값 타입) x, y값을 하나로 합쳐서 좌표라는 값으로/. 컬렉션 값 타입(collection value type) 컬렉션에 기본 값..
1. this. 인스턴스 자신의 메모리를 가리킴 public void setName(String name){ this.name = name; } 생성자 안에서 또 다른 생성자를 호출할 때 사용. - 클래스에 생성자가 여러 개인 경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음. - 생성자에서 다른 생성자를 호출하는 경우, 인스턴스 생성이 완전하지 않은 상태이므로, this() statement이전에 다른 statement 쓸 수 없음 public class Person{ private String name; private int age; public Person(){ this("이름없음", 1); } public Person(String name, int age){ this.name ..