2023/07

1. 통합테스트를 구현하시오. 2. API문서를 구현하시오. (swagger, restdoc, word로 직접 작성, 공책에 적어서 제출 등 모든 방법이 다 가능합니다) 3. 프론트앤드에 입장을 생각해본뒤 어떤 문서를 가장 원할지 생각해본뒤 API문서를 작성하시오. 4. 카카오 클라우드에 배포하시오. 통합 테스트 통합 테스트를 위한 application-test.yml을 사용하라 teardown.SQL(테스트 쿼리)를 DB에 입력하라 테스트는 기본적인 API 요구사항과 실패 테스트까지 진행하라 구현 목록 - Controller에도 예외처리 해줘야하지 않나? User 회원 가입: Post /join 로그인: Post /login` Order 결재: Post /orders/save 주문 조회: Get /or..
· DEV/Backend
문제 상황 🐥 카카오 테크 캠퍼스 - 2단계 5주차 과제 수행 중에 global Exception Handler를 사용하는 과제가 있었다 code를 작성하면서, 직접 에러를 확인하고 싶어서, 아래와 같이 핸들러를 작성하고 실행했다 @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(Exception500.class) public ResponseEntity serverError(Exception500 e){ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("잘 찾아왔다."); } } Controller 코드 : runtime Error를 예시로 삼았다 @..
· AI
역전파(Back-propagation)가 흐름은 알겠는데 이해가 잘되지 않아서, 증명을 하는 과정에서 갑자기 에러가 발생했다 Error : RuntimeWarning Invalid Value Encountered in Subtract 본론부터 이야기하면, 신경망 학습 과정에서 값이 너무 커져서 발생한 것이다 종종 Deep Learning에서 발생하는 문제로, 학습률이 너무 높거나 데이터가 적절히 정규화되지 않았을 때 발생할 수 있다 수정 된 코드 활성화 함수 : sigmoid 함수 손실 함수 : 평균 제곱 오차 (Mean Squared Error, MSE) import numpy as np # 시그모이드 함수 정의 def sigmoid(x): return 1 / (1 + np.exp(-x)) # 시그모이..
과제 수행 조건 1. 장바구니 담기 -> 예외 처리하기 2. 장바구니 수정(주문하기) -> 예외 처리하기 3. 결제하기 기능 구현(장바구니가 꼭 초기화 되어야 함) 4. 주문결과 확인 기능 구현 1. 장바구니 담기 : /carts/add 해결해야 할 문제 동일한 옵션이 들어오면 예외처리 Dirty Checking : cartJPARepository.findByOptionIdAndUserId() 조회 존재하면 장바구니에 수량을 추가하는 업데이트 Controller @PostMapping("/carts/add") public ResponseEntity addCartList(@RequestBody @Valid List requestDTOs, Errors errors, @AuthenticationPrincipa..
문제 이 문제는 선분 세 개로 삼각형을 만들기 위한 조건을 만족하는 선분의 개수를 찾는 것입니다. 삼각형을 만들기 위한 조건은 가장 긴 변의 길이가 다른 두 변의 길이의 합보다 작아야 한다는 것입니다. 삼각형의 두 변의 길이가 담긴 배열 sides가 주어지고, 나머지 한 변이 될 수 있는 정수의 개수를 반환하는 함수를 작성해야 합니다. 제한사항 sides의 원소는 자연수입니다. sides의 길이는 2입니다. 1 ≤ sides의 원소 ≤ 1,000 입출력 예 예시 1: sides가 [1, 2]인 경우, 결과는 1입니다. 두 변이 1, 2인 경우 삼각형을 완성시키려면 나머지 한 변이 2여야 합니다. 문제 풀이 def solution(sides): sides.sort() return 2*sides[0]-1 부..
문제 요약 두 정수 left와 right가 주어지고, left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 반환하는 함수를 작성하라 단 1 ≤ left ≤ right ≤ 1,000 입출력 예 예시 1: left가 13, right가 17인 경우, 결과는 43입니다. 이는 13부터 17까지의 수들 중에서 약수의 개수가 짝수인 수(13, 14, 15, 17)를 더하고, 약수의 개수가 홀수인 수(16)를 뺀 결과입니다. 예시 2: left가 24, right가 27인 경우, 결과는 52입니다. 이는 24부터 27까지의 수들 중에서 약수의 개수가 짝수인 수(24, 26, 27)를 더하고, 약수의 개수가 홀수인 수(25)를 뺀 결과입니다. 1번째 ..
문제 요약 "달리기 경주"라는 문제는 매년 열리는 달리기 경주에서 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부르는 해설진의 역할을 수행하는 알고리즘을 구현하는 것입니다. 선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 주어집니다. 해설진이 선수의 이름을 부르면, 그 선수는 바로 앞의 선수를 추월하게 됩니다. 경주가 끝났을 때 선수들의 이름을 1등부터 등수 순서대로 배열에 담아 return 하는 solution 함수를 완성해야 합니다. 제한사항 players의 길이는 5 이상 50,000 이하입니다. players[i]는 i번째 선수의 이름을 의미합니다. players의 원소들은 알파벳 소문자로만..
과제 목표 카카오 쇼핑 프로젝트 전체 코드를 리팩토링한다 - AOP로 유효성검사 적용하기 - GlobalExceptionHanlder -> 예외 처리하기 - 구현하기 - 장바구니 담기 - 장바구니 수정(주문하기) -> 예외처리하기 - 결재하기 기능 구현 (장바구니가 꼭 초기화 되어야함) - 주문결과 확인 기능 구현 필수 적용 사항 AOP가 적용되었는가? GlobalExceptionHandler가 적용되었는가? 장바구니 담기시 모든 예외가 처리 완료되었는가? 장바구니 수정시 모든 예외가 처리 완료되었는가? 결재하기와 주문결과 확인 코드가 완료되었는가? 1. 장바구니 담기 : /carts/add @Transactional(readOnly = true) @RequiredArgsConstructor @Servi..
Intro. Token 복사하기가, 귀찮다 🐥 카카오 테크 캠퍼스 - 2단계 5주차 강의 요약 후 Postman 테스트를 하는데, 로그인 할 때마다 Token을 복사하는게 너무 귀찮았다 이런거 이미 만들어져 있을거 같은데? 했는데 역시나 있었다 역시 세상은 넓고, 내가 한 생각은 이미 누군가 했다 해결 방법 새로운 Environment 생성 : 꼭 만들어야 합니다 새로운 환경을 만들어줍니다. 저는 Kakao라고 이름을 지정했습니다. 꼭 그리고 save 눌러주셔야 합니다 꼭꼭 Current Value에 우리의 Token이 들어갈겁니다 그리고, 오른쪽 상단에서 만들어둔 Kakao 환경으로 이동합니다 Test에 쿼리 작성 로그인으로 이동해서, Tests에 들어가 아래 코드를 입력합니다 // Assuming t..
- 모르는 키워드 - 혼자 구현하기 어려운 것들 - Spring의 큰 틀에서 이해하자 - 수업 때 언급 된 내용 위주로 맥락 파악 할 것 01. 글로벌 익셉션 핸들러 적용 DispatcherServlet에서 Exception 제어를 하는 것의 장점이 뭐냐 DispatcherServlet이 책임을 지게 되는거임 Java의 Reflection은 무엇인가? Reflection으로 구현 되었다는게 무엇인가 Controller의 책임은 무엇이냐 @Controller의 역할 : View Resolver 관련 @RestController의 역할 : Message Converter 관련 @RestControllerAdvice : DispatcherServlet이 throw가 날라오면 해당 어노테이션이 있는 파일을 찾아..
berom
'2023/07 글 목록