전체 글

전체 글

    [TIL] 예외 되던지기(Exception re-throwing)는 언제 사용될까?

    예외 되던지기란? 예외를 처리한 후에 인위적으로 다시 발생시키는 방법 예외가 발생할 가능성이 있는 메서드에서 try-catch문을 사용해서 예외를 처리해주고 catch문에서 필요한 작업을 행한 후에 throw문을 사용해서 예외를 다시 발생시킨다. 예외 되던지기의 예시 1. BadInputException 클래스를 하나 만들어준다. public class BadInputException extends Exception { BadInputException() { super("잘못된 값을 입력하셨습니다."); } } 2. InputMismatchException이 발생하면 BadInputException을 던지도록 한다. import java.util.InputMismatchException; import j..

    [TIL] ConcurrentModificationException

    ConcurrentModificationException linkedList를 이용하여 다음 코드와 같이 문제를 풀어보려고 했는데 ConcurrentModificationException이 발생했다. public static void main(String[] args) { LinkedList linkedList = new LinkedList(); Iterator it = linkedList.iterator(); for (int i = 1; i

    [WIL] 230612 ~ 230618

    > 목표 달성 여부 이번 주 내가 한 것 회고 다음 주 목표 목표 달성 여부 ✅새로운 팀 인사 잘하기 ❓ 스프링 강의를 열심히 듣고 과제 수행하기 ✅ 스터디 잘 진행하기 ✅ 배운 것 TIL로 잘 기록하기 ❌ I/O 나머지 예제 공부해서 TIL로 남기기 ❓ 지치지 말기 이번 주 내가 한 것 1. 자바의 정석 예외 파트 공부 스스로 책과 예제를 보고 공부하고, 연습문제도 풀어보고, 예외 되던지기는 어디에 쓰이는지 튜터님께 여쭤도 보고, 그 과정도 TIL로 기록하였다. 2. 스터디에서 풀 리퀘스트로 리뷰를 진행 풀 리퀘스트에서 리뷰 진행하는 방법을 공부하여 문서로 기록하였다. 스터디원들에게도 가르쳐주어 단순히 발표만 하고 지나가는 시간이 아니라 확실히 다른 사람의 코드를 한 번 더 보고 공부할 수 있게끔 하였..

    [TIL] 포크 저장소와 내 로컬을 동기화하기

    [TIL] 포크 저장소와 내 로컬을 동기화하기

    > * 첫 번째 방법 - sync fork * 두 번째 방법 - bash를 이용하여 포크 주소를 이용하여 fetch해오는 방법 첫 번째 방법 sync fork -> 내 원격 master브랜치로 복사 완료 -> 내 로컬에서 pull 로 원격 master 데이터 가져오기 -> 내 로컬 브랜치를 내 로컬 master와 merge하기. 1. sync fork 클릭! sync fork 하는 것은 내가 포크해온 레포지토리와 내 레포지토리의 master 브랜치에 싱크가 맞춰지는 것. 2. 포크 레포지토리와 연결된 프로젝트가 있는 폴더로 가서 git bash 열기. 3. git checkout master branch를 master로 checkout. ( 옆에 master 뜨는지 확인. ) ※ 브랜치를 옮길 때는 ch..

    [TIL] < 자바의 정석 > 예제 HighLow - 예외처리해보기

    오늘은 예제 부분을 다 공부 했으므로 거의 마지막이었던 HighLow 문제 예외처리해보기를 기록해보려고 한다. 예제 8-7. 다음은 1~100사이의 숫자를 맞추는 게임을 실행하던 도중에 숫자가 아닌 영문자를 넣어서 발생한 예외이다. 예외처리를 해서 숫자가 아닌 값을 입력했을 때는 다시 입력을 받도록 보완하라. 1과 100사이의 값을 입력하세요 :50 더 작은 수를 입력하세요 1과 100사이의 값을 입력하세요 :asdf Exception in thread "main" java.util.InputMismatchException at java.base/java.util.Scanner.throwFor(Scanner.java:939) at java.base/java.util.Scanner.ne..

    [TIL] printStackTrace()는 왜 아래에 찍힐까?

    > printStackTrace()는 왜 아래에 찍힐까? printStackTrace()의 구현은 어떻게 되어 있을까? err 출력 스트림? printStackTrace()의 취약점 printStackTrace()는 왜 아래에 찍힐까 예제 8-5를 배우고 있었다. 코드는 다음과 같았다. public class Ex8_5 { public static void main( String[] args ) { System.out.println( 1 ); System.out.println( 2 ); try { System.out.println( 3 ); System.out.println( 0 / 0 ); System.out.println( 4 ); } catch ( ArithmeticExcepti..

    [TIL] 풀리퀘스트로 코드 리뷰하기!

    [TIL] 풀리퀘스트로 코드 리뷰하기!

    풀 리퀘스트로 코드 리뷰하는 방법 이제까지 풀리퀘스트로 각자의 코드를 모으기만 했었는데, 풀 리퀘스트의 장점인 코드 리뷰를 스터디에서 적용시켜 보기로 했다. 스터디원들에게 코드 리뷰하는 방법을 알려주기 위해 공부한 과정을 기록한다. 1. 자신이 포크해온 원래 레포지토리로 들어가서 pull request 탭으로 들어간다. 2. 코드 리뷰할 풀 리퀘스트로 들어가서 Conversation 탭에 있는 설명을 읽어보고 어떻게 문제를 풀었고, 코드를 썼는지 파악한다. 남이 자신의 코드를 파악하기 좋게 풀 리퀘스트를 할 때 설명을 잘 해야 한다! 3. Files changed 탭에 들어가서 코드리뷰할 파일을 선택한다. 4. 리뷰를 남겨보자. 1) 한 줄에 대한 리뷰를 남기고 싶을 때 줄 옆에 +가 뜬다! 누르면 리뷰..

    [TIL] Getter와 Setter. 왜 쓸까?

    > Getter와 Setter에 대한 내 과거의 생각 Getter와 Setter를 쓰는 이유 Getter와 Setter에 대한 내 과거의 생각 자바로 키오스크를 구현했을 때나, 호텔 예약 프로그램을 구현했을 때나 드는 생각이 있었다. 왜 Getter와 Setter를 쓰는 것인가. 내가 헷갈린 이유는 이렇다. 아래 코드를 보자. name, company를 필드로 가지는 Car 클래스가 있다. public class Car { String name; String company; public Car( String name, String company ) { this.name = name; this.company = company; } public String getName() { return name; } }..

    [TIL] 프로그래머스 - 최댓값과 최솟값 ( 느려지게 하는 범인 찾기 )

    > 문제 설명 첫 번째 시도 코드 두 번째 시도 코드 나보다 빨리 푼 사람의 코드 원인 찾기 문제 해결 후 마지막 코드 문제 설명 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. s에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 첫 번째 시도 코드 s를 split 메서드를 사용하여 String배열로 만든 뒤, 각 원소의 최댓값과 최솟값을 for문, Math.min(), Math.max() 메서드를 이용하여 알아내였다. 마지막에는 String answer = ""에 concat을 해서 re..

    [WIL] 230605 ~ 230611

    > 목표 달성 여부 이번 주 내가 한 것 회고 다음 주 목표 목표 달성 여부 ❓ - 팀 과제 성공적으로 끝내기 ✅ - 팀원들 모두 깃에 익숙해지도록 하기 ✅ - 스터디 월, 수, 금 잘 진행하기 - 코드 짜고 발표 준비 해 볼 것 ing - 주말에 자바 종합반 4, 5주차 듣기(오늘 다 듣기!!) ✅ - TIL 열심히 쓰기 ✅ - 매일 코딩테스트 한 문제 이상 풀기(쉬운 난이도라도 차근차근) ❌ + ) 앨리스 책 읽기!! ( 언제 읽지..? ) 이번 주 내가 한 것 1. 메모장 프로젝트 [Java] HI5조 - 메모장 프로젝트 (6/2 - 6/5) > * 프로젝트 깃허브 레포지토리 주소 * 메모장 프로젝트의 대략적인 방향 * 최종 클래스 다이어그램 * 기능 소개 * 문제와 해결 * 느낀 점 프로젝트 깃허..