f '분류 전체보기' 카테고리의 글 목록 (3 Page) — 하늘속에서IT

분류 전체보기

    [ETC] Swagger 와 OAS(Open Api Specification)는 어떤 관계가 있는걸까?

    발단 Swagger 를 사용하면서 OAS(Open Api Specification)에 대해서 자주 언급되는 것을 볼 수 있다. 두 개념은 어떤 관계에 있길래 같이 사용되는지 늘 궁금하였는데, 정리를 통해 어떤 관계에 있는 것인지 알아보고자 한다. Swagger 측에서의 설명 The OpenAPI Specification, formerly known as the Swagger Specification, is the world’s standard for defining RESTful interfaces. Swagger Specification 으로 알려진 OpenApi Specification 은 RESTful 인터페이스를 정의하기 위한 세계 표준이다. 여기까지는 OAS 가 Swagger 로 알려져 있구나,..

    [Spring Boot] Spring 에서 Redis 를 사용할 때 ConnectionFactory 를 왜 Bean 으로 등록해서 사용해야 할까?(feat. Kotlin, Lettuce, LettuceConnectionFactory was not initialized through afterPropertiesSet())

    발단 RedisTemplate 의 connectionFactory 를 Bean 으로 등록된 RedisConnectionFactory 로 사용하는 예제가 많은데 왜 그래야 하는지 설명이 없어 궁금하여 찾아보게 되었다. (Bean 으로 등록하여 사용하지 않으면 `LettuceConnectionFactory was not initialized through afterPropertiesSet()` 오류가 발생한다.) 설명 Spring 에서 Redis 서버와의 연결을 위해 getConnection 메서드를 호출한다. getConnection 메서드 내부에는 assertInitialized 검증 메서드를 호출한다. assertIntialized 는 initalized 변수를 통해 초기화 여부를 판단하는데, 해당 변..

    [Spring Boot] custom error page 적용(feat. 예제, ErrorController)

    상황 Spring 을 통해 웹서비스를 제공할 때 오류가 발생하면 에러 페이지(white label, 위사진)에 도달하게 되는데, 해당 에러 페이지와 웹서비스의 디자인이 많이 다름으로 사용자로 하여금 혼란이 올 수 있다는 생각이 들어서 임의의 에러 페이지를 제공하고자 하였다. 간단한 설명 Spring 에서는 에러 페이지 생성을 위해 ErrorController 를 제공한다. ErrorController 를 사용하면 default 에러 페이지 핸들러를 대체하게 된다. 예제 코드 밑에 자세한 설명을 포함하였습니다. Custom Error Page 예제 View 생성 성공적으로 접근 되는 것을 확인하기 위한 페이지와, 에러 페이지 중에서 404 와 500 을 재연하기 위해 세개의 view 를 생성한다. inde..

    [Spring Boot] JWT 라이브러리를 의존성 추가했음에도 빌드 오류가 나는건 왜일까?(feat. `io.jsonwebtoken:jjwt-api`)

    발단흔히 사용하는 jwt 라이브러리인 jjwt 를 사용하여 개발하려 하니 2018년도 이후로 업데이트 되지 않고 있었다. 예제로도 jjwt 를 사용하는 경우가 많지만 최신 패키지인 jjwt-api 가 있기에 이를 사용하여 공부하던 도중 문제가 발생한 의존성에 대해 트러블 슈팅 하는 과정을 작성하였다. 환경Spring Boot: 3.1.0 (kotlin, gradle)jjwt-api 0.11.5 jjwt 와 jjwt-api 의 상관관계 GitHub - jwtk/jjwt: Java JWT: JSON Web Token for Java and AndroidJava JWT: JSON Web Token for Java and Android. Contribute to jwtk/jjwt d..

    [Spring Boot] s3 aws-java-sdk(v 1.1) 을 사용하는 개발환경에서 SSL 인증서와 무관하게 통신하는 방법(feat. ValidatorException: PKIX path building failed)

    발단 개발 환경에서 object storage 에 접근할 때 SSL 인증서 이슈로 임시로 https 를 허용해야 하는 상황이 발생하였다. PKIX(Public Key Infrastructure X.509) 오류 PKIX : 인증서 기반의 보안 인프라 오류 발생 경우 일반적으로 신뢰할 수 없는 인증 기관에 의한 발급 인증서의 유효 기간이 만료 도메인 이름과 일치하지 않는 경우 혹은, Java 의 신뢰할 수 있는 인증서 리스트에 등록한 인증서가 없는 경우 코드 /** * 설명 * - AmazonS3 클라이언트를 구성하는 코드입니다. * */ AmazonS3ClientBuilder.standard() .withEndpointConfiguration( ... ) .withClientConfiguration( C..

    [Network] Https 는 브라우저에서 어떻게 인증과정을 거치게 되는걸까?

    원문 출처 nuritech 님의 설명을 기반으로 필자가 스스로 이해하기 쉽게 정리한 내용입니다. 자세하고 좋은 설명은 아래 블로그에서 확인 바랍니다! HTTPS 통신 원리 쉽게 이해하기 (Feat. SSL Handshake, SSL 인증서) 이 글을 쓰게 된 이유는,, 나의 평소 HTTPS 에 대한 지식은 HTTPS 가 암호화된 네트워크 통신 프로토콜이고 HTTPS 를 사용한 네트워크 통신에서는 주고받는 패킷을 까도 데이터가 암호화되어 있어 안 nuritech.tistory.com HTTPS 넌 도대체 뭐야? HTTPS(HyperText Transfer Protocol over Secure Socket Layer, HTTP over TLS, HTTP over SSL, HTTP Secure)는 월드 와이드..

    [Spring Boot] Spring Boot 에서 JPA 로 값을 수정시 알 수 없는 이유로 sql 에러가 발생할 때(feat. SQL Error: 1064, SQLState: 42000)

    발단 DB 에서 값을 변경하려고 JPA 를 통해 시도하였을 때 필자 입장에서는 단순한 VARCHAR(1) 구조의 필드 였음으로 수정되어 마땅한 상황이었지만, 왜인지 SQL Error: 1064, SQLState: 42000 오류가 지속적으로 발생하였다. 설명 필자가 사용한 테이블에는 DB 의 예약어를 포함하고 있었다 (예약어인지 모르고 필드로 사용). 테이블의 값을 수정하려 할 때 예약어를 수정하려 한 것은 아니지만, JPA 가 객체 형태로 영속성 매니저에게 값을 전달하고 있었기에 DB 에 전달한 query 를 실행하면서 syntax error 가 발생하게 된것이다. 예시 DB 구조 CREATE TABLE `test1` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `openYn..

    [Spring Boot] Spring Boot(Kotlin) Gradle 환경에서 docker 이미지를 추출하는 방법(feat. bootBuildImage)

    설명 환경 윈도우즈 docker desktop 설치됨 Spring Boot 프로젝트 kotlin Gradle 로 빌드툴을 설정했을 경우 다음과 같은 탭을 찾아볼 수 있다. Gradle 빌드 툴이 제공해주는 docker image 빌드 명령어이다. Image 저장되는 장소 아무런 설정을 하지 않았을 경우 docker 로컬에 저장된다. 이는 docker desktop 과 docker CLI 를 통해 확인 가능하다. docker command : docker images docker 이미지 변경 build.gradle.kts 파일에서 다음과 같이 작성할 경우 이미지명이 변경된다. tasks.getByName("bootBuildImage"){ imageName.set(".../request-test:latest..

    [MariaDB] TIME_TO_SEC 내장함수를 사용해서 TIME 형식의 string 값을 초로 변경해보자

    설명 MariaDB 는 TIME_TO_SEC(time) 내장함수를 제공한다. time : TIME 형식의 값을 의미한다. ex) TIME_TO_SEC('21:48:24') MariaDB 버전에 따라 다른 타입의 값을 반환한다. 5.3 이하 : INT 값을 반환한다. 5.3 이후 : DOUBLE 값을 반환한다. 5.3 이후의 MariaDB 버전에서는 DOUBLE 로 값을 반환하기 때문에 microseconds 까지 값을 보존한다. 사용 예시 SELECT TIME_TO_SEC('21:50:44'); -- > 78644 출처 TIME_TO_SEC Returns the time argument, converted to seconds. mariadb.com

    [MariaDB] STR_TO_DATE 내장함수를 사용해서 string 을 DATETIME 으로 변환하자.(feat. 사용예시)

    설명 MariaDB 에서는 STR_TO_DATE(str, format) 내장함수를 제공한다. str : string 형태의 입력값이다. format : format 형식의 string 입력값이다. ex) STR_TO_DATE('21:31:58', '%H:%i:%s') STR_TO_DATE 는 str 에 따라서 DATE, TIME 혹은 DATETIME 으로 반환하게 된다. 만약 str 을 시간, 날짜 형식의 값으로 입력하지 않게 되면 null 이나 syntax error 를 응답하게 된다. 사용 예시 특정 영상의 시간을 기록하는 테이블이 있다. 테이블에서는 videoLength 컬럼을 기록하고 있으며 그 형태는 'HH:mm:ss' 형태의 값이다. 테이블을 활용해서 영상의 총 시간에 대해 추출해보자. CRE..