요즘은 하나의 애플리케이션이라고 해도 다양한 형태로 서비스 됩니다. 간단한 쇼핑몰이라고 해도 웹 이외 모바일도 서비스해야 하고 외부 API를 제공해야 하고 관리자 사이트가 필요하며 배치 시스템 등도 만들어야 합니다. 서비스를 효율적으로 관리하고 재사용하기 위해서는 프로젝트를 멀티 모듈로 구성하는 것이 좋습니다. 서비스를 모듈화 할 때 gradle 또는 maven을 많이 이용하는데 그동안은 gradle을 많이 이용했는데 maven으로 해야 할 필요가 생겨 이번 기회에 정리하였습니다. 1. 목표 메이븐을 이용해서 멀티 모듈 프로젝트 구축하기 2. 환경 spring boot 2.5.5 java 1.8 eclipse 3. 프로젝트 구성 전체 구성은 3개의 레이어로 나뉘어 집니다. 공통으로 사용하는 라이브러리, ..
DB 설정과 관련해서 많은 속성들이 있는데 기본값은 무엇이며 어떻게 설정할지에 대해 잘 정리된 글이 있어 가져왔습니다. 아래 링크에 가셔서 내용 확인하시고 dasource 구성하실 때 참고하시면 큰 도움이 될거 같습니다. 출처 : https://github.com/brettwooldridge/HikariCP/wiki/MySQL-Configuration MySQL 최상의 성능을 위한 설정 prepStmtCache MySQL 드라이버가 연결당 캐시할 준비된 명령문의 수. 기본값은 25. 이 값을 250-500 사이로 설정하는 것이 좋습니다. prepStmtCacheSqlLimit 드라이버가 캐시할 준비된 SQL 문의 최대 길이로 기본값은 256입니다. Hibernate와 같은 ORM 프레임워크에서 기본값은 ..
Vuejs 관련 참고 사이트 Vuejs https://kr.vuejs.org/v2/guide/index.html Vue router https://router.vuejs.org/kr/installation.html Vuetify https://vuetifyjs.com/en/getting-started/installation/ Vee-validate https://vee-validate.logaretm.com/v2/guide/rules.html#after Numeral filter https://github.com/lloydjatkinson/vue-numeral-filter Vue dialog loading https://github.com/leyap/vue-dialog-loading/blob/master..
코드 작성시 다양한 표기법이 있습니다. 단어와 단어 사이를 어떻게 표기할 것인가에 따라 구분이 되어 집니다. 스테이크 표기법(snake case) 단어와 단어 사이를 "-"로 구분하며 DB에서 대소문자 구분이 없는 경우가 자주 사용이 되어 집니다. 예시 : snake_case_example 캐멀 표기법 (camel case) 자바 진영에서 표준처럼 이용이 됩니다. 단어와 단어가 연결될 때 첫글자를 대문자로 나머지는 소문자로 이루어 지며 첫번째 단어를 소문자로 합니다. 예시 : camelCaseExample 파스칼 표기법(pascal case) camel 표기와 유사하나 첫번째 단어를 대문자로 합니다. 클래스명 등에서 사용이 됩니다. 예시 : PascalCaseExample 케밥 표기법(kebab case..
실행시간 측정하는 3가지 방법 StopWatch - spring StopWatch stopWatch = new StopWatch(); stopWatch.start(); //... //... //... stopWatch.stop(); System.out.println("소요시간:"+stopWatch.getTotalTimeMillis()+"ms"); System.out.println(stopWatch.prettyPrint()); * apache comm-lang3에서도 제공되지만 둘다 thread safe 하지 않음 Instant Instant stime = Instant.now(); //... //... //... Instant etime = Instant.now(); System.out.println("..
Java Lambda 표현식 Lambda 표현식은 Java 8에서부터 추가되었습니다. 람다 식은 매개 변수를 받아 값을 반환하는 짧은 코드 블록으로 메서드와 비슷하지만 이름이 필요하지 않으며(익명함수) 메서드 본문에서 바로 구현할 수 있습니다. 여기서는 람다 표현식에 대한 Syntax만 정리하였습니다. 1. 인자가 없는 경우 1-1. 하나의 문장 처리 () -> expression body 1-1. 여러 문장 처리 () -> { expression body } 2. 파라미터(전달 인자)가 있는 경우 2-1. 하나의 문장 처리 (parameters) -> expression body // parameter가 하나인 경우 parameter -> expression body 1-1. 여러 문장 처리 (para..
콘솔에 출력한 내용을 테스트하는 예제 입니다. import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.function.Consumer; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; public class SysoutTest { final ByteArrayOutputStream outputStreamCaptor = new ByteArrayOutpu..
구글에서 검색해서 필요한 소스를 복사해서 사용할 때 static 함수 때문에 귀찮았던 경험이 있을 겁니다. 특히나 테스트 케이스에서 사용하는 import static은 잘 기억도 안나고 찾기도 힘들 때가 있습니다. 이런 때 쉽게 사용할 수 있는 두가지 방법이 있습니다. 첫번째, sysout, main 처럼 java template에 import static 구문을 등록해 놓고 필요한 경우 자동 생성해서 쓰는 방법. 두번째, java favorite에 즐겨쓰는 클래스를 등록하고 Code Assist를 통해서 import 받는 방법입니다. 첫번째 방법 자동으로 생성될 구문을 준비합니다. import static org.springframework.test.web.servlet.request.MockMvcRe..
확장자가 분명한 곳, 예를 들어 이미지 파일이나 엑셀 등은 통제하기 어렵지 않습니다. 그러나 게시판이나 이메일 첨부파일에는 허용하는 파일보다 허용하지 않는 파일을 통제해야 하는 경우도 있습니다. 실행 파일 확장자 확장자 내용 bat 배치파일 bin Binary Executable cmd 윈도우 명령 스크립트 com 명령 파일 cpl 제어판 확장 dll 데이터 파일 exe 실행파일 gadget Windows Gadget inf1 Setup Information File ins Internet Communication Settings inx InstallShield Compiled Script isu InstallShield Uninstaller Script job Windows Task Scheduler ..
개인정보보안이 강화되는 요즘 2차 보안 인증을 요구하는 시스템이 증가하고 있습니다. OTP(One Time Password)는 고정된 비밀번호가 아닌 무작위로 생성되는 일회용 비밀번호를 이용하는 본인 인증 수단입니다. 개인정보에 접근하는 시스템 또는 금융권 등에서 많이 사용하고 있습니다. OTP 동작 방식에는 시간 동기화 방식, 첼린지 응답 방식, 이벤트 동기화 방식 등이 있습니다. 대표적인 OTP 방식으로는 구글 OTP가 있습니다. 구글 OTP는 시간 동기화 방식(TOTP)과 HMAC 기반 일회용 비밀번호 알고리즘을 사용합니다. 구글 OTP 적용 Server Side 1. Security Key 생성 2. 바코드 생성 3. 화면 개발 : 보안 코드 입력 화면 개발 4. 보안 코드 유효성 체크 개발..
- Total
- Today
- Yesterday
- UI
- 엑셀
- ag grid
- mybatis
- listToMap
- spring
- 스프링부트
- 예제
- 타임리프
- lombok
- springboot
- java
- example
- oracle
- Javascript
- RESTful
- restful서비스
- SHEETJS
- 스프링
- 메시지
- cache
- AG-GRID
- thymeleaf
- mapToList
- REST
- 설정
- sample
- 샘플
- 그리드
- Spring Boot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |