Programming

Mybatis - foreach 사용법 및 예제 간혹 동적 쿼리를 이용하는데 sql을 여러번이용해 Data를 List형태로 꺼낼때가 효율성이 떨어질 때가 있다. 우리는 효율적인 프로그래밍을 지향하기 때문에 반복해서 쿼리를 수행하는 것에 대해 조금 더 효율적인 방법을 생각하고 이행할 필요가 있다. 오늘은 Mybatis에 foreach문법에 대해 기록할 것이다. 💡 Mybatis 문법 foreach문법을 사용하기 전 각 문법 형태 collection 전달받은 인자 값 - List나 Array형태만 가능 item 전달받은 인자 값의 alias 명 open 해당 구문이 시작될 때 삽입할 문자열 close 해당 구문이 종료될 때 삽입할 문자열 separator 반복 되는 사이에 삽입할 문자열 index 반복되는 ..
[Java] Stream - 자바 스트림 개념 및 사용법 💡 자바 스트림 (Stream ) 자바의 스트림(Stream)은 Java 8에 추가된 기능이다. 컬렉션에 저장되어 있는 요소들을 하나씩 참조하여 람다식으로 처리할 수 있도록 해주는 코드패턴(반복자)이다. 스트림은 람다식과 함께 사용되기때문에 데이터에 대한 처리를 매우 간결하게 작성할 수 있다는 장점과 내부 반복자라는 것을 사용하기 때문에 병렬처리가 쉽다는 장점이 있다. 💡 Iterator 이전까지는 컬렉션의 엘리먼트들을 순회하기 위한 Iterator 객체를 활용하였다. /* Iterator 활용 */ ArrayList arrList = new ArrayList(Arrays.asList("a","b","c","d","f")); Iterator ite..
Java - BigDecimal 사용법 및 예제 최근 금융관련 프로젝트를 진행하면서 금액관련 정확한 연산을 위해 BigDecimal을 사용한 적이 있다. 오늘은 정말 간만에 BigDecimal 관련해서 기록할 것이다. 💡 BigDecimal 사용하는 이유 Java에서는 소수점을 저장할 수 있는 float과 double이라는 타입이 존재한다. 하지만 이 2가지 type의 경우는 소수점의 정밀도가 완벽하지 않아 값의 오차가 생길 여지가 존재한다. 이유는 내부적으로 수를 저장할 때 이진수의 근사치를 저장하기 때문이라고 한다. 때문에 이번 금융프로젝트는 돈과 이율 등 과 관련이 높기 때문에 미세한 숫자의 변동도 허용해서는 안되기 때문에 BigDecimal을 사용한다. 💡 BigDecimal 사용법 기본적으로 B..
JPA로 원하는 매개변수로 findBy 메서드 생성하기 최근 "스타트 스프링부트" 라는 책으로 공부하는게 기본환경이 JPA를 활용하기 때문에 JPA에서 findBy를 이용해 쿼리 메소드를 작성하고 조회 조건처리 및 like 구문 처리 까지 정리하는 포스팅을 목표로 한다. SQL문에서 특정한 칼럼의 값을 조회할 때는 쿼리 메서드의 이름을 findBy로 시작하는 방식을 이용한다. Collection findBy + 속성 이름(속성 타입) 예를들어, '게시물에서 user00이라는 작성자의 모든 데이터를 조회한다'는 기능을 BoardRepository에 추가하면 다음과 같이 코드를 작성한다. package org.zerock.persistence; import java.util.Collection; impor..
StringBuilder는 무엇인가? JAVA에서 StringBuilder 와 StringBuffer 는 String 클래스 처럼 문자열을 다루는 클래스이다. String은 소위 불변(immutable) 객체라고 한다. String str1 = "abc"; String str2 = "def"; str1 + str2; // 새로운 String 객체 생성 위처럼 String 클래스가 문자열을 생성자로 넣어 인스턴스를 한 번 생성하고 나면 인스턴스가 가진 문자열 값을 변경하지 못하는 String 클래스의 단점을 보완했다. 즉, 같은 인스턴스 안의 문자열의 값을 변경할 수 있도록 되어있으며 원본 문자열을 바꿀 수 있는만큼 문자열을 다루는 메소드도 더 많이 포함되어 있다. 두 가지 클래스는 모두 쓰임과 메서드가 ..
좋은 조건문에 대해 2 - if/else문, switch/case문의 성능 차이 조건문에는 if / else 문도 있지만 switch / case 문도 있다. 개인적으로 이 둘의 '가독성' 차이는 별로 없다고 생각하여 개발자마다 취향 차이가 있을 뿐이라고 생각한다. 하지만, 위 주장은 조건문의 방법이 달라진다고 해서 '성능' 차이는 크게 발생하지 않는다는 전제가 있어야 한다. 💡 switch문 if-else문과 switch문 중 어떤 조건문이 성능적으로 좋은가를 찾아보니 switch-case문의 성능이 우수하다는 의견이 많았다. 그래서 swtich-case문의 성능을 한번 들여다 보기로 했다. if-else문 과 switch문 if-else문은 원하는 조건이 나올 때 까지 순차적으로 모든 경우를 비교하지..
좋은 조건문에 대해 1 - 왜 좋은 조건문을 작성해야 할까? 오늘은 그동안 한번씩 생각해 봤던 "좋은 조건문이란 것은 어떤 것이며, 어떻게 작성해야 할까?" 에 대해 포스팅하려고 한다. 📌 조건문은 어떠한 역할을 할까? 조건문은 프로그래밍에서 언어를 막론하고 절대 빼놓을 수 없는 간단하지만 매우 중요하다. 단순히 A조건에는 B로직, A가 아닌 조건에는 C로직이 수행된다는 개념을 떠나 새로운 조건이 계속해서 생겨난다면 그 조건 전체가 서비스의 복잡도를 결정할 만큼 중요한 요소라고 생각한다. 좋은 조건문은 이러한 요소를 좋게 만든다는 것을 말한다. 📌 그렇다면 좋은 조건문이란 어떻게 작성해야 할까? 우선적으로 고려해야 하는 것은 '가독성'이다. 모든 서비스는 개발하고 땡이 아니다. 유지보수를 필요로하고 그 ..
Linux - grep 명령어 사용법 (리눅스 문자열 검색하기) 💡 1. grep 명령어의 개념 grep은 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어이다. 하지만 grep 명령어가 문자열을 찾는 기능을 수행한다고 해서, 단순히 문자열이 일치하는지 여부만을 검사하는 것은 아니다. 문자열이 같은지(equal)만을 검사하는 수준을 넘어, 훨씬 복잡하고 다양한 방식으로, 그리고 매우 효율적으로 문자열을 찾는 기능을 제공한다. 이는 grep이 파일의 문자열을 검색할 때, 단순 문자열 매칭이 아니라, 정규 표현식(Regular Expression)에 의한 패턴 매칭(Pattern Matching) 방식을 사용하기 때문이다. 📌 정규 표현식(Regular Expression) 정규 표..
코딩무니
'Programming' 카테고리의 글 목록 (4 Page)