본문 바로가기

분류 전체보기

[코드 컨벤션] JAVA, SPRING, Thymeleaf, MSSQL 코드 개발 규칙 1. 프로시저 작성 규칙 (3.1)✅ 기본 규칙프로시저 명은 USP_ 접두사를 고정 사용목적에 따라 SELECT, UPDATE, INSERT, DELETE를 조합하여 사용서비스 목적, 업무 도메인 (예: EVENT, MESSAGE 등)을 명시부분 업데이트 시 목적 명확히 표현 (예: CANCEL, DELETE 등)✅ 예외 및 예외처리필수 파라미터 누락 시 THROW 99999, N'{오류내용}', 1; 처리TRY-CATCH 블록으로 예외를 감싸고 RAISERROR로 로깅 가능IF @eventSeq IS NULL THROW 99999, N'[이벤트 고유번호] 누락되었습니다.',1;BEGIN TRY -- 작업 수행END TRYBEGIN CATCH DECLARE @ErrorMessage NVARCHAR(4.. 더보기
[JAVA] Exception보다 RuntimeException을 상속받는 게 좋은 이유 현재 CouponBoxException은 Exception을 상속받고 있어.하지만 특별한 이유가 없다면 RuntimeException을 상속받는 게 더 유리한 경우가 많아.이유는 다음과 같아.📌 1. Exception은 체크 예외 (Checked Exception)java복사편집public class CouponBoxException extends Exception { // Checked Exception Exception을 상속받으면 Checked Exception이 돼서,모든 호출하는 곳에서 try-catch 또는 throws를 강제해야 함.불필요한 예외 처리가 많아져 코드가 복잡해질 수 있음.📌 Checked Exception의 단점 예시java복사편집public void processCoupo.. 더보기
[java 스터디] 백준 3048번 개미 내부 클래스 (Inner Class)내부 클래스(inner class)란 하나의 클래스 내부에 선언된 또 다른 클래스를 의미한다.보통 사용자 클래스 자료형이 필요하면, 메인 클래스 외부에 선언하거나, 따로 독립적인 클래스 파일을 만들어 불러와 사용해 왔다. 내부 클래스는 대신 클래스 내에 선언되어 사용되며, 내부에 정의된다는 점을 제외하고는 일반적인 클래스와 다르지 않다. 우리가 어느 클래스에 변수나 상수가 필요하다면 클래스 멤버로서 클래스 내에서 선언하여 사용해 왔듯이, 선언 주체를 변수에서 클래스로 바꾼다면 그것이 내부 클래스인 것이다.이처럼 내부 클래스는 보통 두 클래스가 서로 긴밀한 관계가 있거나, 하나의 클래스또는 메소드에서만 사용되는 클래스일 때 이용되는 기법이라고 보면 된다.Tip내부(inn.. 더보기
[java 스터디] 백준 1524번 문제풀이 (문제: 세준세비) 세준이와 세비는 온라인 게임을 즐겨한다. 이 온라인 게임에서는 군대를 서로 키울 수 있다. 세준이는 N명의 병사를 키웠고, 세비는 M명의 병사를 키웠다.이제 서로 전쟁을 하려고 한다.전쟁은 여러 번의 전투로 이루어진다. 각 전투에서 살아있는 병사중 제일 약한 병사가 죽는다. 만약 제일 약한 병사가 여러 명이고, 제일 약한 병사가 모두 같은 편에 있다면, 그 중에 한 명이 임의로 선택되어 죽는다. 하지만, 제일 약한 병사가 여러 명이고, 양 편에 모두 있다면, 세비의 제일 약한 병사 중 한 명이 임의로 선택되어 죽는다.전쟁은 한 명의 병사를 제외하고 모두 죽었을 때 끝난다. 전쟁의 승자를 출력하는 프로그램을 작성하시오.   import java.io.BufferedReader;import java.io.I.. 더보기
[java 스터디] TreeMap 개념 및 백준 20291번 문제풀이 TreeMapTreeMap은 이진트리를 기반으로 한 Map 컬렉션이다.TreeMap에 객체를 저장하면 자동으로 정렬되는데, 키는 저장과 동시에 자동 오름차순으로 정렬된다.숫자(Integer, Double) 타입일 경우에는 값으로 정렬하고문자열(String) 타입일 경우에는 유니코드로 정렬한다.📌 정렬기준 : 숫자 > 알파벳 대문자 > 알파벳 소문자 > 한글정렬 순서는 기본적으로 부모 키값과 비교해서 키 값이 낮은 것은 왼쪽 자식 노드에, 키값이 높은 것은 오른쪽 자식 노드에 Map.Etnry 객체를 저장한다.TreeMap은 SortedMap 인터페이스를 구현하고 있어, 데이터를 저장할 때 즉시 정렬하기에 추가나 삭제가 HashMap보다 오래 걸린다. 하지만 정렬된 상태로 Map을 유지해야 하거나 정렬된.. 더보기
[java 스터디] 문제풀이 28107번 java 백준-회전초밥 문제  회전 초밥 가게에 N명의 손님이 있고, 요리사는 M개의 초밥을 순서대로 만든다. 요리사가 초밥을 만들 경우, 1번 손님부터 N번 손님의 순서대로 그 초밥을 받게 된다. 만약 먼저 초밥을 받는 손님이 초밥을 먹을 경우, 뒤의 손님들은 해당 초밥을 먹을 수 없다. 만약 아무도 해당 초밥을 먹지 않는다면, 초밥은 버려진다. N명의 손님은 각자 먹고 싶은 초밥이 적힌 주문 목록을 가지고 있다. 목록에 적힌 초밥의 순서에 상관 없이 만약 목록에 적혀있는 초밥이 앞에 오면 반드시 먹는다. 만약, 목록에 적히지 않은 초밥을 받는다면 그 초밥은 반드시 먹지 않는다. 단, 손님들은 다양한 초밥을 먹고 싶어하기 때문에 각 종류의 초밥은 최대 한 번만 먹는다.각 손님의 주문 목록과 순서대로 만들어지는 M개의 초밥이 .. 더보기
[java 스터디] 문제풀이 11286번 java 백준 최대 힙 문제랑 많이 비슷하다.최대 힙 문제처럼 우선순위 큐를 사용한다. 하지만 절댓값 기준으로 정렬을 해줘야 하니, Compare를 오버라이드해서 정렬의 기준을 정한다.  import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Comparator;import java.util.PriorityQueue;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in.. 더보기
[java 스터디] 문제풀이 크리스마스 선물 14235 처음에 이 문제를 이해하는데 어려웠다. a가 0일 때마다 정렬을 하고 거기서 최대값을 뽑아야한다.이 때, 시간 복잡도는 N^2log(N)이 예상 되어 TLE가 날 것 같다. 그래서 우선순위 큐를 이용하여 정렬하는데 logN을 사용하고 NlogN이 되어 TLE가 안난다. 0이면 pq에서 poll하고0이 아니면 그 개수만큼 pq에 offer하는 것이다.  코드  package Data_Structure;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.PriorityQueue;import java.util.StringTokenizer;public class BOJ142.. 더보기
[java 스터디] 문제풀이 Result506. Relative Ranks You are given an integer array score of size n, where score[i] is the score of the ith athlete in a competition. All the scores are guaranteed to be unique.The athletes are placed based on their scores, where the 1st place athlete has the highest score, the 2nd place athlete has the 2nd highest score, and so on. The placement of each athlete determines their rank:The 1st place athlete's rank is .. 더보기
[java 스터디] 우선순위 큐 1.1 우선순위 큐란?큐(Queue)는 먼저 들어오는 데이터가 먼저 나가는 FIFO(First In First Out) 형식의 자료구조이다.우선순위 큐(Priority Queue)는 먼저 들어오는 데이터가 아니라, 우선순위가 높은 데이터가 먼저 나가는 형태의 자료구조이다. 우선순위 큐는 일반적으로 힙(Heap)을 이용하여 구현한다. 1.2 힙이란?힙(Heap)은 우선순위 큐를 위해 고안된 완전이진트리 형태의 자료구조이다.여러 개의 값 중 최댓값 또는 최솟값을 찾아내는 연산이 빠르다. 힙의 특징완전이진트리 형태로 이루어져 있다.부모노드와 서브트리간 대소 관계가 성립된다. (반정렬 상태)이진탐색트리(BST)와 달리 중복된 값이 허용된다. 힙의 종류최대 힙 (Max Heap)❝ key(부모노드) ≥ key(자.. 더보기