분류 전체보기
-
MyBatis - MyBatis의 <if> 태그Database/MyBatis 2022. 3. 21. 15:01
태그 태그의 활용 MyBatis의 태그는 조건식이 참인 경우 쿼리문을 실행한다. 전달받은 파라미터의 값에 따라 쿼리문을 동적으로 변할 수 있게 해 준다. 주로 where 절의 일보에 포함되어서 사용한다. 태그의 test 속성에는 논리 연산자를 사용한 조건식이 삽입된다. 태그 안에는 조건식이 true일 경우 실행되어야 할 쿼리문을 작성한다. 가장 흔히 사용되는 조건식은 아래 예제와 같이 파라미터의 값이 null 인지 체크하는 방식이다. SELECT * FROM board_table WHERE title LIKE '%' || #{title} || '%' OR content LIKE '%' || #{content} || '%' 위 코드에서는 content 파라미터의 값이 존재할 경우 태그 내부의 쿼리문이 실행..
-
MyBatis - DBMS 별 LIKE 문법Database/MyBatis 2022. 3. 21. 13:54
LIKE 검색 MyBatis 환경에서 파라미터를 통해 데이터를 조회하고자 하였다. 기존에 작성했었던 문법으로 LIKE 절을 사용하였으나, 원하는 결과를 얻지 못했다. 원인을 찾아본 결과 DBMS에 맞게 문자열 합치기 함수를 사용해야 한다는 것을 알게 되었다. 본인은 Oracle DBMS를 사용하면서 MySQL DBMS에 해당하는 문법을 사용한 것이었다. 아래는 DBMS의 대표적인 예인 MySQL, Oracle, MS-SQL에서 LIKE 문법을 사용하는 방법이다. MySQL SELECT * FROM table_name WHERE search_colum LIKE CONCAT('%', #{searchKeyWord}, '%') Oracle SELECT * FROM table_name WHERE search_co..
-
Spring Boot - JUnit이란?Framework & Library/Spring Boot 2022. 3. 13. 19:59
JUnit TDD란? Test Driven Development의 약자로 테스트 주도 개발이라는 의미를 가진다. 테스트를 먼저 설계 및 구축한 후 테스트를 통과할 수 있는 코드를 짜는 것을 말한다. 코드 작성 후 테스트를 진행하는 지금까지 사용된 일반적인 방식과 다소 차이가 있다. 애자일 개발 방식 중 하나로써, 코드 설계 시 원하는 단계적 목표에 대해 설정하여 진행하고자 하는 것에 대한 결정 방향의 차이를 줄이고자 하는 방법이다. 최초 목표에 맞춘 테스트를 구축하여 그에 맞게 코드를 설계하기 때문에 보다 적은 의견 충돌을 기대할 수 있다. 테스트 코드를 작성하는 목적 우선, 코드의 안정성을 높일 수 있다. 또한, 기능을 추가하거나 변경하는 과정에서 발생할 수 있는 부작용을 줄일 수 있다. 해당 코드가 ..
-
Java - staticLanguage/Java 2022. 3. 4. 13:24
static static이란? static은 고정된이라는 의미를 가지고 있으며, static 키워드를 통해 정적 필드와 정적 메서드를 만들 수 있다. 정적 필드와 정적 메서드는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버이기 때문에 클래스 로더가 클래스를 로딩해서 메서드 메모리 영역에 적재할 때 클래스별로 관리된다. 따라서 클래스의 로딩이 끝나는 즉시 바로 사용이 가능하며, 프로그램이 종료되기 전까지 사용할 수 있다. static 키워드를 통해 생성된 정적 멤버들은 heap 영역이 아닌, static 영역에 할당된다. static 영역에 할당된 메모리는 Garbage Collection의 관리 영역 밖에 존재하기 때문에 프로그램이 종료될 때까지 메모리에 값이 유지된 채로 존재하게 된다. ..
-
Java - 동일성(identity) & 동등성(equality)Language/Java 2022. 3. 3. 16:47
동일성(identity) & 동등성(equality) 동일성이란? 동일성은 동일하다는 뜻으로 두 개의 객체가 완전히 같은 경우를 의미한다. 여기서 완전히 같다는 뜻은 두 객체가 사실상 하나의 객체로 봐도 무방하며, 주소 값이 같기 때문에 두 변수가 같은 객체를 가리키게 된다. 위 사진에서 refVar1은 객체1을 가리키고 있고, refVar2와 refVar3는 객체2를 가리키고 있다. refVar2와 refVar3는 동일한 객체를 가리키고 있으므로, 두 변수는 동일하다고 이야기할 수 있다. 그리고 해당 변수가 동일한지 "==" 연산자를 통해 판별할 수 있다. 추가적으로, Primitive Type은 객체가 아니라 주소가 없으므로 "==" 연산자를 사용하였을 때 내용이 같으면 동일하다고 말한다. 동등성이란..
-
Java - Call by Value & Call By ReferenceLanguage/Java 2022. 2. 21. 13:23
Call by Value & Call by Reference Call by Value(값에 의한 호출) void function(int number) { number = 20; } void main() { int number = 10; function(number); printf("%d", number); // 출력되는 값은 10 } - 함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시공간이 생성되고, 종료 시 해당 공간이 사라진다. - 해당 호출 방식은 함수 호출 시 전달되는 변수 값을 복사해서 함수 인자로 전달한다. 이때, 복사된 인자는 함수 안에서 지역적으로 사용되기 때문에 local value의 속성을 가진다. - 따라서, 함수 안에서 인자 값이 변경되더라도, 외부 변수 값은 변경..