본문 바로가기
반응형

전체 글291

spring profile, 스프링 profile, spring 환경별 구성 다르게 하기, spring 설정방법, spring.profiles.active spring profile이란스프링 프로파일(Spring Profile)은 스프링 프레임워크에서 애플리케이션의 환경 설정을 구분하기 위한 기능입니다.프로파일은 애플리케이션을 실행할 때 선택할 수 있습니다.예를 들어, 개발 환경에서는 "dev" 프로파일을 선택하고,운영 환경에서는 "prod" 프로파일을 선택할 수 있습니다.예를 들어, 동일한 로직을 수행하는 스프링 app을 운영/개발 환경에 각각 배포하여,각각 운영/개발 db에 접속하고자 하는 경우, 아래와 같은 구조로 deploy 할 수 있습니다.@startuml component 운영환경 { component B as "spring app.jar" { component D as "dev profile" component E as "prod profile.. 2024. 11. 13.
maven dependency scope, provided, system, import, runtime, test maven dependency scopemaven의 dependency에는 scope란 속성을 정의하는 부분이 있는데, 어떤 것들이 있는지 잠깐 살펴보겠습니다.총 6가지의 scope를 지정할 수 있으며, 각각의 설명은 아래와 같습니다.compile기본 스코프로, 명시하지 않을 경우 사용됩니다.컴파일 종속성은 프로젝트의 모든 클래스 경로에서 사용할 수 있습니다.또한 이러한 종속성은 종속 프로젝트에도 전파됩니다. devscb devscb-lib 1.0.0provided컴파일과 비슷하지만 JDK 또는 컨테이너가 런타임에 종속성을 제공할 것으로 예상한다는 것을 나타냅니다.예를 들어 자바 엔터프라이즈 에디션(Java Enterprise Edition)용 웹 애플리케이션을 빌드할 때서블릿 API와 .. 2024. 11. 12.
maven local jar 추가 import , Maven Repository 없이 로컬 jar 파일을 maven project 에 추가하기, pom.xml 로컬 jar 파일 import하기 maven에서 local jar 추가 / import 하기1) 오프라인에서 빌드를 해야하거나,2) maven central repository에 존재하지 않는 jar를 추가해야할 경우가 있습니다.이럴 때, 로컬에 있는 jar를 import 해서 빌드하는 법을 공유드립니다.아래와 같이 pom.xml에 dependencies tag안에 dependency를 추가할때,scope 를 system으로 하고, systemPath에 jar의 위치를 입력해주시면 됩니다. devscb devscb-lib 1.0.0 system ${project.basedir}/lib/devscb-lib.jar${project.basedir} 는 프로젝트의 root 경로로,위의 예제에서는 프로젝트 root 경로.. 2024. 11. 11.
java jni란?, jni 사용하기, windows에서 jni사용하기, 윈도jni java jni란?jni는 Java Native Interface 입니다.Java에서 native 코드로 작성된 라이브러리를 연계해줄 수 있는 기술입니다.예를 들어, C나 C++같은 다른 코드로 작성된 라이브러리와 연계해주는 기술이라고 정의할 수 있습니다.Java는 기본적으로 JVM위에서 실행되기에 특정운영체제에 종속적이지 않는데요,모든 운영체제의 기능을 JVM에 담을 수 없기에 특정 OS의 기능을 실행하지 못하는 경우가 존재할 수 있습니다.이처럼 Java로 구현하기 힘든 기능에 대해 Native Code (예를 들어 C나 C++로 작성된 dll이나 so파일)를 사용할 수 있도록 하게 해주는 기능입니다.java코드에서는 native 키워드를 사용할 수 있으며, java 기본 라이브러리에서도 사용하고 있습.. 2024. 11. 10.
Java프로젝트에 lo4j2 적용하기 java진영의 로깅 라이브러리는 log4j2가 굉장히 효율적입니다. (https://devscb.com/post/253)그러나, 많이 사용되고 있는 springboot에서는 logback을 기본 로깅라이브러리로 사용하고 있습니다.단순히 dependency 추가하면 되는것 아닌가 싶지만, 바로 빌드가 안되던 경험이 있어서 공유합니다.maven을 사용할 경우pom.xml의 dependencys 엘리먼트 하위에 아래 내용을 추가해줍니다. org.springframework.boot spring-boot-starter-log4j2그런데, 이렇게만 하면 spring boot 실행시 다음과 같은 붉은 메시지를 확인할 수 있습니다.SLF4J: Class path contains multiple SLF4J bindin.. 2024. 11. 9.
java프로젝트에 log4j2를 도입해야하는 이유. 한줄요약log4j2는 java진영의 최신 로깅 라이브러리 이며 성능이 좋기에 도입을 추천드립니다.로깅라이브러리를 도입해야하는 이유일부 개발자는 개발하면서 system.out.println() 을 이용해서 로깅하시는 분들도 있습니다.하지만, sysout(System.out)은 로깅에 사용하면 성능상 좋지 않습니다.이유는 아래와 같습니다.System.out.println()과 System.out.print() 메서드는 내부적으로 write()랑 newLine()을 사용하는데,write()와 newLine()이 동기화(synchronized) 메서드이기에 성능이 저하됩니다.또한, 이 메소드는 Blocking I/O로 호출되기에,해당 메소드가 호출되는 시간동안 CPU가 놀게 되기 때문에 성능 저하의 원인이 됩니.. 2024. 11. 8.
IIS - w3wp.exe 메모리 부족에 대한 해결방안, 메모리제한 배경서버를 운영하다보면 어플리케이션 메모리 과다사용으로,서비스 중지 현상이 발생할 때가 있습니다.제가 업무로 운영하는 Windows IIS 서버에서는 이를 방지하기위해 별도의 솔루션을 통해 알람이 동작하게 되어있습니다.그런데, 최근 이러한 현상이 다량 발생되어 Windows 서버 - IIS 서버에서의 해결방안 일부를 소개하게 되었습니다.물리적 메모리(하드웨어 - RAM) 추가비용만 충분하다면 해당 방식이 가장 간편합니다.단순히 서버에 램을 추가하여 가용한 메모리 용량을 늘리는 방식입니다.IIS pool 메모리 제한비용 문제 등으로 인해 물리적으로 메모리를 추가할 수 없을때,간편히 문제를 해결할 수 있는 방안입니다.1) IIS에서 application pool을 선택합니다.한국어로는 애플리케이션 풀입니다... 2024. 11. 7.
open cover & report generator로 C# line coverage확인하기 (.net, .net framework) opencover 란?오픈커버(OpenCover)는 .NET / .NET Framework 애플리케이션의 코드 커버리지를 측정하는 도구입니다.코드 커버리지란, 프로그램이 실행될 때 실행된 코드의 비율을 의미합니다.이를 통해 개발자는 자신이 작성한 코드가 실제로 실행되는지 확인할 수 있으며, 테스트되지 않은 코드를 찾아내어 수정할 수 있습니다.report generator란?ReportGenerator는 coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov, lcov과 같이다양한 커버리지 결과파일을 사람이 읽을 수 있는 보고서로 변환합니다.이 보고서는 커버리지 비율을 보여주며, 소스 코드의 어떤 라인이 커버.. 2024. 10. 30.
.NET Framework C# NUnit 사용하기, NUnit 사용법, NUnit이란? NUnit 이란?NUnit은 .Net에 대한 단위 테스트 (유닛테스트) 프레임 워크입니다.사전세팅 : 테스트 대상 프로젝트 생성Visual Studio에서 File > New > Projet를 선택후, console app (.NET Framework) 을 선택해줍니다.프로젝트 명, 설치하려는 위치, 솔루션 명, framework 버전을 입력한 뒤, Create를 눌러줍니다. solution explorer에서 프로젝트를 우클릭 한 후, Add > New Item 을 누른 후,Caculator.cs 파일을 생성해줍니다.Calculator.cs파일 내용은 아래와 같이 작성해줍니다.단순히 더하는 기능만 수행하는 클래스입니다.public class Calculator { public int add(in.. 2024. 10. 26.
윈도우10 가상 데스크톱 사용법 윈도우 10 이 나온지 꽤 시간이 지났는데요,윈도우10 이후부터 생긴 가상 데스크톱 기능의 존재를 잘 모르시는 분들이 의외로 많아 이 기능을 소개하게 되었습니다.가상 데스크톱이란?가상 데스크톱을 한마디로 표현하면 "바탕화면의 확장"이라고 생각하면 쉽습니다.우리가 흔히 창(윈도우) 전환을 Alt + Tab만으로 이동하는데요,가상 데스크톱은 바탕화면 및 실행중인 프로그램 전체를 가상으로 분리시키는 기능을 갖고 있습니다.중요한 프로그램, 링크, 데이터를 모두 한 화면에 몰아넣지 않고 두 개 이상의 화면으로 분산할 수 있으며,마우스를 클릭하거나 키보드 단축키를 눌러 빠르게 화면 전환이 가능합니다.가상 데스크톱 사용법아래 단축키들을 모두 숙지하시고 한번 실행해보세요~Windows Key + Tab : 모든 가상 .. 2024. 10. 24.
oracle dbms_random 오라클 랜덤 값 생성하기 오라클에서는 랜덤한 값을 생성하기 위해 DBMS_RANDOM이란 패키지를 제공합니다.이 패키지 안에 있는 함수와 프로시저들을 알아보겠습니다.요약프로시저/함수설명NORAMAL 함수정규분포(가우스 분포)에서 특정한 숫자를 리턴합니다RANDOM 함수임의의 숫자를 리턴합니다SEED 프로시저seed값을 리셋합니다STRING 함수임의의 문자열을 리턴합니다VALUE 함수두 개의 숫자 파라미터 범위 내의 임의의 정수를 가져옵니다.NORAML 함수표준 정규 분포(가우스 분포)에서의 임의값을 추출하는 함수입니다.-- 프로토 타입DBMS_RANDOM.NORMALRETURN NUMBER;-- 쿼리 예SELECT DBMS_RANDOM.NORMAL FROM DUAL;-- 출력 예-- 1.0286383016781971869365.. 2024. 10. 22.
Python 으로 TextArt 그리기, asciiart, pyfiglet사용법 위와 같은 아스키 아트로 표현된 글자를 한번씩 보신적 있으실 겁니다.파이썬에서는 이런 글자를 손쉽게 생성해주는 라이브러리를 제공하는데요,바로 pyfiglet이라는 라이브러리를 사용하면 이러한 글자를 생성할 수 있습니다.사용방법은 매우매우 간단합니다.먼저, 아래와 같이 pyfiglet 모듈을 pip로 설치해줍니다.pip install pyfiglet그 다음 아래와 같이 파이썬 코드를 작성해줍니다.import pyfiglettext = "ASCII ART \n1,2,3,4,5,6,7,8,9,10"word = pyfiglet.figlet_format(text)print(word)그러면 아래와 같은 결과가 나옵니다. 아래와 같이, 폰트를 지정해줄 수 있기도 하며,renderText 함수를 이용해서도 표현할 수 .. 2024. 10. 20.
반응형