본문 바로가기

Project/Table_of_Organization_Management_System

(15)
Flyway 사용해보기 flyway는 데이터베이스의 형상관리를 목적으로 사용한다. 마이그레이션 파일 flyway에서는 데이터베이스에 일어나는 모든 행위를 마이그레이션(migration) 이라고 표현합니다. 마이그레이션은 파일로 관리되어 지고, 파일의 이름은 지정하는 규칙은 아래와 같습니다. Prefix: V, U, R 중 하나를 입력하게 됩니다. V는 Verion, U는 undo, R은 Repeatable 입니다. Version: 버전 정보입니다. 정수, 소수, 날짜 등이 가능합니다. Seperator: __ ( underscore 2개를 이용합니다. ) Description: 추가되는 설명입니다. _ (underscore)가 space를 대신합니다. 위 규칙으로 파일을 만들면 아래와 같이 만들 수 있습니다. 예) V0__cr..
NEXUS - 사용해보기 현업에서는 여러가지 서비스들이 어우러지는경우가 많다. 때문에 공통로직을 한곳에 모아놓고 쓰는경우가 많은데, 이때 Gradle을 사용해서 private한 nexus repository에 jar형태로 deploy하는 방법을 정리해볼까 한다. Nexus 는 다양한 포맷(Maven, Docker, NPM 등)의 저장소를 지원하고, 현업에서는 Maven 에서 사용할 수 있는 가장 널리 사용되는 무료 저장소로 잘 알려져있다. 여기서는 두개의 프로젝트를 두고 한 프로젝트에서는 Nexus 에 배포하는 작업을 한 프로젝트에서는 Nexus 에 접근해 공통로직을 사용하는 실습을 진행해 보자. 1. Nexus 다운로드 다운로드 : https://help.sonatype.com/repomanager3/product-inform..
버전관리 project version - Semantic Versioning Semantic Versioning 원문 페이지 Semantic Versioning 2.0.0 Semantic Versioning spec and website semver.org 유의적 버전 명세는 그라바타(Gravatars)의 창시자이자 깃헙(GitHub)의 공동창업자인 톰 프레스턴-베르너(Tom Preston-Werner)가 작성했다. 유의적 버전 명세를 써야하는 이유 : 어떠한 형태로 정식 명세를 정해서 따르지 않는다면, 버전 번호는 의존성 관리에서 무의미하다. 이상의 아이디어에 이름을 정하고 명시적인 정의를 내림으로써, 소프트웨어 사용자에게 제작자의 의도를 전달하기 쉬워진다. 의도가 명확해야만, (너무 지나치지는 않은) 융통성 있는 의존성 명세를 만들 수 있다. 요약 : 버전을 MAIN.MINO..
Gradle Multi-Module구성하기 멀티 모듈을 사용하면 의존성 및 관심사의 분리를 통해 유지보수 및 개발에 있어서 프로젝트 구조의 이해 및 관리가 쉬워진다. 그림과 같은 Layered Architecture 설계가 가능해진다. Layered Architecture 의 핵심 원칙 같은 계층, 아래 계층 요소에만 의존성을 가지고 상위계층에는 의존성이 없어야 합니다. User Interface Layer : Front-End 사용자에게 정보를 보여주고, 사용자의 명령을 해석하는 일을 책임집니다. Application Layer 소프트웨어가 수행할 작업을 정의하고, 도메인 객체가 문제를 해결하게 합니다. 업무규칙이나 지식이 포함되지 않으며 오직, 작업을 조정하고 아래 계층의 도메인에 작업을 위임합니다. 업무상황을 반영하는 상태는 없지만, 사용자..
MySQL SQL 예약어를 확인하자 MySQL 예약어이다. ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE CASE CHANGE CHAR CHARACTER CHECK COLLATE COLUMN CONDITION CONSTRAINT CONTINUE CONVERT CREATE CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR DATABASE DATABASES DAY_HOUR DAY_MICROSECOND DAY_MINUTE DAY_SECOND DEC DECIMAL DECLARE DEFAULT DELAYED DELETE DESC DESCRIBE ..
BeanUtils 객체간 필드값을 복사하는 방법 객체를 필드값을 복사하는 방법은 여러가지가 있다. 그 중에서 스프링부트가 제공하는 두가지를 간단하게 소개하려한다. 첫번째는 BeanUtils.copyProperties 를 활용하는 방법이다. @Test void BeanUtils_를_활용() { Test1 test1 = new Test1("123","1234","1235","1236","1237","1238"); Test1 test2 = new Test2(); Long start1 = System.currentTimeMillis(); BeanUtils.copyProperties(test1,test2); Long end1 = System.currentTimeMillis(); System.out.println("test2 = " + test2); System..
@EqualsAndHashCode /* * Copyright (C) 2009-2020 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software,..