![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/4g8eQ/btsIifAtA5j/EgE8T0mv79EIzjxKyr08K1/img.jpg)
final을 어느 시점에 적절하게 사용할 것인가? 코드 리뷰를 받던 리뷰어분께 아래와 같은 코멘트를 남겨주셨다. 이에 대해 명확히 답변하기가 어려웠다. 내 기준이 없었기 때문에이제까지 final을 개념적으로만 알고 있었지, 어느 시점에 적절하게 사용해야 하는지에 대한 그때그때 기분에 따라 적용해 왔었다. 그래서 이번기회에 다른 개발자들은 어떤 기준으로 final을 적용하고 final 적용 시 어떠한 장단점이 있는지 정리해보고자 한다.(관련 참고 링크를 공유해 주신 오유근 님, 고민할 수 있는 기회를 주신 박유진 님께 감사의 말씀드립니다.) final의 역할과 적용 예시final 키워드는 다양한 contexts에 사용할 수 있고, 각 contexts에서 다른 역할을 수행한다. 1. final cla..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/JJqA8/btsIb40e73m/jm7VuxaXfYEp11kkFLjNJ1/img.jpg)
우선순위 큐(PriorityQueue) 정리 3줄 요약용도 : 객체 정렬을 하기 위해(with Comparator, Comparable or 람다식)특징 1 : 정렬 조건이 여러 개일 경우 유용특징 2 : 오름차순과 내림차순 가능 1. Wrapper class에 우선순위 큐(PriortyQueue) 적용1-1. 기본형(오름차순)PriorityQueueInteger> pq = new PriorityQueue() 으로 선언, element에는 Integer뿐만 아니라 객체 사용가능비교를 위해 Queue도 같이 선언했는데, 코드 아래 출력결과를 보면 큐는 입력받은데로 출력되고, 우선순위 큐는 오름차순으로 출력되는 걸 확인할 수 있음.public class 우선순위큐 { public static voi..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/k9goH/btsH9EAcDSH/LnuFXkZI12VXZGesd6rYnK/img.png)
1. Conventional commit 구조2. 구조 설명옵션(option) : 변경사항 범위를 나타냄. 주로 모듈이나 파일이름 사용제목(subject) : 50자 내로 간결하게 작성하며, 첫 글자는 소문자로 쓰고 마침표를 사용하자 않음본문(body) : 변경사항에 대한 세부 설명 작성. 한 줄에 72자를 넘지 않도록해야하며, 제목과 본문 사이 빈 줄을 넣어야 함푸터(footer) : 이슈 ID 등과 같은 참조 정보 기입. 생략가능타입(type) : 커밋의 목적을 명확히 하기 위해 아래 타입을 참고하여 사용항목설명feat새로운 기능 추가fix버그 수정docs문서 수정style코드 포맷팅, 세미콜론 누락 등 코드 변경이 없는 수정refactor리팩토링test테스트 추가 혹은 수정chore빌드 작업이나 패..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b9YoyS/btsH9tFl0Lk/DG1KzUlzir0JgeEAyhpuB1/img.png)
@ExceptionHandler특정 예외가 발생했을 때 해당 예외를 처리하는 메서드를 정의하는데 사용@ControllerAdvice와 @RestControllerAdvice 클래스 내에 정의@ControllerAdvicepublic class GlobalExceptionHandler { @ExceptionHandler(ResourceNotFoundException.class) public ResponseEntity handleResourceNotFoundException(ResourceNotFoundException ex) { return new ResponseEntity(ex.getMessage(), HttpStatus.NOT_FOUND); } @ExceptionHan..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bGNR8X/btsH8F7DsJx/Wm9WLCow7ckFtkzYgDHDtk/img.png)
3줄 요약Comparable : 정렬 대상 클래스 코드 수정이 가능할 때 객체 내부에서 사용Comparator : 정렬대상 클래스 코드 수정이 불가한 경우, 이미 정렬된 객체에 새로운 기준으로 정렬할 경우 객체 외부에서 사용람다식 : Collections, Stream 내에서 정렬하고자 할 때 사용 1. Comparable 정렬 대상 클래스에서 Comprable 를 implements 받아 compareTo(T t)를 @Override 받아 구현함compareTo(Member other)의 결과음수 : 현재 객체는 other 보다 앞에 위치 ==> (현재 객체, other)0 : 순서 변경 X양수 : 현재 객체보다 other 객체가 앞에 위치 ==> (other, 현재 객체)정렬 기준return thi..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/uqwhN/btsH71JXRsP/sK9R1NpP7WaCEpGgnJXrHK/img.png)
알아가야할 주요 내용0. 본 문제는 완전탐색 문제로 백트레킹을 이용해야한다.1. 문제의 조건 중 가장 큰 점수 차이가 여러개일 경우 가장 낮은 점수를 더 많이 맞힌 경우를 return 해야한다. ▶ 재귀함수로 라이언의 화살 배열을 채워갈때, 10번 index부터 시작하면 해당 조건을 고려하지 않고도 문제풀이가 가능하다.2. 라이언 화살 배열의 값을 덮어 씌우기때문에 재귀함수 호출 전후로 라이언 화살 배열의 값을 원상복귀할 필요없다.3. 재귀 호출을 위한 for 문안에서 라이언 화살 배열을 출력해 디버깅한다. 문제 풀이 코드public class 양궁대회 { public static void main(String[] args) { // 테스트 케이스 Solution solut..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/zc6yk/btsH3qvSDRz/gqq25kwqOkkd1jvriMITnK/img.jpg)
1. 3줄 요약NextStep 미션 중 기존 remote에서 소스코드를 가져와야했음Intellij 에서 cherry-pick 으로 수행하려 했으나 cannot found file 에러 발생checkout 명령어를 사용해 해결 2. 수행 과정옮길 대상 remote는 origin이고, 소스코드를 받아와야하는 Remote는 nextStep_reservation임.참고 : github에 등록된 원격저장소를 로컬로 받아오는 명령어는 아래와 같다.# git remote add ${로컬에 저장할 이름} ${원격저장소 경로}git remote add nextStep_reservation https://github.com/next-step/spring-roomescape-reservation.git 1) git re..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/css66E/btsH16XMCRg/7Jx4LA0qT6TGcgyLsqkDsk/img.jpg)
1. 정리하게된 배경초기 도메인 필드의 유효성을 검증하고자, 아래와 같이 @NonNull을 이용해서 구현했다. 초기 프로젝트 환경에서 validation 의존성이 추가되지 않아서, Spring 에서 제공되는 @NonNull이 있길래 사용했다. 클라이언트에서 입력받았을 때 해당 필드값이 비어있으면 예외를 처리가하기 위함이었는데 이에 대해 리뷰어님께 코멘트를 받았다. 해당 어노테이션에 대한 이해가 부족한 것으로 판단해서 코멘트를 주신것 같아 이번기회에 정리해보기로 했다.NonNull 과 NotNull, NotBlank 는 서로 어떤 차이가 있을까요?이들의 차이를 알아보고 적용해보는 것도 좋을거 같습니다AS-IS 코드import org.springframework.lang.NonNull;import roome..
- Total
- Today
- Yesterday
- script
- 자바
- BufferedWriter
- Java
- final 사용예시
- @exceptionahandler
- Spring
- thymeleaf
- 코드트리
- 백준
- springboot
- dxdy
- BufferedReader
- 커밋메시지
- 온라인강의
- 나만의챗봇
- jeus
- BFS
- 객체정렬
- 유데미
- 챗봇
- 재기동
- Comparable
- 전자정부프레임워크
- 알고리즘
- 글또
- NLU
- RASA
- Comparator
- JWT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |