[트러블슈팅] 공백 입력 테스트코드, NoSuchElementException
·
Develop note
안녕하세요! 이번 글에서는 간단해 보였지만 예상치 못한 곳에서 발목을 잡았던 테스트 코드 트러블슈팅 과정을 공유하고자 합니다.제가 구현하려는 로직은 사용자로부터 입력받은 값이 공백일 경우 IllegalArgumentException을 발생시키는 것이었습니다. 1. 🤔 문제 발생 및 특이점발생한 문제의 코드다음은 두 번째 입력값(시도 횟수)이 빈 문자열("")일 때, 예상 예외인 IllegalArgumentException이 정상적으로 발생하는지를 확인하려던 테스트 코드입니다.@Testvoid 공백_횟수_입력2() { assertSimpleTest(() -> assertThatThrownBy(() -> runException("pobi,java", "")) .isIn..
[Java] Utility class란?
·
Develop note
java를 쓰다보면 Math 함수를 한번쯤을 써봤을겁니다 근데 이런 생각 안해보셨나요?왜 Math는 new로 객체를 만들지 않고,클래스 이름만으로 기능을 사용할 수 있지...? 우테코 프리코스 1주차를 지나오면서 코드를 뜯어보다가 Console을 utility class로 선언한 것을 발견해서, 2주차인 지금 이에 대해서 글을 작성해보려고 합니다!🤔 일반 클래스 vs 유틸리티 클래스가장 큰 차이는 객체를 만드느냐, 안 만드느냐입니다. 일반적인 클래스는 이렇게 씁니다👇Scanner sc = new Scanner(System.in);String input = sc.nextLine();즉, new 키워드로 객체를 만들어야만 그 안의 기능(nextLine)을 사용할 수 있습니다이런 클래스들은 인스턴스마다 독..
[Pattern] 예외 팩토리(Exception Factory) 패턴: 깔끔하고 유연한 예외 처리
·
Develop note
😞 내 코드 구려...코드를 작성하다 보면 필연적으로 예외(Exception) 처리를 마주하게 됩니다.그런데 new 키워드로 직접 예외를 생성하고 메시지를 일일이 작성하다 보면, 코드가 점점 복잡해지고 일관성이 깨지는 경험을 해본 적 있을 겁니다. 우테코 프리코스 1주차에 코드를 짜면서 제가 직면했던 문제인데요...new로 throw 해주고, try catch문으로 감싸고...이런 방식을 예외마다 사용해주다보니, 로직 코드인데, 코드의 절반이 try catch문으로 변하더군요... 1주차가 끝나고 나서 이를 어떻게 하면 해결할 수 있을까 찾아보다가 예외 팩토리 패턴 이라는 것을 발견해서 공유해드립니다!🤔 기본 개념: 예외 생성 맡기기예외 팩토리 패턴은 예외 객체를 생성하는 로직을 별도의 팩토리 클래스..
[Git] Git alias 설정은 어떻게 돌아가는가?
·
Develop note
Git에는 명령어 단축어를 지정하는 alias가 가능합니다.예를 들어git commit -m '커밋메시지' 이런 간단한 커밋 명령어가 있다고 해봅시다.커밋 수가 올라가다 보면 commit을 친 다음에 -를 치려고 손가락이 가는 이 동작이 매우매우 귀찮게 느껴질껍니다. 이런 귀차니즘에 찌들은 자들을 위해 alias 기능이 있습니다.alias를 설정하면 위의 커밋 명령어가 아래처럼 줄어듭니다. g cm '커밋 메세지'이를 적용하는 방법은 너무너무 잘 설명해주는 글이 있기 때문에 따로 작성하지 않겠습니다👇 적용법은 아래 글을 참고하세요!https://velog.io/@somy-john/Git-Alias-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0-mac-os Git Alias 설정하기 ..
[Git] Hooks 적용으로 커밋 메세지 형식 강제하기
·
Develop note
https://velog.io/@jihwankim128/%ED%94%84%EB%A6%AC%EC%BD%94%EC%8A%A4-%EC%BB%A8%EB%B2%A4%EC%85%98-%ED%86%B5%EC%9D%BC 프리코스 컨벤션 통일프리코스는 커밋 컨벤션, 코드 컨벤션 규약이 있습니다!4.2 블럭 들여쓰기: +4 스페이스새 블록 또는 블록과 유사한 구조(block-like construct)가 열릴 때마다 들여쓰기가 네 칸씩 증가합니다. 블록이velog.io우아한 테크코스 프리코스를 진행중이신 한 분의 글을 보다가 왜 깃허브 컨벤션이 막히는걸까 싶어서 공부를 좀 해보았습니다!🤔 기본 동작 확인하기https://git-scm.com/book/ko/v2/Git%EB%A7%9E%EC%B6%A4-Git-Hooks G..