본문 바로가기
반응형

Spring28

단축 URL API 설계 (네이버) 설계 : [ Naver API ] ← request [ Spring Boot App ] ← CRUD → [ DB ] (단축 URL) response → response ↓ ↑ request [ User ] [ ShortUrlController ]-----[ ShortUrlService ]-----[ ShortUrlDAO ]-----[ ShortUrlRepository ] | | [ ShortUrlServiceImpl ] [ ShortUrlDAOImpl ] Controller 설계 (ShortUrlController) : Field NaverClientID => property Field NaverClientSecret => property @Autowired ShortUrlService Method : .. 2022. 11. 9.
Test Coverage 노트 코드 커버리지 - 소프트웨어의 테스트 수준이 충분한지 표현할 수 있는 지표 중 하나. 테스트를 진행했을 때 해당 코드가 실행되었는지를 표현하는 방법. 많은 코드 커버리지 도구가 있으며, Jacoco는 가장 보편적으로 사용되는 도구 Jacoco 란? - Java 코드의 커버리지를 체크하는 라이브러리. 작성된 코드의 Test Coverage를 측정하는 도구. Runtime으로 Test Case를 실행하여 Coverage를 체크하는 방식으로 사용됨. 테스트 코드를 통해 테스트를 실행하고 그 결과를 html, xml, csv 등의 형식으로 report를 제공함. 블랙 박스 테스트 / 화이트 박스 테스트 Black Box Test : 소프트웨어의 내부 구조나 작동 원리를 모르는 상태에서 동작을 검사하는 방식. 다.. 2022. 11. 8.
RestTemplate, TDD 노트 RestTemplate 이란? - 스프링에서 제공하는 HTTP 통신 기능을 쉽게 사용할 수 있게 설계되어 있는 템플릿. HTTP 서버와의 통신을 단순화하고 RESTful 원칙을 지킴. 동기 방식으로 처리되며, 비동기 방식으로는 AsyncRestTemplate이 있음. RestTemplate 클래스는 REST 서비스를 호출하도록 설계되어 HTTP 프로토콜의 메소드에 맞게 여러 메소드를 제공함. RestTemplate의 여러 메소드 Method HTTP 설명 getForObject GET GET 형식으로 요청하여 객체로 결과를 반환 받음 getForEntity GET GET 형식으로 요청하여 ResponseEntity로 결과를 반환 받음 postForObject POST POST 형식으로 요청하여 객체로 결.. 2022. 11. 7.
Spring Boot Exception Handling 노트 스프링 부트의 예외 처리 방식 - @ControllerAdvice를 통한 모든 Controller에서 발생할 수 있는 예외 처리 (모든 컨트롤러에서 발생할 예외를 정의) - @ExceptionHandler를 통한 특정 Controller의 예외 처리 (발생하는 예외마다 처리할 메소드를 정의) 예외 클래스 - 모든 예외 클래스는 Throwable 클래스를 상속받고 있음. Exception은 수 많은 자식 클래스가 있음. RuntimeException은 Unchecked Exception이며, 그 외 Exception은 Checked Exception으로 볼 수 있음. Checked Exception Unchecked Exception 처리 여부 반드시 예외 처리 필요 명시적 처리 강제하지 않음 확인 시점 .. 2022. 11. 6.
Spring Boot Validation 노트 유효성 검사 / 데이터 검증 (Validation) 이란? - 서비스의 비즈니스 로직이 올바르게 동작하기 위해 사용되는 데이터에 대한 사전 검증하는 작업이 필요함. 데이터의 검증은 여러 계층에서 발생하는 흔한 작업임. Validation은 들어오는 데이터에 대해 의도한 형식의 값이 제대로 들어오는지 체크하는 과정을 뜻함. Client side 뿐만 아니라 Server side에서도 데이터 유효성을 검사해야 할 필요가 있음. 일반적인 Validation의 문제점 - 일반적인 application에서 사용되던 Validation 방식은 몇가지 문제가 존재함. -> 어플리케이션 전체적으로 분산되어 존재 / 코드의 중복이 심함 / 비즈니스 로직에 섞여있어 검사 로직 추적이 어려움. ProductControlle.. 2022. 11. 5.
Logback 노트 Logback 이란? - Log4J를 기반으로 개발된 로깅(Logging) 라이브러리. log4J에 비해 약 10배 정도 빠른 퍼포먼스, 메모리 효율성 증대 (출시 순서 : log4J -> logback -> log4j2) Logback 특징 : - 로그에 특정 레벨을 설정할 수 있음 (Trace -> Debug -> Info -> Warn -> Error). - 실 운영과 테스트 상황에서 각각 다른 출력 레벨을 설정하여 로그를 확인할 수 있음. - 출력 방식에 대해 설정할 수 있음. - 설정 파일을 일정 시간마다 스캔하여 어플리케이션 중단없이 설정 변경 가능. - 별도의 프로그램 없이 자체적으로 로그 압축을 지원 - 로그 보관 기간 설정 가능 Logback의 구조 Appender ↑ Unsynchron.. 2022. 11. 4.
반응형