본문 바로가기
  • Let's study

java58

[Java] try-catch try-catchtry-catch는 프로그램 실행 중 발생할 수 있는 예외(Exception)를 처리하여 프로그램이 비정상적으로 종료되지 않도록 하는 문법이다.try예외가 발생할 가능성이 있는 코드를 try 블록 안에 작성한다. try { int[] arr = new int[3]; arr[4] = 10;} 예외가 발생하지 않으면 catch는 실행되지 않는다.catchcatch는 발생한 예외를 처리하는 영역이다. catch (ArrayIndexOutOfBoundsException e) { System.out.println("배열 관련 예외 발생");} 예외 객체는 e 변수로 전달되며, 예외에 맞는 catch 블록이 실행된다.여러 개의 catch 사용발생 가능한 예외마다 catch를 여러 개.. 2026. 7. 21.
[Java] 명언 게시판 만들기 - 리팩토링, Rq 클래스 이번 리팩토링에서는 중복 제거, Rq 클래스 도입을 통해 컨트롤러의 역할을 단순화하는 과정을 진행하였다.1. findIndexById 메서드로 중복 제거삭제와 수정 기능에서는 모두 ID에 해당하는 명언의 위치를 찾는 코드가 중복되어 있었다. int targetIdx = -1;for (int i = 0; i 이 코드는 어디서든 재사용 가능한 기능이므로 findIndexById() 메서드로 분리하였다. private int findIndexById(int id) { for (int i = 0; i 반면, "명언이 존재하지 않습니다" 같은 출력문은 삭제와 수정에서 사용하는 메시지이므로 재사용성이 낮아 별도의 메서드로 분리하지 않았다. git: findIndexById로 중복 제거2. Stream 적용.. 2026. 7. 21.
[프로그래머스 Lv.0] 진료순서 정하기(Java) 문제https://school.programmers.co.kr/learn/courses/30/lessons/120835 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이우선순위를 나타내는 rank를 1로 선언한다.배열을 반복해서 탐색하며 가장 큰 응급도와 해당 인덱스를 찾는다.가장 큰 값을 찾았다면 해당 위치에 현재 순위를 저장한다.answer[idx] = rank++;그리고 이미 순위를 매긴 환자가 다시 선택되지 않도록 값을 0으로 변경한다.emergency[idx] = 0;문제에서 응급도는 모두 자연수이므로 0으로 바꾸면 다음 탐색에서 가장 큰 값으로 선택되지 않는다.코드class Solution { .. 2026. 7. 21.
[Java] 명언 게시판(1~8단계) - 리스트 버전 [Java] 명언 게시판 만들기(6~8단계) - 리팩토링[Java] 명언 게시판 만들기(6~8단계)[Java] 명언 게시판 만들기(1~5단계) - 리팩토링[Java] 명언 게시판 만들기(1~5단계)요구사항1단계 - 종료2단계 - 등록3단계 - 등록시 생성된 명언번호 노출4단계 - 등록hyemzzi.tistory.com이번 리팩토링에서는 명언을 저장하는 자료구조를 배열(Array) 에서 ArrayList로 변경하였다.배열은 크기가 고정되어 있어 삭제나 추가 시 직접 인덱스를 관리해야 했지만, ArrayList를 사용하면 이러한 작업을 컬렉션이 대신 처리해준다.1. 배열을 ArrayList로 변경기존에는 고정 크기의 배열을 사용하였다. WiseSaying[] wiseSayings = new WiseSayin.. 2026. 7. 20.
[Java] 명언 게시판 만들기(6~8단계) - 리팩토링 [Java] 명언 게시판 만들기(6~8단계)[Java] 명언 게시판 만들기(1~5단계) - 리팩토링[Java] 명언 게시판 만들기(1~5단계)요구사항1단계 - 종료2단계 - 등록3단계 - 등록시 생성된 명언번호 노출4단계 - 등록할때 마다 생성되는 명언번호가hyemzzi.tistory.com이번 리팩토링에서는 객체지향적인 방식으로 WiseSaying 클래스를 개선하였다.1. Getter와 Setter 사용기존에는 App 클래스에서 WiseSaying의 인스턴스 변수에 직접 접근하였다. target.idtarget.contenttarget.author 객체의 데이터를 보호하기 위해 인스턴스 변수를 private으로 변경하고, getter와 setter를 사용하도록 수정하였다.예를 들어, 목록 출력은 다음과.. 2026. 7. 20.
[Java] 명언 게시판 만들기(6~8단계) [Java] 명언 게시판 만들기(1~5단계) - 리팩토링[Java] 명언 게시판 만들기(1~5단계)요구사항1단계 - 종료2단계 - 등록3단계 - 등록시 생성된 명언번호 노출4단계 - 등록할때 마다 생성되는 명언번호가 증가5단계 - 목록6단계 - 1번 명언삭제7단계 -hyemzzi.tistory.com요구사항1단계 - 종료2단계 - 등록3단계 - 등록시 생성된 명언번호 노출4단계 - 등록할때 마다 생성되는 명언번호가 증가5단계 - 목록6단계 - 1번 명언삭제7단계 - 존재하지 않는 명언삭제에 대한 예외처리8단계 - 명언수정이번 단계에서는 삭제, 예외 처리, 수정 기능을 구현하였다.삭제 기능이 추가되면서 기존의 lastNo만으로는 배열을 관리하기 어려워졌기 때문에 lastIndex 변수를 새로 추가하였다.l.. 2026. 7. 20.