UnChecked예외 (데이터 접근)생성방법UnChecked예외를 먼저 만든다Checked -> UnChecked 예외로 변경 (변경시, 에러코드가 존재하면 해당 예외로 변경)예외처리public class DBErrorException extends RuntimeException{ ///... }public class Service{ //... try{ logic(); }catch (SQLException e){ if ( e.getErrorCode().isEqualTo(42122) ){ // 42122는 "SQL bad Grammer" 오류 코드 throw new DBErrorException(e..
예외 계층1. 예외계층은 최상위 계층의 Object 하위에 속한다2. Exception과 Error로 나뉘게 되는데, 흔히 말하는 예외는 Exception을 말한다3. RuntimeException(하위 자식 포함)은 실행도중에 잡히는 예외이며, 나머지 예외는 컴파일단계에서 예외로 잡히게된다(RuntimeException과 하위계층은 UnChecked예외라고 불리며, 나머지 예외는 Checked예외로 불린다) 예외처리예외 잡아서 처리하기 Exception으로 catch할 경우 모든 예외가 다 잡힌다계층의 위치에 따라 하위 예외들은 모두 포함되게 된다 (주의 : Exception을 남발할경우, 의도치 않게 모든 예외가 처리될 수 도 있음)public void func(){ try{ ..
우선순위 큐?Priority Queue? 큐와 동일하게 FIFO 구조를 가지는데, 특이한점은 들어온 순서가 아닌 우선순위에 따라서 삽입/삭제 순서가 정해진다따로 정렬 기준을 정하지 않을경우, 오름차순으로 정렬이된다 (작은수가 우선순위)reverseOrder()를 사용하면 내림차순으로 정렬이된다 (큰 수가 우선순위) 우선순위 큐 특징높은 우선순위의 요소를 먼저 꺼내서 처리내부 요소는 힙으로 구성되어 이진트리 구조로 이루어짐힙으로 구성되어있어 시간복잡도는 O(NlogN)이다우선순위를 중요시할때 사용한다 우선순위큐 메서드선언)PriorityQueue [우선순위큐 이름] = new PriortyQueue();삽입add() / offer()을 사용하여 삽입add()는 가득차있으면, Exception 예외offer..
문제1. 첫번째 입력값으로 연산의 개수 N이 주어진다 (1 2. 다음 N개의 줄에는 정수x가 주어진다3. x값이 0이 아니라면 배열에 x라는 값을 추가하고, x가 0이라면 배열에서 절대값이 가장 작은 값을 출력한다(단, 절대값이 같을경우 음수를 우선순위로 둔다)*2초이내 풀이 문제분석N의 최대 범위가 100,000이므로 O(nlogn)이 가능하다데이터가 새로 삽입될때마다 절대값과 관련된 정렬이 필요하므로 우선순위 큐를 이용하여 문제를 해결주의) 정렬기준은 직접 정의해야함 (절대값에 따른 값이 같은 경우 기준 설정 필요) 슈도코드N(질의 요청개수 입력)우선순위 큐 설정for(N만큼 반복){ 요청이 0일때, 비어있으면 0 출력 / 있으면 front 출력 (poll()) 요청이 0이 아닐때, que..
트랜잭션 프록시서비스 Logic() 과 트랜잭션의 분리를 위한 프록시작업트랜잭션 매니저 적용 버전//트랜잭션 시작TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());try { //비즈니스 로직 Logic(); transactionManager.commit(status); //성공시 커밋}catch (Exception e) { transactionManager.rollback(status); //실패시 롤백 throw new IllegalStateException(e); }트랜잭션 프록시 사용 버전서비스와 트랜잭션의 완전한 분리 (서비스계층은 비즈니스..
트랜잭션 매니저 코드트랜잭션 commit(), rollback() 반복 사용의 불편함//트랜잭션 시작TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());try { //비즈니스 로직 bizLogic(fromId, toId, money); transactionManager.commit(status); //성공시 커밋 } catch (Exception e) { transactionManager.rollback(status); //실패시 롤백 throw new IllegalStateException(e); } 트..
Public Key 생성local Pc에서 공개키를 생성ssh-keygen -t rsa -b 4096 -f [공개키 파일이름] -C [계정명 또는 계정이메일]~/.ssh 디렉토리 하위에 공개키 생성해당 공개키 값 복사cat ~/.ssh/gcp_rsa_4096.pub 공개키 등록 (GCP)메타데이터 설정으로 이동sshkey 등록에서 공개키 복사한 값 붙여넣기 SSH 접속원하는 ssh 클라이언트에서 해당 key를 넣고 접속또는, ssh cli를 통해서 접속ssh -i [개인키파일] [계정명 또는 계정이메일]@[외부IP]
- Total
- Today
- Yesterday
- 버블정렬
- 예외처리
- 백준
- BFS
- JDBC
- stack
- db
- 타입변환
- 포트폴리오
- 클래스
- 게시판 프로젝트
- JSON
- 티스토리챌린지
- 이진탐색
- bean
- 검증
- 깊이우선탐색
- 우선순위 큐
- Java
- SQL
- 정렬
- 알고리즘
- DFS
- 게시판
- Spring
- HTML5
- 코딩테스트
- Thymeleaf
- 오블완
- 기술면접
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |