기본 콘텐츠로 건너뛰기

2021의 게시물 표시

Swagger 설치 및 설정 기초

Swagger 설치 및 설정 기초 1. 소개 OpenAPI Specification - REST API를 정의하는 형식에 대한 규격이며 이전에는 Swagger Specification이라고 하였습니다. Swagger Tool - OpenAPI를 정의할 수 있는 편집기, API를 테스트할 수 있는 UI 등을 포함하고 있습니다. 2. REST API 서버 Swagger Tool로 테스트하고자 하는 API 서버를 실행합니다. API 서버의 URL이 다음과 같다고 가정합니다. URL: http://{server-addr}:8080/api 3. Swagger Editor 3.1. Swagger Editor 다운로드 GitHub 에서 다운로드합니다. 다운로드한 파일의 압축을 풉니다. 이후부터 압축을 푼 폴더를 {editor-dir} 로 표기합니다. 3.2. 브라우져에서 직접 열기 브라우져에서 {editor-dir}/index.html 파일을 엽니다. 이전에 작성해 두었던 API 정의 파일이 있으면 File -> Import file 메뉴를 통해서 불러 옵니다. 3.3. Node.js를 사용하여 서버로 띄우기 Node.js를 설치합니다. http-server 모듈을 설치하고 시작합니다. npm install -g http-server http-server -p 8061 {editor-dir} 브라우져에서 http://localhost:8061 주소를 엽니다. 이전에 작성해 두었던 API 정의 파일이 있으면 File -> Import file 메뉴를 통해서 불러 옵니다. 3.4. 도커로 띄우기 3.4.1. 설치 및 실행 도커 이미지를 설치합니다. sudo docker pull swaggerapi/swagger-editor 도커 이미지를 실행합니다. # 백그라운드 모드로 도커 이미지 실행 sudo docker run -d -p 80...

Tomcat 9 HTTPS 설정 기초

Tomcat 9 HTTPS 설정 기초 1. 개요 1.1. 목적 Tomcat 서버에 HTTPS 연결을 추가하는 방법에 대하여 설명합니다. 1.2. 환경 운영체제: Windows 10 Java 버전: 8 Tomcat 버전: 9 1.3. 표기 다음 세 개의 값은 원하는 다른 값으로 지정할 수 있습니다. your-alias your-file your-password 2. 키 저장소 및 키 생성 키 저장소와 키를 생성합니다. 키 비밀번호를 입력하는 단계에서 비밀번호를 입력하지 말고 그냥 Enter 키를 누릅니다. Tomcat에서 사용하기 위해서는 키 저장소와 키의 비밀번호가 같아야 합니다. >keytool -genkey -alias your-alias -keyalg RSA -keystore your-file.keystore 키 저장소 비밀번호 입력: 새 비밀번호 다시 입력: 이름과 성을 입력하십시오. [Unknown]: TOMCAT 조직 단위 이름을 입력하십시오. [Unknown]: TOMCAT 조직 이름을 입력하십시오. [Unknown]: TOMCAT 구/군/시 이름을 입력하십시오? [Unknown]: SEOUL 시/도 이름을 입력하십시오. [Unknown]: SEOUL 이 조직의 두 자리 국가 코드를 입력하십시오. [Unknown]: 82 CN=TOMCAT, OU=TOMCAT, O=TOMCAT, L=SEOUL, ST=SEOUL, C=82이(가) 맞습니까? [아니오]: 예 ​ <your-alias>에 대한 키 비밀번호를 입력하십시오. (키 저장소 비밀번호와 동일한 경우 Enter 키를 누름): ​ Warning: JKS 키 저장소는 고유 형식을 사용합니다. "keytool -importkeystore -srckeystore your-file.keystore -destkeyst...

Spring Web + MyBatis + MySQL + Tomcat 사용 기초

Spring Web + MyBatis + MySQL + Tomcat 사용 기초 사용 환경 Windows 10 Java 1.8 Gradle 7.2 Spring Boot 2.5.6 MyBatis 2.2.0 MySQL 5.7 Tomcat 9, 10 프로젝트 따라하기 프로젝트 생성 브라우져에서 spring initializr 를 방문하여 아래와 같이 입력하고 GENERATE 버튼을 클릭합니다. Project: Gradle Project Language: Java Spring Boot: 2.5.6 Project Meta: Group: trvoid Artifact: mysql-mybatis Name: mysql-mybatis Package name: trvoid.mybatis Packaging: War Java: 8 Dependencies: Spring Web JDBC API MyBatis Framework MySQL Driver 생성된 프로젝트 파일을 다운로드하여 압축을 풉니다. 프로젝트 폴더 구조는 아래와 같습니다. mysql-mybatis |-src |-main |-java |-trvoid.mybatis |-MysqlMybatisApplication.java |-ServletInitializer.java |-resources |-application.properties |-test |-java |-trvoid.mybatis |-MysqlMybatisApplicationTests.java |-build.gradle |-gradlew.bat build.gradle plugins { id 'org.springframework.boot' version '2.5.6' id ...

Spring Web + Tomcat 사용 기초

Spring Web + Tomcat 사용 기초 사용 환경 Windows 10 Java 1.8 Gradle 7.2 Spring Boot 2.5.6 Tomcat 9, 10 프로젝트 따라하기 프로젝트 생성 브라우져에서 spring initializr 를 방문하여 아래와 같이 입력하고 GENERATE 버튼을 클릭합니다. Project: Gradle Project Language: Java Spring Boot: 2.5.6 Project Meta: Group: trvoid Artifact: war-api Name: war-api Package name: trvoid.api Packaging: War Java: 8 Dependencies: Spring Web 생성된 프로젝트 파일을 다운로드하여 압축을 풉니다. 프로젝트 폴더 구조는 아래와 같습니다. war-api |-gradle |-src |-main |-java |-trvoid.api |-ServletInitializer.java |-WarApiApplication.java |-resources |-application.properties |-test |-java |-trvoid.api |-WarApiApplicationTests.java |-build.gradle |-gradlew.bat build.gradle plugins { id 'org.springframework.boot' version '2.5.6' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'war' ...

Gradle 사용 기초

Gradle 사용 기초 Gradle을 자주 사용하지 않는 상황에서 필요할 때 참조하기 위하여 이 문서를 작성합니다. Gradle 설치 다운로드 사이트: https://gradle.org/releases/ 이 문서 작성에 사용한 Gradle 버전: 7.2 프로젝트 생성 및 빌드 프로젝트 폴더 생성 >mkdir demo >cd demo 프로젝트 생성 >gradle init Starting a Gradle Daemon (subsequent builds will be faster) Select type of project to generate: 1: basic 2: application 3: library 4: Gradle plugin Enter selection (default: basic) [1..4] 2 Select implementation language: 1: C++ 2: Groovy 3: Java 4: Kotlin 5: Scala 6: Swift Enter selection (default: Java) [1..6] 3 Split functionality across multiple subprojects?: 1: no - only one application project 2: yes - application and library projects Enter selection (default: no - only one application project) [1..2] 1 Select build script DSL: 1: Groovy 2: Kotlin Enter selection (default: Groovy) [1..2] 1 Select test framework: 1: JUnit 4 2: TestNG 3: Spock 4: JUnit Jupiter Enter selection (default: JUnit Ju...

Guava BloomFilter 사용 기초

Guava BloomFilter 사용 기초 사용 환경 Windows 10 Java 1.8 Gradle 7.2 Spring Boot 2.5.4 Oracle DB 19 MyBatis 2.2.0 프로젝트 생성하기 프로젝트 생성 브라우져에서 spring initializr 를 방문하여 아래와 같이 입력하고 GENERATE 버튼을 클릭합니다. Project: Gradle Project Language: Java Spring Boot: 2.5.5 Project Meta: Group: trvoid.bloomfilter Artifact: bloom-filter Name: bloom-filter Package name: trvoid.bloomfilter Packaging: Jar Java: 8 Dependencies: JDBC API MyBatis Framework Oracle Driver 생성된 프로젝트 파일을 다운로드하여 압축을 풉니다. 프로젝트 폴더 구조는 아래와 같습니다. bloom-filter |-src |-main |-java |-trvoid.bloomfilter |-BloomFilterApplication.java |-resources |-application.properties |-test |-java |-trvoid.bloomfilter |-BloomFilterApplicationTests.java |-build.gradle build.gradle 파일에서 의존성 항목을 확인할 수 있습니다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.mybatis.sprin...

Spring + MyBatis + Oracle 사용 기초

Spring + MyBatis + Oracle 사용 기초 사용 환경 Windows 10 Java 1.8 Maven 3.8.2 Spring Boot 2.5.4 Oracle DB 19 MyBatis 2.2.0 Hello 프로젝트 따라하기 프로젝트 생성 브라우져에서 spring initializr 를 방문하여 아래와 같이 입력하고 GENERATE 버튼을 클릭합니다. Project: Maven Project Language: Java Spring Boot: 2.5.4 Project Meta: Group: trvoid.mybatis Artifact: basic-mybatis-example Name: basic-mybatis-example Package name: trvoid.mybatis Packaging: Jar Java: 8 Dependencies: JDBC API MyBatis Framework Oracle Driver 생성된 프로젝트 파일을 다운로드하여 압축을 풉니다. 프로젝트 폴더 구조는 아래와 같습니다. hello |-src |-main |-java |-trvoid.mybatis |-BasicMybatisExampleApplication.java |-resources |-application.properties |-test |-java |-trvoid.mybatis |-BasicMybatisExampleApplicationTests.java |-pom.xml pom.xml 파일에서 의존성 항목과 빌드 플러그인을 확인할 수 있습니다. <dependencies> <dependency> <groupId>org.springframework.boot</groupId> ...

Spring + JdbcTemplate + Oracle 사용 기초

Spring + JdbcTemplate + Oracle 사용 기초 사용 환경 Windows 10 Java 1.8 Maven 3.8.2 Spring Boot 2.5.4 Oracle DB 19 Hello 프로젝트 따라하기 프로젝트 생성 브라우져에서 spring initializr 를 방문하여 아래와 같이 입력하고 GENERATE 버튼을 클릭합니다. Project: Maven Project Language: Java Spring Boot: 2.5.4 Project Meta: Group: trvoid.jdbc Artifact: basic-jdbc-example Name: basic-jdbc-example Package name: trvoid.jdbc Packaging: Jar Java: 8 Dependencies: JDBC API, Oracle Driver 생성된 프로젝트 파일을 다운로드하여 압축을 풉니다. 프로젝트 폴더 구조는 아래와 같습니다. hello |-src |-main |-java |-trvoid.jdbc |-BasicJdbcExampleApplication.java |-resources |-application.properties |-test |-java |-trvoid.jdbc |-BasicJdcExampleApplicationTests.java |-pom.xml pom.xml 파일에서 의존성 항목과 빌드 플러그인을 확인할 수 있습니다. <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</ar...

Maven + Spring 파일 업로드 기초

Maven + Spring 파일 업로드 기초 사용 환경 Windows 10 Java 1.8 Maven 3.8.2 Spring 5.0.6 Hello 프로젝트 따라하기 프로젝트 생성 브라우져에서 spring initializr 를 방문하여 아래와 같이 입력하고 GENERATE 버튼을 클릭합니다. Project: Maven Project Language: Java Spring Boot: 2.5.4 Project Meta: Group: trvoid Artifact: file-upload Name: File Upload Package name: trvoid.fileupload Packaging: Jar Java: 8 Dependencies: Spring Web 생성된 프로젝트 파일을 다운로드하여 압축을 풉니다. 프로젝트 폴더 구조는 아래와 같습니다. hello |-src |-main |-java |-trvoid.fileupload |-FileUploadApplication.java |-test |-java |-trvoid.fileupload |-FileUploadApplicationTests.java |-pom.xml pom.xml 파일에서 의존성 항목과 빌드 플러그인을 확인할 수 있습니다. <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> ...

Maven + Spring @RestController 사용 기초

Maven + Spring @RestController 사용 기초 사용 환경 Windows 10 Java 1.8 Maven 3.8.2 Spring 5.0.6 Hello 프로젝트 따라하기 프로젝트 생성 브라우져에서 spring initializr 를 방문하여 아래와 같이 입력하고 GENERATE 버튼을 클릭합니다. Project: Maven Project Language: Java Spring Boot: 2.5.4 Project Meta: Group: trvoid Artifact: rest Name: rest Package name: trvoid Packaging: Jar Java: 8 Dependencies: Spring Web 생성된 프로젝트 파일을 다운로드하여 압축을 풉니다. 프로젝트 폴더 구조는 아래와 같습니다. hello |-src |-main |-java |-trvoid |-RestApplication.java |-test |-java |-trvoid |-RestApplicationTests.java |-pom.xml pom.xml 파일에서 의존성 항목과 빌드 플러그인을 확인할 수 있습니다. <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.s...

Gradle + Spring 사용 기초

Gradle + Spring 사용 기초 사용 환경 Windows 10 Java 1.8 Gradle 7.2 Spring 5.0.6 Hello 프로젝트 따라하기 프로젝트 생성 >gradle init 선택 항목 Starting a Gradle Daemon (subsequent builds will be faster) Select type of project to generate: 1: basic 2: application 3: library 4: Gradle plugin Enter selection (default: basic) [1..4] 2 Select implementation language: 1: C++ 2: Groovy 3: Java 4: Kotlin 5: Scala 6: Swift Enter selection (default: Java) [1..6] 3 Split functionality across multiple subprojects?: 1: no - only one application project 2: yes - application and library projects Enter selection (default: no - only one application project) [1..2] 1 Select build script DSL: 1: Groovy 2: Kotlin Enter selection (default: Groovy) [1..2] 1 Select test framework: 1: JUnit 4 2: TestNG 3: Spock 4: JUnit Jupiter Enter selection (default: JUnit Jupiter) [1..4] 1 Project name (default: hello-gradle): hello Source package (default: hello): trvoid...

Maven + Spring 사용 기초

Maven + Spring 사용 기초 사용 환경 Windows 10 Java 1.8 Maven 3.8.2 Spring 5.0.6 Hello 프로젝트 따라하기 프로젝트 생성 >mvn archetype:generate -DgroupId=trvoid -DartifactId=hello -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false 생성된 프로젝트 폴더 구조는 아래와 같습니다. hello |-src |-main |-java |-trvoid |-App.java |-test |-java |-trvoid |-AppTest.java |-pom.xml 의존성 추가 pom.xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.0.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.6.RELEASE</version> </dependency> 서비스 추가 src/main/java/trvoid/HelloManager.java package trvoid; public interface HelloManager { public String getService...

당뇨병 발병 예측 - Gaussian Naive Bayes 모델

diabetes-onset-by-gaussian-nb 당뇨병 발병 예측 - Gaussian Naive Bayes 모델 ¶ 이 글에서는 피마 인디언 당뇨병 데이터세트를 사용하여 어떻게 당뇨병 발병을 예측할 수 있는지 베이지안 추론 방식으로 보여줍니다. 이 글의 전개 과정은 아래와 같습니다. 당뇨병 발병 데이터세트를 준비합니다. 발병 여부별로 측정값의 히스토그램을 그려서 분포를 파악합니다. 발병 여부에 따라서 측정값이 어떻게 분포할 수 있는지 설명하는 모델을 정의합니다. 측정값이 주어질 때 발병 여부를 예측하는 분류기를 구현합니다. 데이터 세트를 훈련 데이터와 검증 데이터로 나누어 분류기를 훈련시키고 예측 성능을 구합니다. 라이브러리 준비 ¶ 사용할 파이썬 라이브러리들을 임포트합니다. In [23]: from collections import defaultdict import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from scipy.stats import norm import matplotlib.pyplot as plt % matplotlib inline np . set_printoptions ( precision = 6 ) np . random . seed ( 7 ) 데이터 준비 ¶ UCI Machine Learning 에서 제공하는 Pi...