SID, ServiceName

운영서버 세팅을하다가 운영DB 접속을 하는데 에러가 계속 나서 찾아보니 SID와 SERVICE NAME에 대한 오류였다….. SID와 SERVICE NAME 차이가 뭔지 잘 몰라서.. 정리를 해봤다. SID SID는 INSTANCE의 유니크한 이름. SID = DB 하나의 인스턴스 Service Name Service Name = 여러개의 인스턴스를 모아 하나의 서버 혹은 시스템을 구성한것 정리 DB 서버 한대에 인스턴스를 여러개 생성해서 PEMDM1 , PEMDM2 로 각각 생성했다. 그러면 각각 인스턴스는 PEMDM1, PEMDM2 라는...

Server

이번에 운영환경을 세팅하면서 헷갈렸던 용어나 새롭게 알게된 용어에 대해서 정리를 해봤다. Server 보통 서버라고 하면 웹서버와 웹 애플리케이션 서버 (WAS) 로 나누어진다. 이렇게 웹서버와 WAS로 나누어서 사용하는 이유는 효율성 때문이다. 웹 서버는 정적인 컨텐츠를 처리하며, WAS는 주로 동적인 컨텐츠 처리를 한다. L4 스위치 Layer 4 Switch의 약자로써, L4 스위치는 로드밸런싱(서버 부하 분산)을 처리하는 장비이다. 외부에서 들어오는 모든 요청은 서버가 아닌 L4 스위치를 거쳐야 하며 모든...

오라클 데이터값 오늘 날짜 조회

오라클 데이터값 오늘 날짜 조회 변경일은 DATE 형식이고 컬럼명은 LASTUPDATE_TIME 오늘 변경된 값만 조회하고 싶을 때, SELECT * FROM USER_TABLE WHERE TO_CHAR(LASTUPDATE_TIME,'YYYYMMDD') = TO_CHAR(SYSDATE,'YYYYMMDD') (조회해야하는데 생각이 안나서 적어놈)

언더바 표기법에서 카멜케이스로 변환

JdbcUtils.convertUnderscoreNameToPropertyName(String name) 프로젝트 연동테스트 진행 중에 Kafka SUB 관련해서 안되는 문제발생함... 원인은 카멜케이스로 보내줘야 deserialization가 된다고 한다. ( Deserialization - 역직렬화라는데 나중에 자세히 찾아보자.. ) 어쨌든 현재 우리는 언더파 표기법으로 Kafka에 PUB을 해주고 있었고 이게 잘못되어서 SUB중 deserialization가 실패하고 있었다.. 그래서 언더바표기법을 카멜케이스로 변환시켜주는 로직을 직접 구현하려고 했는데 혹시 몰라서 찾아보니 JdbcUtils.convertUnderscoreNameToPropertyName라는게 있었다..! JdbcUtils.convertUnderscoreNameToPropertyName(String name)을 호출하면 USER_NAME ==> userName 으로 반환해준다.

JPA Auditing

JPA Auditing이란? Audit은 감시하다, 감사하다라는 뜻으로 Spring Data JPA에서 시간을 자동으로 넣어주는 기능 도메인을 영속성 컨텍스트에 저장하거나 조회를 수행한 후에 update를 하는 경우 매번 시간 데이터를 입력하여 주어야 하는데, audit을 이용하면 자동으로 시간을 매핑하여 DB에 넣어준다. JPA Auditing 테스트 코드 BaseTimeEntity.java @Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public abstract class BaseTimeEntity { @CreatedDate private LocalDateTime createDate; @LastModifiedDate private LocalDateTime modifiedDate; } Posts.java @Getter @NoArgsConstructor @Entity public class Posts...

[Spring Boot] Cause: invalid source release: 11 에러 발생

Cause: invalid source release: 11 에러 발생 start.spring.io에서 자바 버젼을 11로 하고 배포 툴을 gradle로 설정 후 로컬에 셋팅 후 실행시 발생. 원인 gradle의 jvm설정이 11 이하 버젼인데 bulid.gradle에 sourceCompatibility의 설정이 11로 되어 있어서 발생. 해결 sourceCompatibility 값을 gradle의 설정 jvm값으로 변경. gradle jvm설정을 11로 올린다. setting -> build, excution, deployment -> bulid tools -> maven -> gradle -> gradle projects -> gradle jvm 에서...

Framework , Library , API

Framework , Library , API ? 프로젝트나 IT공부를 하다보면 Framework , Library , API 라는 용어가 계속해서 나온다. 한번 정리가 필요할 것 같아서 이번에 정리를 해봤다. Framework (프레임 워크) 프레임 워크는 개발자에게 일정 요소들과 틀(규칙, 규약)을 제공하여 특정 프로그램을 개발. 단어 뜻 그대로 뼈대. 개발자가 이 어느 정도의 뼈대를 제공받아 그 안에서 일관성, 생산성, 통합성을 늘릴 수 있다. 프레임 워크를 특정 프로그램을 만들기 위해서 상호...

property , yml

property , yml 프로젝트에 외부에서 특정 값들을 받아야 하는 경우가 있다. AWS나 외부 API를 사용하기 위한 secret key, API key가 이에 해당한다. 이러한 값들을 하드코딩하는 경우에는 보안에 취약하다. 따라서 이런 중요한 값들을 application.properties 또는 application.yml 의 외부 설정값을 관리하는 파일에 기록하여 사용한다. 즉, 두 파일 모두 외부 설정값 등을 관리하는 파일이다 외부 설정값을 관리하는 파일. 우선권은 properties가 먼저 갖고 있다. application.properties Spring boot 애플리케이션 프로젝트에서...

Maven, Gradle

Maven 장점 및 특징 자바 전용 프로젝트 라이프사이클 관리 목적 빌드 도구이며 Apache Ant 불편함을 해결하려고 만들어졌음. pom.xml을 이용한 정형화된 빌드 시스템(필요한 라이브러리를 정의해 놓으면 알아서 네트워크를 통하여 자동으로 다운받아줌) 간단한 설정을 통한 배포 관리 가능 Maven 설정파일 setting.xml 메이븐을 빌드할 때 의존 관계에 있는 라이브러리, 플러그인을 중앙 저장소에서 개발자 PC로 다운로드 하는위치(로컬저장소)의 기본 설정 'USER_HOME/.m2/repository' 인데 settings.xml의 에 원하는 로컬 저장소의 경로를 지정, 변경가능...

Optional 클래스

람다, 메서드 참조, Optional 클래스 소스분석을 하다가 Optional <CustDTO> ... CustDTO custDto = custEntity.map(custMapper::toCustDTO).orElse(null); 라는 소스를 봤는데 Optional, 세미콜론 두개와 map이라는 메소드.. 모르는것 투성이... 하나씩 검색을 해봤다. Optional 클래스 자바 NPE(NullPointException) 예방 반환 값으로 null을 사용하는 것이 위험하기 때문에 등장한 것이 Optional Optional는 null이 될 수도 있는 객체을 감싸고 있는 일종의 래퍼 클래스 Optional을 제대로 사용하기 위해서는 Stream처럼 사용해야 한다. Stream : 람다를 활용할 수...