본문 바로가기
반응형

java13

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 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.
java의 .class 파일의 맨 처음에는 CAFE BABE (카페 베이베) 가 적힌거 아시나요?, 파일 hex 값 보기 .class 파일의 맨 처음에는 CAFE BABE (카페 베이베) 가 적힌거 아시나요?hex editor로 .java 파일을 컴파일한 .class로 된 파일을 열어보면,아래와 같이 CAFEBABE로 시작하는 것을 확인할 수 있습니다.hex editor 확인방법vscode에서 ctrl + shift +x 버튼을 눌른 후, 플러그인 hex editor 플러그인을 설치해줍니다.vscode에 .class로 된 파일을 drag & drop 한 뒤, open anyway버튼 -> hex editor 를 선택하면, hex 값을 확인할 수 있습니다.CAFE BABE가 된 이유자바의 아버지 제임스 고슬링의 설명 :우리는 예전에 세인트 마이클스 앨리라는 곳에서 점심을 먹곤 했습니다. 지역 전설에 따르면 아주 먼 옛날 그레.. 2024. 9. 24.
Java 주요 버전별 spring / spring boot 호환성 java 버전에 따라 spring / spring boot 호환성 비교표Java 버전Java 출시일Java 지원종료일spring 지원버전spring boot 지원버전Java SE 8 (LTS)2014/03/18April 2019 for Oracle (extended : January 2032)November 2026 for Eclipse TemurinNovember 2026 for Red HatJuly 2027 for Amazon CorrettoDecember 2030 for AzulMarch 2031 for BellSoft LibericaSpring Framework 5.3.xSpring boot 2.4.x / 2.5.x / 2.6.x /2.7.xJava SE 11 (LTS)2018/09/25April.. 2024. 8. 4.
Java generic method, 자바 제네릭 메소드 예제, 제네릭 메소드 static 제네릭 메소드란?제네릭 메소드는 메소드의 선언 부에 적은 제네릭으로 리턴 타입과 파라미터의 타입을 정하는 메소드입니다.제네릭메소드의 예제 코드는 아래와 같습니다.public class Test { public T name(S param) { if(param instanceof String) { return param; } return null; } } 부분은 어떤 generic을 쓸 지에 대한 내용입니다.T는 임의의 class, S는 T를 extends한 class여야 함을 명시합니다.T name(S param) 부분에서는 앞선 정의에서 S 클래스를 parameter로 받고,T 클래스의 객체로 리턴한다는 뜻입니다.static generic method, 제네릭 메소드 static먼저, 결론적으로.. 2024. 7. 29.
mybatis(마이바티스)란, mybatis 사용하는 사유/이유, mybatis 장점/단점 1. 마이바티스(mybatis)란? "Java에서 DBMS에 엑세스하는 작업을 캡슐화하여 쉽게 사용할 수 있게 도와주는 Framework입니다." 마이바티스는 사용자 지정 SQL, 저장된 절차 및 고급 매핑을 지원하는 first class persistent 프레임워크입니다. 마이바티스는 JDBC 코드와 매개 변수의 수동 설정 및 결과 검색을 거의 모두 제거합니다. 마이바티스는 맵 프리미티브, 맵 인터페이스 및 Java Pojo (Plain Java Object) 를 위한 간단한 XML 또는 주석을 사용할 수 있습니다. 2. Mybatis 사용하는 이유? 왜 쓰고 있나? (mybatis의 장점) 1) 쿼리를 XML 로 분리 쿼리를 XML로 분리함으로써 아래와 같은 장점을 가질 수 있습니다. - 쿼리 수정.. 2021. 10. 31.
eclipse (이클립스) 사용후기 "개인적으로는 무난한 java 개발IDE" 1. 개발(코딩/디버깅 등)을 할 수 있는 IDE 2. Java 뿐만 아니라 다양한 언어 지원 : C, C++, ABAP, Ada, Haskell, Lasso, C#, Julia, JavaScript, Perl, Python, Fortran, Ruby, Rust, Scheme, Groovy, Erlang, and Clojure. 3. 다양한 플러그인. 개발된지 오래되어 다양하고 많은 플러그인이 개발되어 있다. 단점 1. 느리게 느껴질 수 있다. 제대로 쓸려면 플러그인을 여러가지 설치를 해야하는데, 플러그인 때문에 그런지 맨처음 IDE 로딩이나 동작환경등이 좀 느리게 느껴질 수 있다. 2. ram을 많이 잡아 먹는다. 이는 다른 프로그램들이 느려지게 한다. 3. .. 2021. 8. 27.
[Spring] spring framework 스프링 프레임워크 개발후기 "사실상 표준 자바 웹 프레임워크" 장점 1. 구조화된 틀에서 자바로 웹서버를 잘 개발할 수 있는 프레임워크다. 2. annotation을 활용한 코드의 단순화. 코드를 적게 작성할수있는게 너무나도 좋다! 3. 구축되어있는 구조에 코드를 넣어 개발하는 형태이기때문에 어느정도 품질이 어느정도 보장된다. 라고는 하지만 개발자에 따라서 스파게티 코드를 얼마든지 만들 수 있지 않을까 싶다. 단점 1. 초기 진입장벽이 높다. 처음 접하는 사람은 framework 구조를 파악하는것도 어렵고 좀 접해본 사람들은 AOP 등 관련된 내용 파악하는게 어렵고.. 알아야 하는게 끝이 없다~ 2. 설정파일이 너무 많다. XML 의 지옥! spring boot를 쓰면 좀 나은거 같다. 3. 구조화된 틀을 맞추려면 간단한 api를.. 2021. 8. 16.
SQL Developer 사용후기 "꽤나 쓸만한 무료 Oracle DB용 SQL IDE" 장점 1. 무료로 ORACLE DB object 들에 대해 CRUD 가능하다. 2. autocomplete 기능으로 자동완성가능. 3. GUI환경 제공으로 조작이 간편하다. 4. result 값을 csv, xml, sql 등으로 쉽게 export 가능하게 해준다. 5. 무설치, 파일복사로 바로 사용가능하며 portable 하다. 단점 1. Oracle 외 다른 DB 는 접속불가. oracle 말고 다른 DB를 쓰는 시스템에서는 무쓸모이고, MSA architecture에서는 다른 tool 들도 써야하기 때문에 불편할 수 있다. 2. Java application 이라서 살짝 느린점이 있는거 같다. 로딩할때가 제일 길긴한데, 익숙해지면 원래 그려려니 .. 2021. 7. 28.
반응형