본문 바로가기

java35

내일배움캠프 8주차 Spring Global Exception Handler 오늘의 키워드Global Exception Handler오늘의 내용Global Exception Handler애플리케이션 전역에서 발생하는 예외를 처리하기 위한 방법이다주로 Spring Framework에서 @ControllerAdvice와 @ExceptionHandler을 사용해 구현한다@ControllerAdvice는 전역적으로 예외를 처리할 수 있는 애너테이션이고 @Controller 애너테이션이 붙은 컨트롤러에서 발생하는 예외를 처리할 수 있다@ExceptionHandlerAOP를 이용한 예외처리 방식이다메서드에 선언해 예외 처리를 하려는 클래스를 지정하면 예외 발생 시 정의된 로직에 의해 처리된다아래는 GlobalExceptionHandler의 예제이다@ControllerAdvicepublic .. 2024. 6. 7.
내일배움캠프 8주차 Spring Swagger 적용하기 오늘의 키워드Swagger오늘의 내용Swagger-uiRest API를 설계, 빌드, 문서화하고 사용하는데 도움 되는되는 OpenAPI 사양을 중심으로 구축된 오픈 소스 도구이다swagger의 장점은 구현 논리를 마련하지 않고도 API리소스를 시각화해서 Postman보다 편리했다사용방법사용을 위해서는 build.gradle에 의존성을 추가 해준다dependencies { // Swagger 설정 implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'}Swagger config 클래스를 만들어 작성해 준다@Configurationpublic class SwaggerConfig { @Bean public OpenA.. 2024. 6. 6.
내일배움캠프 8주차 Java Class, 예외처리 오늘의 키워드Java의 여러 class예외처리오늘의 내용Java.util 클래스유틸리티 클래스들을 제공하는 패키지다양한 표준 프로그래밍 자료 구조체를 지원하는 클래스를 지원한다Vector 클래스객체의 배열로써 구성되는 확장 가능한 배열이다동적으로 크기가 변하는 배열이 되어 객체의 수를 미리 정할 수 없을 때 사용가능하다데이터를 저장할 기억 장소가 일정하지 않는 경우 주로 사용하며 일정한 기억 장소가 차게 되면 다시 일정크기만큼 기억장소를 확보해 여러 가지의 데이터형을 기억시킬 수 있다public Vector( ) 로 클래스를 생성한다Random 클래스임의의 난수를 발생시키는 객체이다seed에 따라 일정한 수치를 발생시키는 함수를 가지고 있어 내부적으로 seed를 바꾸어 준다public Random(int.. 2024. 6. 4.
내일배움캠프 8주차 프로젝트 리펙토링 오늘의 키워드피드백을 기반으로 리펙토링https://github.com/marlboro09/schedule/wiki HomeContribute to marlboro09/schedule development by creating an account on GitHub.github.com오늘의 내용Servcie레이어를 하나의 패키지로 모아두셨는데 JwtService는 따로 빠져있습니다. 패키지 룰에 맞게 위치시켜 주세요. JWT는 도메인 패키지로 묶이고 타 서비스들은 서비스 패키지입니다. 하나로 통일시켜 주세요아래와 같이 수정완JwtService 파일을 service패키지로 이동해서 해결함  service마다 transactional 고민한 것 좋습니다. 다만 너무 많이 사용하게 되면 낭비니 필요한 부분에서만.. 2024. 6. 3.
내일배움캠프 7주차 Spring Refresh Token 오늘의 키워드Refresh Token오늘의 내용Refresh Token사용자의 인증을 위한 토큰이 아니라 새로운 Access 토큰을 생성하는 용도로 사용된다인증은 access토큰이 담당하지만 시간이 만료되면 refresh토큰으로 다시 access토큰을 생성해 준다토큰은 만료시간을 두는데 이유는 토큰이 유출되게 되면 사용자의 정보가 탈취당하기 때문에 만료시간을 주어 시간이 만료되면 아무 의미 없는 문자열이 되기 때문이다access토큰은 보안 때문에 시간을 짧게 정해 잦은 로그인을 해야 되는 상황이 발생하기 때문에 refresh토큰을 사용한다. refresh토큰은 만료시간이 길고 access토큰을 발급하는 기능을 하기 때문이다적용방법 JwtRokenProvider를 사용해 Refresh 토큰을 발급하는 메서.. 2024. 5. 31.
내일배움캠프 7주차 Spring @PathVariable, @RequestParam, @ModelAttribute, @RequestBody,...... 오늘의 키워드RESTful API @PathVariable, @RequestParam, @ModelAttribute, @RequestBodyDispatcher-Servlet 오늘의 내용ㅇRESTful API - 웹 표준을 기반으로 하는 API설계 아키텍처입니다 - 네트워크 상에서 클라이언트와 서버 간의 통신을 위해 자원의 상태를 전달하는 방법을 정의 - 클라이언트가 서버의 자원에 접근하고 이를 활용할 수 있도록 하는 역할 ㅇ자원 중심의 URI설계 - 각 자원은 URI로 명확히 식별되어야 한다 - URI는 명사를 사용해야 한다 ㅇHTTP메서드를 통한 행위 정의 -GET : 자원을 조회 -POST : 자원을 생성 -PUT : 자원을 업데이트 -DELETE : 자원을 삭제 ㅇ데이터 포맷 - JSON(JavaS.. 2024. 5. 29.
내일배움캠프 7주차 Java 인터페이스, 패키지 오늘의 키워드인터페이스패키지오늘의 내용인터페이스선언만 되어 있는 메서드들의 집합이며 자바에서 다중 상속이 되지 않기 때문에 여러 개의 클래스로부터 상속을 받아야 하는 경우 사용한다인터페이스의 모든 메서드는 항상 public이고 필드들은 항상 static final로 상수만 허용된다interface 인터페이스명 { // 인터페이스 정의 : 상수 필드와 추상 메서드로 구성된다}인터페이스 확장은 extends예약어를 사용하고 하나 이상의 인터페이스에서 확장될 수 있다interface 인터페이스명 extends 인터페이스명[,,,,] { //인터페이스 정의}class 클래스명 implements 인터페이스명 { //인터페이스를 구현한 클래스 정의}인터페이스에 정의된 모든 메서드를 위한 기능을 반드시 정의해야하며.. 2024. 5. 27.
내일배움캠프 6주차 Java 오버로딩, 오버라이드, 추상클래스 오늘의 키워드오버로딩오버라이딩추상클래스오늘의 내용오버로딩 이름은 하나만 부여하고 매개 변수를 다르게 함으로써 메서드를 여러 개 만드는 것을 말한다 다형성 : 여러 개의 클래스가 같은 메시지에 대해 각자의 방법으로 작용할 수 있는 행위인데 이걸 나타내는 게 오버로딩이다오버라이딩  오버로딩과 유사하게 수행되는데 부모클래스에 존재하는 메서드들이 서브클래스에 다른 작업을 수행할 수 있도록 동일한 함수명으로 재정의하는 것이다 오버라이드의 목적은 서브클래스에 적합한 메서드로 만들기 위해서고 서브클래스에서 오버라이드를 못하게 하고 싶은 경우 부모클래스의 정의를 final로 지정하면 된다 객체의 부모클래스를 참조하는 변수는 super이다 부모클래스와 상속받은 클래스의 메서드명이 같은 경우 부모클래스의 메서드가 감추어지.. 2024. 5. 26.