전체 글 148

[oracle] 패키지

패키지 : 프로시저 또는 함수 등 서브 프로그램을 하나로 묶어놓은 객체. 패키지는 컴파일을 거쳐서 실행되며, 다른 패키지를 참조, 실행할 수 있다. 패키지 장점: 모듈화 - 함수와 프로시저 등 서브 프로그램을 한 곳에 모아서 사용할 수 있으므로 관리 및 사용이 수월하다. 캡슐화 - 선언부만 외부에 공개되고, 본문은 감춰져 있기 때문에 접근을 제어하여 오용을 방지한다. 성능 - 패키지의 서브 프로그램 호출 시 패키지 전체가 메모리에 올라가 호출 시 더 나은 성능을 보인다. 패키지 선언부(package definition): 어떤 함수 또는 프로시저가 있는지 정의한다. 함수 또는 프로시저의 이름, 매개변수, 반환 타입 등을 작성한다. 세부 사항은 패키지 본문(package body)에서 작성한다. CREAT..

[oracle] 프로시저, 함수

오라클 프로시저, 함수 프로시저(procedure): 어떤 업무를 수행하기 위한 절차 프로시저 문법: CREATE OR REPLACE PROCEDURE 프로시저 이름 ( 매개변수명1 [ IN || OUT || INOUT ] 데이터타입, 매개변수명2 [ IN || OUT || INOUT ] 데이터타입 ... ) IS||AS 변수, 상수 등 선언 ( 선언부 ) BEGIN 실행 문장 ( 실행부 ) EXCEPTION 문장 --필수아님 END ; 프로시저 예제: 사번을 입력받아 급여를 인상하는 update_sal 프로시저 CREATE OR REPLACE PROCEDURE update_sal ( v_empno IN NUMBER ) IS BEGIN UPDATE emp SET sal = sal * 1.1 WHERE e..

[ORACLE] 시퀀스

오라클 시퀀스(sequence) : 자동으로 순차적으로 증가하는 순번을 반환하는 데이터베이스 객체이다. 새로운 ROW가 추가될 때 가장 큰 값에 1을 더하는 로직을 어딘가 추가해야하지만 시퀀스를 사용하면 이러한 로직이 필요 없다. 시퀀스가 필요한 이유 : 매번 최대 글번호를 확인하고 그 값보다 1 큰 값을 계산해 새로운 글 번호를 INSERT하려 하는경우에, 글 번호 column에 index가 생성되어 있다면 index_desc 등의 힌트로 쿼리의 속도 자체는 얼마 안 나올 수 있지만, 실제 서비스를 운영할 때는 이러한 쿼리를 한 번 실행한다는게 DISK IO를 계속 발생시키고 DB CONNECTION POOL을 한 개라도 더 사용하기 때문에 부담이 된다. 따라서 SEQUENCE 오브젝트로 값을 바로 I..

[리눅스] 톰캣 로그 설정(logrotate)

https://soonh.tistory.com/33 logrotate를 사용한 Tomcat 로그 관리 logrotate 란? 특정 파일을 일정 시점, 크기 등 지정된 조건에 따라서 백업해주는 명령어 [root@... etc]# whatis logrotate logrotate (8) - rotates, compresses, and mails system logs 사용방법 1. logrotate.. soonh.tistory.com /app/tomcat/logs/catalina.out { --> CATALINA_HOME 의 로그 경로 사용 copytruncate daily rotate 90 compress missingok notifempty dateext } 적용이 안 되는 상황이 생겼었는데(로그가 안 찍힘..

공부/리눅스 2022.07.05

[리눅스] ulimit 설정

https://joonyon.tistory.com/entry/Linux-5%EB%B6%84%EC%9D%B4%EB%A9%B4-%EA%B0%80%EB%8A%A5-ulimit-%ED%99%95%EC%9D%B8-%EB%B0%8F-%EC%84%A4%EC%A0%95-%EB%B0%A9%EB%B2%95feat-open-files [Linux] 5분이면 가능! ulimit 확인 및 설정 방법(feat. open files) 리눅스 시스템을 이용하다 보면 ulimit 이라는 설정을 변경해야하는 경우가 종종 발생하게 됩니다. 아마 병렬처리 프로그램이나 동시 접속자가 많은 서비스를 운영하시면 max user process 부족이나 o joonyon.tistory.com

공부/리눅스 2022.07.05

[spring] spring profiles 설정 정리

출처 : https://sgc109.github.io/2020/07/06/spring-profiles/ Profiles 을 사용하면 애플리케이션이 실행되는 환경에 따라 다른 Bean 들을 매핑할 수 있다. 예를 들어, 개발 환경, 스테이징 환경, 혹은 실 서비스 환경에 따라 다른 의존성을 주입할 수 있다. Profiles 구분하기 Bean 에 @Profile 붙이기 @Component @Profile("dev") public class DevDatasourceConfig 다음과 같이 특정 profile 이 active 하지 않을 때만 container 에 포함시킬 수도 있다. @Component @Profile("!dev") public class DevDatasourceConfig XML 에 정의하기 ..

[java] 동기와 비동기, 그리고 블럭과 넌블럭

https://musma.github.io/2019/04/17/blocking-and-synchronous.html 동기와 비동기, 그리고 블럭과 넌블럭 무릇 모든 개발자들, 아니 비단 개발자가 아니라 할지라도 컴퓨터 관련 산업계 종사자들이라면 오다 가다 한 번씩은 꼭 들어보고, 또 익혔음직한 내용이겠습니다. 이름하야, 동기(Synchronous)와 비 musma.github.io https://wbluke.tistory.com/50 CompletableFuture 톺아보기 CompletableFuture 학습 테스트 안녕하세요! 이번 포스팅에서는 학습 테스트를 통해 CompletableFuture를 알아보는 시간을 가져보려고 합니다. 모든 코드는 GitHub에 있으니 참고하시면 됩니다. Completa..

공부/자바 2022.06.27