일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인텔리제이
- 부트캠프
- FilterChain
- 자바
- 데일리코딩
- testing
- CLI명령어
- 알고리즘
- fibonacci
- CSS
- 스프링
- 백엔드
- 계산기만들기
- 회고
- 깃허브
- 백준알고리즘
- 문자열뒤집기
- 거듭제곱
- Spring Security
- 페어프로그래밍
- spring data jpa
- 자료구조
- HTML
- 컬렉션프레임워크
- 그리디
- java
- Spring Data JDBC
- 첫글자대문자
- Publishing
- 제네릭스
- Today
- Total
목록SEB (57)
나의 모양
🎈Checked Exception 예외를 잡아서(catch) 체크한 후 반드시 에러처리(try~catch)를 해야하는 예외이다. Exception 클래스의 하위 클래스 (Exception 상속받음) ClassNotFoundException, FileNotFoundException, SQLException, … 🎈Unchecked Exception 예외를 잡아서(catch) 해당 예외에 대한 처리(try~catch)를 할 필요가 없는 예외이다. RuntimeException의 하위 클래스 (RuntimeException 상속받음) 주로 개발자가 코드를 잘못 작성해서 발생하는 오류들은 모두 RuntimeException을 상속한 예외들이다. NullPointException, ArrayIndexOutOfBo..
✏️ Description Return whether the sample is a subset of the base by receiving two arrays input base: temporary Array with element of int sample: temporary Array with element of int output: boolean caution: no duplicates example of in/output int[] base = new int[]{1, 2, 3, 4, 5}; int[] sample = new int[]{1, 3}; boolean output = isSubsetOf(base, sample); System.out.println(output); // --> true sam..
🎈 @ExceptionHandler를 이용한 예외 처리 Controller 클래스 레벨에서 @ExceptionHandler를 사용하면 해당 Controller에서 발생하는 예외를 처리할 수 있다. 필요한 예외 정보만 담을 수 있는 Error 전용 Response 객체를 사용하면 클라이언트에게 조금 더 친절한 에러 정보를 제공할 수 있다. BUT! @ExceptionHandler 방식은 Controller마다 동일하게 발생하는 예외 처리에 대한 중복 코드가 발생할 수 있기 때문에 다양한 유형의 예외를 처리하기에는 적절하지 않다. ✅ Ref. @ExceptionHandler https://docs.spring.io/spring-framework/docs/current/reference/html/web.htm..
🎈 DI를 통한 서비스 계층 ←→ API 계층 연동 애플리케이션에서 Service: 도메인 업무 영역을 구현하는 비즈니스 로직을 처리하는 것이다. 애플리케이션의 비즈니스 로직을 처리하기 위한 서비스 계층은 대부분 도메인 모델을 포함하고 있다. Spring Bean으로 등록 Controller 클래스에 @RestController 추가 Service 클래스에 @Service 추가 생성자 방식의 DI는 생성자가 하나일 경우에는 @Autowired 애너테이션을 추가하지 않아도 DI가 적용된다. 서비스 계층과 API 계층을 연결한다는 것은 API 계층에서 구현한 Controller 클래스가 서비스 계층의 Service 클래스와 메서드 호출을 통해 상호작용하는 것이다. 🎈 매퍼(Mapper)를 이용한 DTO 클래..
🎈DTO 유효성 검증이 필요한 이유 자바스크립트로 전송되는 데이터는 브라우저의 개발자 도구에서 값을 조작할 수 있기 때문에 프론트엔드 쪽에서 유효성 검사를 진행했다고 하더라도 서버 쪽에서 한번 더 유효성 검사를 진행해야 한다. 프론트엔드 쪽에서 진행하는 유효성 검증 프로세스는 사용자 편의성 측면에서 필요한 작업이다. 🎈DTO 클래스에 유효성 검증 적용하기 🧩 유효성 검증을 위한 의존 라이브러리 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-validation:2.7.3' } 🎈@PathVariable 유효성 검증 @PathVariable에서 유효성 검증을 하려면 클래스에 @Validated을 붙여줘야 한다. 안..
🎈 DTO(Data Trasfer Object) 마틴 파울러(Martin Fowler)가 ‘Patterns of Enterprise Application Architecture’ 라는 책에서 처음 소개한 엔터프라이즈 애플리케이션 아키텍처 패턴의 하나이다. 데이터를 전송하기 위한 객체 주로 클라이언트에서 서버 쪽으로 전송하는 요청 데이터를 전달 받을 때, 서버에서 클라이언트 쪽으로 전송하는 응답 데이터를 전송하기 위한 용도로 사용된다. 데이터 전송이 이루어지는 구간 클라이언트 → 서버: 요청(request) 데이터 서버 → 클라이언트: 응답(response) 데이터 DTO 클래스: 요청 데이터를 하나의 객체로 전달 받는 역할 🎈 DTO가 필요한 이유 클라이언트의 Request Body를 하나의 객체로 모두..
✏️ Description 정수를 요소로 갖는 배열을 입력받아 3개의 요소를 곱해 나올 수 있는 최대값 리턴 입력: int[] 타입을 요소로 갖는 임의의 배열 출력: int 주의사항 주어진 배열은 중첩되지 않은 1차원 배열 배열 요소는 음수와 0을 포함하는 정수 배열 길이는 3 이상 입출력 예시 int output = largestProductOfThree(new int[]{2, 1, 3, 7}); // --> 42 (= 2 * 3 * 7) output = largestProductOfThree(new int[]{-1, 2, -5, 7}); // --> 35 (= -1 * -5 * 7) 📝 Flow - 가장 큰 수를 곱하기 => 오름차순 정렬해서 맨 뒤에 세 개 곱해줌 - 배열에 양수 있을 때 => 큰 ..
🫠 Section2를 마치며… 얼마 잔 것 같지도 않은데 벌써 아침이고, 그렇게 밤이 되고 또 오늘 하루 뭐했지,, 하는 찝찝한 마음으로 졸려 죽겠는데 잠이 들지 않는 밤을 보내면, 얼마 잔 것 같지도 않은데 벌써 아침이고, 그렇게 밤이 되고 또 오늘 하루 뭐했지,, 하는 찝찝한 마음으로 졸려 죽겠는데 잠이 들지 않는 밤을 보내면, 얼마 잔 것 같지도 않은데 벌써 아침이고, … 한 건 정말 많은 것 같은데 정리는 커녕 뭘 했는지도 모른 채로 재귀 같은 하루하루를 보내다 section2라는 탈출 조건을 만나 section3을 리턴해버렸다… 이 말을 보고 어? 이 예제는 적절하지 않은데,,? 한다면,, 그건 아직도 내가 재귀를 모른다는 뜻이겠지……..하……ㅎ 지난 Section2는 너무 버거웠다. 하나를 공..