본문 바로가기
반응형

전체 글1072

자바에서 ltrim과 rtrim 구현하기 정규 표현식을 사용하여 oracle 에 있는 trim 을 코드로 풀어낼수 있다. String result = s.replaceAll("^\\s+",""); // ltrim 예제 String result = s.replaceAll("\\s+$",""); // rtrim 예제 그밖에 다른 정규 표현식은 아래 참고 사이트를 확인하자. 참고 사이트 https://thenicesj.tistory.com/371 정규표현식(한글, 특수문자 지우기) 이전 포스팅에서 정규 표현식에 대한 글을 다룬적이 있다. 자세한 사항은 아래 참고 포스팅을 확인해보는것을 추천한다. 이번 포스팅에서는 파이선에서 re 를 import하여 정규표현식을 통해서 한 thenicesj.tistory.com https://thenicesj.tist.. 2023. 1. 7.
프로시져와 함수의 차이 데이터베이스에서 자주 접하는 프로시져와 함수가 있다. 이 둘의 차이와 정의를 알아볼 포스팅이다. 프로시져란? 넓은 의미로는 어떤 업무를 수행하기 위한 절차를 뜻한다. 예를들어 계좌 송금이라면 1. 상대방 계좌를 입력하고 2. 내 계좌에 금액이 충분한지 확인하고 3. 내 계좌에서 돈이 빠지고 4. 상대방 계좌로 돈이 입금 되는 이런 순서가 있다. 이처럼 프로세스를 절차적으로 기술이 된것을 프로시저라고 한다. 함수란? 프로시저의 각 프로세스를 수행하기 위해 필요한 기능들을 함수라고 한다. 예를들어 내 계좌에 금액이 충분한지 체크 등 이런 기능들이 함수가 된다. 문법의 차이는 다음과 같다. 프로시저 문법 CREATE OR REPLACE PROCEDURE 프로시저 이름 ( 매개변수명1 [ IN || OUT ||.. 2023. 1. 6.
call by value / call by reference 자바에서는 함수를 호출할때 2가지 방법이 있다. 1. call by value (값에 의한 호출) 함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시 공간이 생성된다. (c++의 경우 stack frame) 함수가 종료되면 해당 공간은 사라진다. 함수 호출시 전달되는 변수의 값을 복사하여 함수의 인자로 전달한다. 복사된 인자는 함수 안에서 지역적으로 사용하는 변수이다. JAVA의 경우 함수에 전달되는 인자의 데이터 타입에 따라서 (기본자료형 / 참조자료형 ) 함수 호출 방식이 달라짐 기본 자료형 : call by value 로 동작 (int, short, long, float, double, char, boolean) 참조 자료형 : call by reference 로 동작 (Array, .. 2023. 1. 5.
findBy 비교 조건들 이전 포스팅에서 조건들을 몇개 올린적이 있다. 근데 해당 조건들은 대부분 equals 조건들이었다. 자세한 내용은 아래 참고 포스팅을 참고 하자. 이번 포스팅은 equals 을 포함해서 비교 연산자까지 있는 조회 조건을 나열 하려고 한다. 저번 포스팅에서 중복된 내용도 있지만, 공식 홈페이지에 있는 내용이니 아래 내용을 참고하는것이 좀더 좋을것 같다. https://docs.spring.io/spring-data/jdbc/docs/current/reference/html/#jdbc.query-methods.at-query Spring Data JDBC - Reference Documentation Example 10. Repository definitions using domain classes with.. 2023. 1. 4.
Constructor Injection 방식을 권장하는 이유 이전 포스팅에서 autowired 방식과 requiredArgConstructor를 사용하여 final로 변수 선언하여 의존성 주입하는 방법에 대해서 다룬 글이 있다. 자세한 내용은 아래 참고 포스팅을 확인하길 바란다. 이 포스팅에서는 좀더 심화되게 Constructor Injection 방식을 권장하는 이유에 대해서 다뤄보려고 한다. 일단 스프링부트에서는 Constructor Injection 방식이 단일 생성자이면서 , 그 생성자의 파라미터가 빈 일경우 스프링이 자동으로 주입을 해준다고 하고, 그럼으로써 @Autowired를 사용하지 않아도 되게 된다. 일단 의존성 주입의 방법은 3가지가 있다. 생성자 주입(Constructor Injection) 필드 주입(Field Injection) 세터 주입(.. 2023. 1. 3.
Redis vs Memcached Redis(Remote Dictionary Storage, 레디스)와 Memcached(맴캐시드)는 유명한 오픈소스인, 인메모리 데이터 저장소이다. 둘 모두 사용하기 쉽고, 고성능을 자랑하지만, 엔진으로 사용할 때 차이를 반드시 고려해야한다. Memcached는 명료하고 단순함을 위하여 개발된 반면, Redis는 다양한 용도에 효과적으로 사용할 수 있도록 많은 특징을 가지고 개발되었다. 각 엔진들이 제공하는 기능과 필요한 상황을 고려하여 필요에 맞게 선택을 할수 있다. 공통점 1ms 이하의 응답대기시간 1ms 이하의 응답시간을 제공합니다. 데이터를 메모리에 저장하기 때문에, 디스크 기반의 데이터베이스보다 빠르게 데이터를 읽을 수 있음 개발의 용이성 문법적으로 사용하기 쉽고, 개발코드 양 또한 적음 데이터.. 2023. 1. 2.
spring boot에서 actuator 사용하기 Spring actuator 란? 일단 공식 문서에서는 아래와 같이 정의 되어있다. Spring Boot includes a number of additional features to help you monitor and manage your application when you push it to production. You can choose to manage and monitor your application by using HTTP endpoints or with JMX. Auditing, health, and metrics gathering can also be automatically applied to your application. 번역을 하면 이렇다. Spring Boot에는 애플리케이션.. 2023. 1. 1.
트랜잭션 격리 수준(isolation level) 트랜잭션 격리수준(isolation level)이란 동시에 여러 트랜잭션이 처리될 때, 트랜잭션 간 얼마나 서로 고립되어 있는지 즉, 특정 트랜잭션이 다른 트랜잭션에 변경한 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것 격리수준은 아래의 4개로 나뉜다. READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE 아래로 내려갈수록 트랜잭션간 고립 정도가 높아지며, 성능이 떨어지는 것이 일반적이다. 일반적인 온라인 서비스에서는 READ COMMITTED나 REPEATABLE READ 중 하나를 사용한다. (oracle = READ COMMITTED, mysql = REPEATABLE READ) READ UNCOMMITTED READ UNCOMMITTED.. 2022. 12. 31.
vscode 에서 확장 설치 하기(VSIX / Extension) vscode를 사용하는데 회사 등 사내망에서 사용을 하게 될 경우 마켓플레이스에서 설치를 못하게 된다. 그럴 경우 오프라인으로 설치를 할수 있는데 extension파일을 받아와서 설치하는 것이다. 먼저 .vsix 파일을 받아와야한다. 인터넷이 되는 피시에서 아래 사이트를 접속하고 원하는 확장 프로그램을 검색해서 다운로드한다. https://marketplace.visualstudio.com/ Visual Studio Marketplace Extensions for Visual Studio family of products on Visual Studio Marketplace marketplace.visualstudio.com 그리고 아래 그림처럼 위에 vscode를 선택후 파일을 검색해서 들어간다. 그리고.. 2022. 12. 30.
반응형