분류 전체보기 954

배열.map()

배열의 각 요소를 연산하여, 그 결과값들을 다시 배열로 반환. let nums = [4,9,16,25,36]; let result = nums.map(Math.sqrt); console.log(result); 제곱근들이 반환 배열.map(함수) 각 요소를 저 함수에 인자로 넣어줌. let result2 = nums.map(num => { return num * 2; }) console.log(result2); let students = [ {id:1,name:"kim"}, {id:2,name:"tim"}, {id:3,name:"john"}, {id:4,name:"holl"}, ] let names = students.map(student => student.name); console.log(names);

그리드 레이아웃

표 같은 형태를 개념으로 공간을 차지. #wrap{display: grid; grid-template-columns: 30% 70%; grid-template-rows: 50px 150px 50px;} 위에 grid-template-columns: 30% 70%; grid-template-rows: 50px 150px 50px; 이렇게 열과 행을 지정 가능. 행 3칸, 열2칸이 #wrap 안의 자식들이 각각 나눠 가지는 거임. 총 6칸인데, 만약 자식들이 6개 초과 시 똑같은 비율로 추가로 생성됨. 총 6칸에, 자식이 4개 있는 상황. 마지막 row는 아예 공간을 나눌 자식이 하나도 없어서 columns 비율을 나누지 않은 듯 자식을 하나 더 추가 한 상황. grid-template-columns: 30..

74. ControllerAdviece

전에 @ExceptionHandler(IllegalArgumentException.class) 해서 컨트롤러 안에 에러를 처리 할 로직을 넣는 것은 나름 좋은 방법이었지만, 에러와 컨트롤러가 분리가 안됀다. 완벽히는 힘들더라도 잘 분리가 되어야만 유지보수 하기가 편하다. @ControllerAdvice 또는 @RestControllerAdvice를 쓰면 컨트롤러와 예외처리 로직을 분리할 수 있다. @Slf4j @RestController public class ApiExceptionV2Controller { @GetMapping("/api2/members/{id}") public ApiExceptionController.MemberDto getMember(@PathVariable("id") String ..

73. @ExceptionHandler API 예외

Html 화면 오류 vs API 오류 html 사용하는 환경의 오류는 BasicErrorController를 사용하는게 편하다. 그냥 리소스의 템플릿에 /error 폴더 만들어서 코드명.html로 에러 페이지 만들어 놓으면 스프링이 자동으로 등록시키는 BasicErrorController에서 자동으로 인식한다. 근데 API는 시스템마다 응답의 모양도 다르고, 스펙도 다르다. 단순히 예외에 대한 정보를 보여주는 게 아니라, 특정 예외에 따라서 각각 다른 데이터를 보내줘야 할 때도 있다. 한마디로 세밀한 제어가 필요하다. 예를 들어 상품API와 주문 API 의 오류는 에러정보를 Json으로 내려줄 때 모양새가 완전히 다를 수 있다. 스프링은 이러 한 문제점을 해결하기 위해, @Exceptionhandler라..

프로그래밍 기초

프로그래밍은 사실 제대로 알려면 하드웨어까지 알아야 합니다. 왜냐하면 결국 프로그래밍 언어란 것은 하드웨어에게 이렇게 처리하라고 명령을 내리는 것 이기 때문입니다. https://www.jjilbo.com/news/articleView.html?idxno=16000 컴퓨터 주요 구조도 - 전주일보 ○ 컴퓨터 주요 구조도 컴퓨터 상식에 나가기에 앞서 기본적으로 컴퓨터 내부 부품을 알고 넘어가도록 합시다.일반적으로 컴퓨터는 하드웨어적으로 간단하게 구성되어 있지만 부품의 고가로 www.jjilbo.com 위에 같이 보면서 읽어보세요. 1. 메인보드는 모든 부품을 연결해주는 역할을 합니다. 그래서 모든 걸 품을 수 있다고 해서, 마더 보드 라고도 부릅니다. 2. CPU는 계산해주는 장치 입니다. 쿨러는 열 식히..

카테고리 없음 2023.09.15

72. 스프링 내부에서 발생하는 예외를 처리해주는 Resolver

자동등록 됨. DefaultHandlerExceptionResolver라고 보통 파라미터 바인딩 시점에서 타입이 맞지 않으면 내부에서 TypeMismatchException이 발생하는데, 이게 원래는 컨트롤러에서 발생한 에러이기 때문에 500에러로 올라간다. 근데 사실 저 TypeMismatchException 대부분은 클라이언트가 정보를 잘못 입력했기 때문에 발생하는거다. @GetMapping("/api/default-handler-ex") public String defaultException(@RequestParam Integer data){ return "ok"; } 컨트롤러에 이렇게 해 봤다. 그냥 숫자를 받고 응답으로 ok라고 보내주는 거다. 내가 요청헤더 acception을 applicati..

71. 스프링이 자동등록해주는 ExceptionResolver

기본적으로 등록되는게 3가지가 있는데, 우선순위 순으로 ExceptionHandlerExceptionResolver : @ExceptionHandler 라는 애노테이션이 붙은 걸 처리한다. API는 대부분 이걸로 해결이 된다. ResponseStatusExceptionResolver : @ResponseStatus(value = HttpStatus.NOT_FOUND) 등 응답 상태 코드를 지정해 준다. DefaultHandlerExceptionResolver : 스프링 내부에서 처리해주는 기본 예외 저렇게 다 거친 후에도 처리가 안되면 그제서야 WAS로 간다. ResponseStatusExceptionResolver 이건 예외에 따라 상태코드를 지정해 주는 역할을 한다. @ResponseStatus가 달..

마크다운 기본 사용

참고로 마크다운에서 html 태그 사용 가능. 그냥 자유롭게 쓸 수는 있음. 근데 권장하지는 않음. 지저분해 보임. # 제목(Header) h1 ## 제목(Header) h2 ### 제목(Header) h3 #### 제목(Header) h4 ##### 제목(Header) h5 # 띄우고 글자 #개수가 등급 낮아지는거임. 줄바꿈 # 줄바꿈 안녕 하세요 줄바꿈 해놓고, 줄바꿈 될 문장 윗 문장 맨 끝에 공백 2개 있어야 함 # 줄바꿈 안녕하세요 이것도 가능 # 목록 ## 순서가 필요한 목록 1. 첫번째 1. 첫번째 1. 첫번째 1. 첫번째 1. 첫번째 그냥 다 1 맞음. 1 ~ 5 이렇게 나옴. 1. 띄우고 내용 ## 목록 하위 구조 1. 첫번째 1. 첫번째 1. 첫번째 1. 첫번째 1. 첫번째 1. 첫번째..

MarkDown (md파일) 2023.09.15

문자열 포함되어있는지 여부, includes()

function hasColaIncludes(str){ if(str.includes('콜라')){ console.log('금칙어가 있습니다.'); }else{ console.log('금칙어가 없습니다.') } } hasColaIncludes('콜라는 맛있다.'); hasColaIncludes('사이다는 맛있다.'); console.log('hi name'.includes('hi')); 문자열.includes('문자열'); function hasColaIncludes(str){ if(str.indexOf('콜라') !== -1){ console.log('금칙어가 있습니다.'); }else{ console.log('금칙어가 없습니다.') } } hasColaIncludes('콜라는 맛있다.'); hasCol..