1. 빌드 한 번 하기 어렵다. ./gradlew build 1. 오류 permission denied 원인 권한문제 해결 chmod +x gradlew 2. 오류 zsh: ./gradlew: bad interpreter: /bin/sh^M: no such file or directory 원인 window - linux 호환 문제 linux 에서 스크립트 실행할 때/bin/sh^M: bad interpreter: No such file or directory와 같은 에러 메시지가 나타날 때가 있다. 이것은 십중 팔구 윈도우에서 스크립트 파일을 만든 뒤, linux 에서 실행했기 때문에 나타나는 오류이다.정확히는 줄 끝 (줄바꿈)을 의미하는 개행문자가 달라서 발생하는 문제이다. (참고) Gradle 래퍼를..
CORS 로 하루종일 씨름을 했는데, 가만 생각해보면 https://localhost:8080 으로 요청했을 때는 문제가 없었다.. 어...? CORS 가 적용되지 않았던게 아니라... 내 서버에서 http 가 기본적으로 작동하고 있어서... 아무리 요청을 해도 https 가 아니기 때문에 오류가 계속 났던 것 같다. 에...? 그러니까.. 이렇게까지 설정을 했는데... @Override protected void configure(HttpSecurity http) throws Exception { http .cors(withDefaults()) .httpBasic().disable() // rest api 만을 고려하여 기본 설정은 해제하겠습니다. .csrf().disable() // csrf 보안 토..
CORS (Cross-Origin Resource Sharing) 교차 출처 리소스 공유 주어진 도메인 외부에 있는 리소스에 대한 제어된 액세스를 가능하게 하는 브라우저 매커니즘입니다. 이는 동일 출처 정책 (SOP)를 확장하고 유연성을 추가한 것입니다. SOP(Same-Origin Policy) 동일 출처 정책이란? 동일 출처 정책은 웹사이트가 서로를 공격하는 것을 방지하기 위한 웹브라우저 보안 매커니즘입니다. 출처는 Origin 입니다. 한 출처의 스크립트가 다른 출처의 데이터에 액세스하지 못하도록 제한합니다. Origin 이라는 용어를 이해해봅시다. Origin은 프로토콜, 주소, 포트번호의 쌍을 말합니다. 여기에서 포트 번호는 생략 가능합니다. 생략하면 HTTP 방식으로 오면 80, HTTPS 방..
해당 예외 처리 클래스의 문제점은 무엇일까요? 바로 중복이 있다는 것입니다. BAD_REQUEST 가 무려 3 번이나 등장했습니다. HTTP 구조를 이해할 필요가 있습니다. Spring ResponseEntity 의 정의입니다. public class ResponseEntity extends HttpEntity Extension of HttpEntity that adds an HttpStatus status code. 쓰임입니다. @RequestMapping("/handle") public ResponseEntity handle() { URI location = ...; HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setLocatio..
이전 게시물에서 Controller 단에서 요청받은 requestbody 의 유효성을 검증하는 과정을 진행하였습니다. 필드에 어노테이션을 붙여 검증해주는 것이었는데요, 이 때 고려하지 않은 것이 유저이메일과 유저닉네임 중복처리였습니다. 이 두 가지에서 발생하는 에러는 SQLException 이었습니다. User Entity의 필드에 Unique 설정을 걸어 주었기 때문입니다. 따라서 커스텀 에러를 만들고, 이를 반환하도록 하였습니다. 먼저 SQLException을 상속받는 커스텀 예외 클래스를 만들어줍니다. public class AlreadyExistEmailException extends SQLException { private static final String MESSAGE = "이미 등록된 이메..
ResponseEntity 는 HttpEntity 를 상속받는 클래스로, HTTP 요청 또는 응답에 해당하는 HttpHeader 와 HttpBody를 포함하는 클래스입니다. ResponseEntity 의 생성자를 봅시다. HttpStatus 는 필수이고, 그 외에 body, headers(Map) 은 선택적으로 넣을 수 있습니다. 이 세 가지 파라미터를 가진다고 생각하면 되겠습니다. body – the entity body headers – the entity headers status – the status code /** * Create a {@code ResponseEntity} with a status code only. * @param status the status code */ public ..
RuntimeException RuntimeException은 주로 프로그래머의 실수에 의해 발생될 수 있는 예외를 의미합니다. 코드를 수정하여 해결할 수 있는 예외이기 때문에 잘 숙지하고 있어야 합니다. 예시는 다음과 같습니다. 배열을 벗어난 경우 ArrayIndexOutOfBoundsException 값이 null 인 참조변수의 멤버를 호출하려 한 경우 NullPointerException 클래스간 형변환을 잘못한 경우 ClassCastException 정수를 0으로 나누려고 한 경우 ArithmeticException 입력한 데이터 형식이 잘못된 경우 DataFormatException 예외처리(Exception Handling) 이러한 예외들을 미리 처리하여 실행중인 프로그램이 비정상적으로 종료되..
.bookPubYear(Integer.parseInt(((String) bookInfo.get("publication_year")).isEmpty() ? "0000" : ((String) bookInfo.get("publication_year")))) Map 자료구조의 데이터를 get("key") 로 가져왔을 때, "" 빈 문자열 object 가 반환되었습니다. 문자열이 비어있는 것과 Null 인 것은 다릅니다. Null 은 메모리에 할당 자체가 되지 않은 상태입니다. 따라서 위 같은 경우 길이가 0인 문자열로, .isEmpty() 메서드를 통해 True 이면 비어있는 것을 확인합니다. 이후 삼항 연산자를 통해 로직을 처리해 줍니다. 삼항연산자 조건 ? 참일경우 : 거짓일경우
- Total
- Today
- Yesterday
- 개발자
- 코딩도서
- SSAFY
- 개발언어추천
- 클린코더
- ssafy6기
- 개발자로드맵
- 개발자커리
- ssafy결과
- 개발자책추천
- intj여자
- 개발도서추천
- ssafy합격후기
- ssafy후기
- 한글무료폰트추천
- 상업용무료폰트
- 싸피
- 깃허브계정
- 개발자도서추천
- 디즈니얼굴
- 무료폰트추천
- 개발언어순위
- 클린코드
- 싸피6기
- 폰트추천
- 임대차3법
- 깃허브계정2개
- 맥과윈도우로깃허브
- 폰트
- 브왈라
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |