본문 바로가기

전체 글

(23)
[ORACLE] Null 속성 이해 1. Null 값의 연산은 언제나 Null이다 - Null 값은 '공백이나 숫자 0' 과는 전혀 다른 의미 - '아직 정의되지 않은 미지의 값' 또는 '현재 데이터를 입력하지 못하는 경우'를 의미 - 주문 데이터 -주문번호주문금액주문취소금액1100,00020,000215,000 SELECT 주문금액 - 주문취소금액 COL1 , NVL(주문금액 - 주문취소금액, 0) COL2 , NVL(주문금액, 0) - NVL(주문취소금액, 0) COL3 FROM 주문  - SQL 수행 결과 -COL1COL2COL380,00080,00080,000 015,000 2. 집계함수는 Null 값을 제외하고 처리한다(1) SUM- 주문 데이터 -주문번호주문금액주문취소금액1100,000 215,000 340,00..
HikariCP 커넥션 지연 이슈 오라클 버전업 11g -> 19c 이후 HikariCP 커넥션 30초 지연이슈가 발생함 구글링을 통하여 urandom 변경 등 시도해봤지만 해결되지 않음 사용중이던 ojdbc8 버전이 19.3.0.0 이었는데 19.6.0.0 또는 그이상으로 변경시 해결됨 개발기도 환경은 동일한데 왜 운영기에서만 발생한건지는 확인하지 못함 * 실제 미들웨어나 서버 설정에 따라 pom.xml 등 디펜던시에 명시된 라이브러리가 사용되지 않을수 있음 예로 jeus에 기본적으로 별도 라이브러리 관리를 하고 해당 라이브러리를 참조해서 사용
[Spring] 동작 원리 Spring 동작 원리는 아래 그림과 같다. 1. DispatcherServlet : 최초 요청을 받는 역할 2. HandlerMapping : 해당 요청을 처리할 Controller를 찾는 역할 3. Controller : 비즈니스 로직을 처리(Service -> Repositoy -> Database)하고 뷰 정보를 담아서 리턴 4. ViewResolver : 실제 뷰를 찾는 역할 5. View : 화면 표시 처리 - 참고 : https://starkying.tistory.com/entry/Spring-MVC-%EB%8F%99%EC%9E%91%EC%9B%90%EB%A6%AC-%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C
[Spring] Transaction marked as rollbackOnly 스프링의 선언적 트랜잭션(@Transactional) 내부 메소드 내에서 예외를 잡아서 처리하는데 커밋될거라는 예상과 달리 Transaction marked as rollbackOnly 예외가 발생하면서 롤백되는 현상이 있었습니다. 상황 코드 @Service @Transactional public class AService { @Autowired private BService bService; public void test() { try { bService.runtimeExceptionTest(); } catch (RuntimeException re) { log.warn("BService RuntimeException", re.getMessage()); } } } @Service @Transactiona..
[면접] SOAP과 REST 차이점 1. SOAP(Simple Object Access Protocol) - HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메세지를 네트워크 상에서 교환하는 프로토콜 - 보안이나 메세지 전송 등에 있어서 표준들이 정해져있지만 복잡함 2. REST(Representational State Transfer) - 네트워크를 통해서 통신할 수 있게 해주는 아키텍처 스타일 - 웹에 최적화되어 있고, 데이터 포맷이 JSON으로 호환성이 좋음 * 비교 SOAP REST 프로토콜 SOAP HTTP 데이터 포맷 XML XML, JSON, 일반 텍스트 등 보안 WS-Security, SSL SSL, HTTPS 대역폭 많은 리소스 적은 리소스 데이터 캐시 사용불가 사용가능 페이로드 처리 엄격한 통신 규약, 미리 알려..
[면접] Java에서 String과 StringBuilder, StringBuffer 차이점 1. String - 한번 값이 할당되면 변하지 않는 불변(immutable) - 참조변수가 가리키는 곳을 변경(새로운 인스턴스가 생성)하고 기존 할당되어 있던 메모리 영역은 Garbage로 남아있다가 GC(Garbage Collection)에 의해 사라지게 됨 - 문자열이 변하지 않고 자주 읽어 들이는 곳에서 사용 2. StringBuilder, StringBuffer - 한번 값이 할당되더라도 다른 값이 할당되면 변하는 가변(mutable) - 문자열이 자주 변경되는 곳에서 사용 * StringBuilder와 StringBuffer 차이점 - StringBuilder는 동기화를 지원하지 않기 때문에 단일스레드 환경에서 적합 - StringBuffer는 동기화를 지원하여 멀티스레드 환경에서 Thread..
[면접] SQL Server와 Oracle 차이점 오늘 면접을 보는 과정에서 SQL Sever와 Oracle을 둘 다 사용해 봤는데 차이점이 어떤 것인지 질문을 받게 되어 정리해보고자 한다. 오래전 옵티마이저가 RBO, CBO로 다르다는 것을 들었던 기억이 있어서 답변을 했는데 나중에 찾아보니 모두 CBO인거 같다... 오라클 SQL Server 데이터베이스 생성 하나의 서버에 하나의 데이터베이스 하나의 서버에 여러개 데이터베이스 데이터 타입 정수형 : Number 문자형 : varchar2(10), nvarchar2(10) 날짜형 : date 정수형 : tinyint > smallint > int > bigint 문자형 : varchar(10), nvarchar(10) 날짜형 : Smalldatetime, datetime 테이블 생성 시 자동 증가 없..
[기타] MobaXterm 사용 오늘은 SSH 클라이언트 툴인 MobaXterm 사용 관련해서 간단하게 작성해봅니다. 이직하기전 대부분 윈도우 서버를 사용하여 SSH 클라이언트 툴을 사용해본 경험이 적었는데 이직하고 리눅스 서버를 사용하게되어 처음엔 putty를 설치해서 사용하다가 멀티접속하는 부분이 너무 불편해서 무료로 가능한 툴을 찾다가 MobaXterm을 발견하여 사용하게 되었습니다. MobaXterm은 SSH 뿐만 아니라 FTP 등도 바로 사용이 가능하여 편리한 부분이 있습니다. 공식홈페이지 - https://mobaxterm.mobatek.net MobaXterm free Xserver and tabbed SSH client for Windows The ultimate toolbox for remote computing - i..