전체 글
-
[JPA] 15장. 고급 주제와 성능 최적화book/자바 ORM 표준 JPA 프로그래밍 2020. 11. 28. 18:56
15.1 예외처리 1.1 JPA 표준 예외 정리 JPA 표준 예외들은 javax.persistence.PersistenceException의 자식 클래스다. 그리고 이 예외 클래스는 RuntimeException의 자식이다. 따라서 JPA 표준 예외들은 언체크 예외다. 언체크 예외 : 2020/08/21 - [study/java] - [JAVA] Exception JPA 표준 예외는 크게 2가지로 나눌 수 있다. - 트랜잭션 롤백을 표시하는 예외 - 트랜잭션 롤백을 표시하지 않는 예외 트랜잭션 롤백을 표시하는 예외는 심각한 예외이므로 복구해서는 안된다. 이 예외가 발생한 경우 트랜잭션을 강제로 커밋해도 커밋되지 않고 RollbackException이 발생한다. 1.2. 스프링 프레임워크의 JPA 예외 변..
-
[프로그래머스] n 진수 게임 (09.02)algorithm/프로그래머스 2020. 9. 2. 23:06
문제 https://programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0� programmers.co.kr 접근법 알고리즘 요즘 너무 어렵다.. 콘이 t번 외치려면 적어도 t*m(콘이 외칠 횟수 x 참가인원 수) 만큼은 모두 알아야 한다. 0부터 시작해서 계속 n진수로 변환을 하면서 길이를 계산하여 충분한 길이가 되었을 때 멈춘다. n진수로 변환된 문자열에서 콘이 외쳐야할 순서의 문자들을 결과 StringBuiler에 append 해준다. 변환..
-
[JAVA] hashCode & equalsstudy/java 2020. 9. 2. 00:12
Object 클래스에는 hashCode() 메서드와 equals() 메서드가 정의되어 있다. Object 클래스에 있는 hashCode() 메서드는 자바 홈페이지에 이렇게 정의되어 있다. Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by HashMap 객체의 해시 코드값을 반환합니다. 이 메서드는 HashMap에서 제공하는 것과 같은 해시 테이블의 이점을 위해 지원됩니다. 즉, HashTable이나 HashMap은 hashcode를 이용함으로써 객체를 저장하는 다른 컬렉션들에 비해 장점을 갖게된다는 것이다. 장점은 어떤 장점일까? Ke..
-
[프로그래머스] 길 찾기 게임(09.01)algorithm/프로그래머스 2020. 9. 1. 23:42
문제 https://programmers.co.kr/learn/courses/30/lessons/42892 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 접근법 문제 그대로 그래프를 구현해서 풀었다. 그래프 클래스를 만들어서 삽입하는 로직을 만들어주는것이 포인트였다. 우선 y좌표 값이 높고 x좌표 값이 낮은 순으로 정렬했다. 그렇게 되면 그래프에 삽입이 되는 순서가 완성이 된다. 그 후 root 객체를 전역변수로 빼고 root를 타고 내려가면서 알맞은 위치에 삽입했다. 코드 import java.util.Ar..
-
[프로그래머스] 셔틀버스 (08.30)algorithm/프로그래머스 2020. 8. 31. 00:10
문제 https://programmers.co.kr/learn/courses/30/lessons/17678 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 [23:59,23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59] 18:00 programmers.co.kr 접근법 LocalTime을 사용하여 직관적으로 풀었다. 우선 크루가 대기열에 도착하는 시간들을 우선순위 큐에 넣어서 오름차순으로 정렬하였다. 이때 테스트 케이스 중 24시가 들어오는 경우도 있으므로 24시가 들어오는 경우만 예외적으로 처리해주었다. n번 셔틀 버스가 있으므로 for문을 n 번만큼 돌리고 그 ..
-
[DESIGN PATTERN] 템플릿 메서드 패턴study/design pattern 2020. 8. 30. 18:13
템플릿 메서드 패턴 ( Template Method Pattern ) 알고리즘의 일부 또는 전부를 하위 클래스에서 구현하거나 위임하는데 사용한다. 즉, 공통으로 사용하는 알고리즘은 부모 클래스에 정의하고 특정 부분에서 사용하는 알고리즘은 하위 클래스에서 수행하도록 설계하는 것이다. public abstract class HouseTemplate { public final void buildHouse(){ buildFoundation(); buildPillars(); buildWalls(); buildWindows(); System.out.println("House is built"); } private void buildWindows(){ System.out.println("Building Glass W..
-
[DESIGN PATTERN] Strategy 패턴study/design pattern 2020. 8. 30. 18:01
스트레티지 패턴 ( Strategy pattern ) 지정된 알고리즘의 세부 구현을 변경할 필요없이 쉽게 교환할 수 있는 디자인 패턴이다. 실행 중이라도 구현된 알고리즘을 교환할 수 있으므로 의존성 주입에 자주 사용된다. 아래는 Strategy 패턴을 통해 간단한 로거를 만드는 예제이다. public interface Logging { void write(String message); } public class ConsoleLogging implements Logging { @Override public void write(String message) { System.out.println(message); } } public class FileLogging implements Logging { priva..
-
[DESIGN PATTERN] 빌더 패턴study/design pattern 2020. 8. 30. 17:42
빌더 패턴 필드가 많은 객체를 생성할 경우 생성자를 이용하면 다루기도 어렵고 헷갈릴 수도 있다. @Getter @Setter public class Computer { private String HDD; private String RAM; private String graphicCard; private String CPU; private boolean isGraphicCardEnable; private boolean isBluetoothEnable; } 이 필드 중에는 객체로 생성할 때 꼭 포함되어야 하는 필드도 있고 그렇지 않은 필드도 있다. 꼭 포함되어야 하는 필드들은 생성자의 매개변수로 꼭 포함이 되어있어야 한다. 꼭 포함되어야 하는 필드들이 많아질수록 생성자는 그만큼 복잡해진다. 또 각 필드마다 ..