no image
패스트캠퍼스X야놀자: 백엔드 개발 부트캠프_1차 과제 후기
문제 1 과제를 처음 진행할 때 출력 반복문의 인덱스를 정하기 위해서 객체의 수를 알아내기 위해 공식 API를 참고했다. 응답내용에 meta -> total_count가 응답받은 결과의 갯수인 줄 알고 그 값을 기준으로 출력할 수 있도록 반복문을 작성했다. 결과는 아래의 표와 같다. 반경(km) total_count 실제 응답 받은 객체 수 0.3 2 2 0.5 20 15 공식 문서에는 검색 된 문서의 총 수를 응답받지만 결과가 달라서 내 코드를 신뢰할 수 없었다. HTTP 요청 테스트 방법이 익숙치 않아서 시간을 아끼고자 다른 방법을 사용했다. (추후에 HTTP 요청 테스트 하는법 공부하기) 원래는 오브젝트 정보를 받아오자마자 날 것으로 프린트하려고 했지만 List에 담아서 size()를 활용했다. 아..
2023.08.23
no image
Spring Boot 예외처리
Spring Boot의 예외 처리는 @RestControllerAdvice 를 사용한다. @RestControllerAdvice = ControllerAdvice + ResponseBody 따라서, ResponseBody와 같이 리턴하는 응답 값이 body로 설정되어 클라이언트에게 전달된다. 아래와 같이 IndexOutOfBoundsException을 발생하도록 설정하고 HTTP Get요청을 보내면 아래 그림과 같이 Http Status Code 500번과 Internal Server Error이 반환된다. @Slf4j @RestController @RequestMapping("/api") public class RestApiBController { @GetMapping(path = "") public ..
2023.08.01
no image
자바 Optional<T>
Optional이 등장한 계기 : 메소드가 반환할 결과 값이 '없음'을 명백하게 표현할 필요가 있고, null 을 반환하면 에러가 발생할 가능성이 높은 상황에서 메소드의 반환 타입으로 Optional 을 사용하자는 것이 Optional 을 만든 주된 목적이다. Optional 타입의 변수의 값은 절대 null 이어서는 안 되며, 항상 Optional 인스턴스를 가리켜야 한다. Optional 생성, 선언 @Override public Optional findById(Long id) { return Optional.ofNullable(store.get(id)); //Null값 까지 받을 수 있음-> Null이면 Empty 객체 생성 //Optional.of(T) -> 명시한 T값을 가지고 있는 객체 생성,..
2023.07.28
no image
접근제어자 Protected
protected의 핵심을 요약하자면 아래와 같다. 접근제어자가 protected로 설정되었다면, 동일 패키지의 클래스 또는 해당 클래스를 상속받은 다른 패키지의 클래스에서만 접근이 가능하다. public vs protected public은 외부에서 접근할 수 있지만 protected는 외부에서 접근할 수 없다. 어떻게보면 public와 protected는 비슷하다고 볼 수 있다. protected는 원하는 클래스의 메소드를 직접 instance를 만들어 사용할 순 없지만, 상속 관계가 되는 경우 자유롭게 이용이 가능하기 때문이다. 그럼 오직 외부에서의 접근을 막기 위해 protected를 써야 하는지에 대한 궁금증이 생겼기에 구글링을 통해 OOP에서의 protected의 역할을 찾아봤다. protec..
2023.07.25
no image
LinkedList관련 for문
for each 특징 1. 배열의 값을 가져다만 사용할 수 있고 수정할 수 없다. Only read 2. 내부적인 Iterator을 생성해서 사용 3. for문과 구현 방식에 대한 성능 차이는 없다.(List 제외) 4. 인덱스를 사용할 수 없다. 평범한 for문 구조 String[] numbers = {"one", "two", "three"}; for(int i=0; i
2023.07.21
no image
자바의 연산자
연산자 : 연산을 수행하는 기호 피연산자 : 연산자의 작업 대상 연산자의 종류 - 산술 연산자 - 비교 연산자 - 논리 연산자 - 대입 연산자 - 형 변환, 삼항, instanceof 연산자 종류 연산자 설명 산술 연산자 + - * / % > 사칙, 비트, 나머지 연산자 비교 연산자 > OR 이므로 ||기호의 오른쪽 항부터 수행된다. https://johngrib.github.io/wiki/ternary-ope..
2023.07.19
no image
자바 변수, 자료형의 종류
프로그래밍에서 변수(Variable)란 하나의 값을 저장할 수 있는 저장공간을 의미한다. 변수의 이름을 지을 때 주의할 점 - 숫자로 변수의 이름을 시작할 수 없다. - $, _이외의 문자는 변수의 이름에 사용할 수 없다. - 키워드(for, if, int)는 사용할 수 없다. 기본 자료형은 4가지로 정수형, 실수형, 논리형, 문자형이 존재하며 각 바이트는 아래 표와 같다. 정수형(byte, short, int, long) byte(1) < short(2) < int(4) < long(8) 바이트 순이며 기본 자료형은 int(4)이다. 바이트 크기에 대한 값의 표현 범위는 아래 표와 같다. 실수형(float, double) 실수는 정수보다 정밀하기 때문에 부동 소수점 방식을 사용한다. 부동 소수점 : 소..
2023.07.18
no image
01_ SPR - 단일 책임 원칙
01_ SPR (Single Responsibility Principle) 단일 책임 원칙 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다. - 하나의 클래스에 역할과 책임이 많기 때문에 객체 지향 특성을 가지지 못함 - 하나의 클래스가 역할과 책임에 따라 4개의 클래스로 분리 - 단일 책임 원칙은 속성, 메서드, 패키지, 모듈, 컴포넌트, 프레임워크 등에도 적용할 수 있다.
2023.02.20