Development
-
API를 호출할 때 content-type으로 보통 application/json을 많이 사용한다. 몇몇 코드에서 content-type을 application/x-www-form-urlencoded로 지정하는 것을 보았는데 각각의 차이가 무엇이 있는지, 어떠한 경우에 구분해서 사용하는지 알아보자. application/x-www-form-urlencoded // x-www-form-urlencoded key1=value1&key2=value2 html form을 통한 POST 전송 방식 중 가장 기본이 되는 Content-Type 보내는 데이터를 url 인코딩 후 웹 서버에 보내는 방식 인코딩이 필요하기 때문에 크기가 큰 데이터에 대해 해당하는 방식으로 보내기가 적합하지 않다 x-www-form-url..
[Web] application/json & application/x-www-form-urlencodedAPI를 호출할 때 content-type으로 보통 application/json을 많이 사용한다. 몇몇 코드에서 content-type을 application/x-www-form-urlencoded로 지정하는 것을 보았는데 각각의 차이가 무엇이 있는지, 어떠한 경우에 구분해서 사용하는지 알아보자. application/x-www-form-urlencoded // x-www-form-urlencoded key1=value1&key2=value2 html form을 통한 POST 전송 방식 중 가장 기본이 되는 Content-Type 보내는 데이터를 url 인코딩 후 웹 서버에 보내는 방식 인코딩이 필요하기 때문에 크기가 큰 데이터에 대해 해당하는 방식으로 보내기가 적합하지 않다 x-www-form-url..
2024.05.29 -
SonarQube Docker Image https://hub.docker.com/_/sonarqube SonarQube Docker Compose 기본 이미지를 이용하면 sonarqube의 구성요소중에 DB에 해당하는 요소가 memory DB로 구성된다 image 정보에 sonarqube는 이미지의 이름이고 ":" 뒤에는 버전 정보이다 보통은 "10.3.0-community"와 같이 버전정보와 함께 사용된다 만약, 버전 정보를 적지 않은 경우에는 가장 최근에 버전 정보로 실행하게된다. 포트 정보로는 9000번은 UI에 접속하기 위한 포트 9092는 내부의 memoryDB인 H2 접속 포트 version: '3.8' services: sonarqube: image: sonarqube:community p..
[DevOps] SonarQube docker 설치SonarQube Docker Image https://hub.docker.com/_/sonarqube SonarQube Docker Compose 기본 이미지를 이용하면 sonarqube의 구성요소중에 DB에 해당하는 요소가 memory DB로 구성된다 image 정보에 sonarqube는 이미지의 이름이고 ":" 뒤에는 버전 정보이다 보통은 "10.3.0-community"와 같이 버전정보와 함께 사용된다 만약, 버전 정보를 적지 않은 경우에는 가장 최근에 버전 정보로 실행하게된다. 포트 정보로는 9000번은 UI에 접속하기 위한 포트 9092는 내부의 memoryDB인 H2 접속 포트 version: '3.8' services: sonarqube: image: sonarqube:community p..
2024.01.22 -
sonarqube는 프로그램 코드 정적 분석 도구이다 프로그램 코드 정적 분석 도구란 프로그램을 실행하지 않은 상태에서 소스 코드나 컴파일된 코드를 이용해 프로그램을 분석하는 방법 메모리 누수 또는 버퍼 오버플로우 등 일반적으로 알려진 오류 및 취약점 파악 및 표준 코딩 적용에 관한 내용 분석 변경된 코드에 관한 피드백 sonarqube 특징 github, jenkins와 같은 플랫폼과 연동하여 코드 관련 액션을 수행할 때 지속적인 코드 정적 분석을 위한 환경 제공 코드 정적 분석 내용 중앙화 관리 및 visuality 제공 사용자가 원하는 품질 요구사항 설정 가능 다양한 plugin을 제공하여 확장성 제공 sonarqube 구성 요소 sonarqube server database scanner Scan..
[DevOps] SonarQube란(코드 정적 분석 도구)sonarqube는 프로그램 코드 정적 분석 도구이다 프로그램 코드 정적 분석 도구란 프로그램을 실행하지 않은 상태에서 소스 코드나 컴파일된 코드를 이용해 프로그램을 분석하는 방법 메모리 누수 또는 버퍼 오버플로우 등 일반적으로 알려진 오류 및 취약점 파악 및 표준 코딩 적용에 관한 내용 분석 변경된 코드에 관한 피드백 sonarqube 특징 github, jenkins와 같은 플랫폼과 연동하여 코드 관련 액션을 수행할 때 지속적인 코드 정적 분석을 위한 환경 제공 코드 정적 분석 내용 중앙화 관리 및 visuality 제공 사용자가 원하는 품질 요구사항 설정 가능 다양한 plugin을 제공하여 확장성 제공 sonarqube 구성 요소 sonarqube server database scanner Scan..
2024.01.10 -
gradle-plugin을 이용해서 spring-boot image를 쉽게 만들 수 있다 해당 task에서 어떻게 image를 생성하는지 알아보자 https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/#build-image 해당 문서에서 알아보려고 하는 내용에 대해서 가이드 하고 있다 Packaging OCI Images The plugin can create an OCI image from a jar or war file using Cloud Native Buildpacks (CNB). Images can be built using the bootBuildImage task. gradle plugin에서는 C..
[Gradle] bootBuildImage task (buildpack, builder)gradle-plugin을 이용해서 spring-boot image를 쉽게 만들 수 있다 해당 task에서 어떻게 image를 생성하는지 알아보자 https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/#build-image 해당 문서에서 알아보려고 하는 내용에 대해서 가이드 하고 있다 Packaging OCI Images The plugin can create an OCI image from a jar or war file using Cloud Native Buildpacks (CNB). Images can be built using the bootBuildImage task. gradle plugin에서는 C..
2023.12.15 -
스프링 부트 애플리케이션에서 dependency를 관리하는 방법은 2가지이다 io.spring.dependency-management plugin 이용 gradle native bom 지원 이용 io.spring.dependency-management plugin plugin에서 제공하는 property를 이용하여 버전 등의 customizing 가능 plugin : https://plugins.gradle.org/plugin/io.spring.dependency-management plugins { id 'org.springframework.boot' version '2.7.17' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } depe..
[Gradle] dependency 관리 (related with maven bom)스프링 부트 애플리케이션에서 dependency를 관리하는 방법은 2가지이다 io.spring.dependency-management plugin 이용 gradle native bom 지원 이용 io.spring.dependency-management plugin plugin에서 제공하는 property를 이용하여 버전 등의 customizing 가능 plugin : https://plugins.gradle.org/plugin/io.spring.dependency-management plugins { id 'org.springframework.boot' version '2.7.17' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } depe..
2023.12.04 -
Gradle에서는 plugin 기능을 제공한다. 그중에서도 java, java-libray plugin은 기능은 자바 프로젝트를 빌드하는데 거의 필수적으로 필요한 plugin들이다. apply plugin: 'java' apply plugin: 'java-library' java-libray는 java를 상속받은 plugin으로 java plugin이 제공하는 모든 configuration을 제공한다 추가적으로, java-libray plugin이 api configuration 제공 api로 선언된 의존성은 소비자의 compile classpath와 runtime classpath 모두에 포함 implementation configuration은 내부에서 사용되는 의존성을 선언하는 데 사용 implem..
[Gradle] dependencies - implementation, apiGradle에서는 plugin 기능을 제공한다. 그중에서도 java, java-libray plugin은 기능은 자바 프로젝트를 빌드하는데 거의 필수적으로 필요한 plugin들이다. apply plugin: 'java' apply plugin: 'java-library' java-libray는 java를 상속받은 plugin으로 java plugin이 제공하는 모든 configuration을 제공한다 추가적으로, java-libray plugin이 api configuration 제공 api로 선언된 의존성은 소비자의 compile classpath와 runtime classpath 모두에 포함 implementation configuration은 내부에서 사용되는 의존성을 선언하는 데 사용 implem..
2023.11.29 -
리액티브 스트림즈(reactive streams)란 리액티브 라이브러리를 어떻게 구현할지 정의해 놓은 별도의 표준 사양 데이터 스트림을 non-blocking이면서 비동기적인 방식으로 처리하기 위한 리액티브 라이브러리의 표준 사양 그 구현체 예시 RxJava, Reactor.. 리액티브 스트림즈(reactive streams) 구성 요소 publisher : 데이터 생성하고 통지 subscriber : 구독한 publisher로 부터 통지된 데이터를 전달받아서 처리 subscription : publisher에 요청할 데이터의 개수를 지정, 데이터의 구독을 취소 processor : publisher + subscriber Publisher interface public interface Publishe..
[Reactive] Reactive Streams(리액티브 스트림즈)리액티브 스트림즈(reactive streams)란 리액티브 라이브러리를 어떻게 구현할지 정의해 놓은 별도의 표준 사양 데이터 스트림을 non-blocking이면서 비동기적인 방식으로 처리하기 위한 리액티브 라이브러리의 표준 사양 그 구현체 예시 RxJava, Reactor.. 리액티브 스트림즈(reactive streams) 구성 요소 publisher : 데이터 생성하고 통지 subscriber : 구독한 publisher로 부터 통지된 데이터를 전달받아서 처리 subscription : publisher에 요청할 데이터의 개수를 지정, 데이터의 구독을 취소 processor : publisher + subscriber Publisher interface public interface Publishe..
2023.11.13 -
reactive : 반응을 하는 reactive system 클라이언트의 요청에 즉각적으로 응답함으로써 지연 시간을 최소화하는 시스템 리액티브 선언문 설계 원칙 수단 - means message driven : 메시지 기반 통신 형성 - form elastic(탄력성) : 시스템의 작업량이 변화하더라고 일정한 응답을 유지하는 것을 의미 resilient(회복성) : 시스템에 장애가 발생하더라도 응답성을 유지하는 것을 의미 가치 - value responsive(응답성) : 어떠한 상황에서도 즉각적으로 응답 가능한 시스템을 구축 -> 빠른 응답성을 바탕으로 유지보수와 확장이 용이한 시스템 reactive programming 리액티브 시스템을 구축하는 데 필요한 프로그래밍 모델 리액티브 시스템의 설계 원..
[Reactive] Reactive Programming(리액티브 프로그래밍)reactive : 반응을 하는 reactive system 클라이언트의 요청에 즉각적으로 응답함으로써 지연 시간을 최소화하는 시스템 리액티브 선언문 설계 원칙 수단 - means message driven : 메시지 기반 통신 형성 - form elastic(탄력성) : 시스템의 작업량이 변화하더라고 일정한 응답을 유지하는 것을 의미 resilient(회복성) : 시스템에 장애가 발생하더라도 응답성을 유지하는 것을 의미 가치 - value responsive(응답성) : 어떠한 상황에서도 즉각적으로 응답 가능한 시스템을 구축 -> 빠른 응답성을 바탕으로 유지보수와 확장이 용이한 시스템 reactive programming 리액티브 시스템을 구축하는 데 필요한 프로그래밍 모델 리액티브 시스템의 설계 원..
2023.11.08