전체 글
-
[CS/Database] 트랜잭션 / ACID / 트랜잭션 격리수준(Transaction Isolation Levels)CS/데이터베이스 2025. 2. 17. 11:38
• 트랜잭션이란? 트랜잭션이란 데이터베이스의 상태를 변화시키는 하나의 논리적인 작업 단위라고 할 수 있으며, 트랜잭션에는 여러개의 연산이 수행될 수 있습니다. 트랜잭션은 수행 중에 한 작업이라도 실패하면 전부 실패하고, 모두 성공해야 성공이라고 할 수 있습니다. • 트랜잭션의 특성(ACID)원자성(Atomicity) : 작업이 모두 반영되던지 아니면 전혀 반영되지 않아야 합니다. 일관성(Consistency) : 실행이 완료되면 언제나 일관성있는 상태를 유지해야 합니다. 독립성(Isolation) : 둘 이상의 트랜잭션이 동시에 실행될 경우 서로의 연산에 끼어들 수 없습니다. 영속성(Durability) : 완료된 결과는 영구적으로 반영되어야 합니다. • 트랜잭션 격리수준 (Transac..
-
[CS/JAVA] SerialVersionUID를 선언해야 하는 이유 / 인스턴스 초기화 블럭과 정적 초기화 블럭CS/JAVA 2025. 2. 11. 18:16
• SerialVersionUID를 선언해야 하는 이유에 대해 설명해주세요. JVM은 직렬화와 역직렬화를 하는 시점의 클래스에 대한 버전 번호를 부여하는데, 만약 그 시점에 클래스의 정의가 바뀌어 있다면 새로운 버전 번호를 할당하게 됩니다. 그래서 직렬화할 때의 버전 번호와 역직렬화를 할 때의 버전 번호가 다르면 역직렬화가 불가능하게 될 수 있기 때문에 이런 문제를 해결하기 위해 SerialVersionUID를 사용합니다. 만약 직렬화할 때 사용한 SerialVersionUID 값과 역직렬화 하기 위해 사용했던 SerialVersionUID 값이 다르다면, InvalidClassException이 발생할 수 있습니다. • 인스턴스 초기화 블럭과 정적 초기화 블럭에 대해 설명해주세요. 특징인스턴스..
-
[CS/JAVA] final / finally / finalize 의 차이 / 직렬화(Serialize)CS/JAVA 2025. 2. 11. 17:04
• final / finally / finalize 의 차이를 설명해주세요. - final은 클래스, 메소드, 변수, 인자를 선언할 때 사용할 수 있으며, 한 번만 할당하고 싶을 때 사용합니다.final 변수는 한 번 초기화되면, 그 이후에 변경할 수 없습니다. final 메소드는 다른 클래스가 이 클래스를 상속할 때, 메소드 오버라이딩을 금지합니다. final 클래스는 다른 클래스에서 이 클래스를 상속할 수 없습니다. - finally는 try-catch와 함께 사용되며, try-catch가 종료될 때 finally block이 항상 수행되기 때문에 마무리 해줘야 하는 작업이 존재하는 경우에 해당하는 코드를 작성해주는 코드 블록입니다. - finalize는 Object 클래스에 정의되어 있는 메소..
-
[프로그래머스/JAVA] 소수 만들기Algorithm/Java 2025. 2. 6. 09:37
https://school.programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [ 오답 노트 ]❌ 기존 오답 코드class Solution { public boolean isDemic(int num) { // 소수 판별 for(int i = 2; i 1 + 2 + 3 = 6 (소수 x) // [인덱스0, 인덱스 1, 인덱스2] // [1,2,4] -> 1 + 2 + 4 = 7 (소수 O) // [인덱스0, 인덱스 1, 인덱스3] // [1,..
-
[프로그래머스/JAVA] 소수 찾기Algorithm/Java 2025. 2. 3. 10:41
https://school.programmers.co.kr/learn/courses/30/lessons/12921 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [ 정답 코드 & 풀이 ]📌 풀이 1. 메인 메서드 public int solution(int n) { // 2의 소수이기 때문에 초기값 1로 선언 int answer = 1; // 3부터 n까지 반복하여 소수의 개수 판별 for(int i = 3; i 2는 항상 소수이므로 answer = 1로 초기값 설정3부터 n까지 순회하며 isPrime(i) 호출하여 소수 여부 판별..
-
[프로그래머스/JAVA] 과일 장수Algorithm/Java 2025. 2. 3. 09:51
https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 📌 문제 요약 과일 장수가 사과를 m개씩 한 상자로 포장하여 판매할 때, 사과의 점수가 가장 낮은 점수를 기준으로 가격이 결정됩니다.가능한 많은 사과를 판매하여 최대 이익을 구하는 문제입니다. [ 정답 코드 & 풀이 ]📌 풀이사과 점수 정렬사과의 점수를 오름차순으로 정렬합니다. (낮은 점수부터 높은 점수 순)한 상자씩 포장뒤에서 m개씩 그룹을 만들어 한 상자로 포장합니다.(이유: 낮은 점수를 기준으로 판매해야 하기 때문에, 높은 점수부터 ..
-
[프로그래머스/JAVA] 튜플 (2019 카카오 개발자 겨울 인턴십 문제)Algorithm/Java 2025. 1. 28. 17:06
https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [ 오답 노트 ] ❌ 기존 오답 코드import java.util.*;class Solution { public int[] solution(String s) { List answer = new ArrayList(); // {{2},{2,1},{2,1,3},{2,1,3,4}} // 위에서 제일 첫번째 문자 이후 ~ 제일 마지막 문자 이전까지의 문자열만 // {2},{2,1},{2,1,3},..
-
[프로그래머스/JAVA] [1차] 캐시 (2018 KAKAO BLIND RECRUITMENT 문제)Algorithm/Java 2025. 1. 27. 15:24
https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [ 정답 코드 & 풀이 ] 📌 풀이 1. 입력 조건 확인캐시 크기가 0일 경우 모든 요청이 캐시 미스 처리되므로 단순 계산(return cities.length * 5). 2. 캐시 히트 및 미스 처리도시 이름 배열을 순회하며 다음 작업 수행:캐시 히트: 요청한 도시 이름이 캐시에 존재할 경우 해당 항목 제거 후 다시 삽입(가장 최근 사용된 것으로 갱신).캐시 미스: 캐시 크기가 초과되었을 경우 가장 오래된 항목 제거 후 새로운 항목 추가. ..