[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..
MacOS - MySql 설치 및 설정 방법 이번에 스타트 스프링부트(구멍가게 코딩단)을 공부하면서 Data JPA 관련 예제로 MySql을 사용해서 설치방법 및 설정법을 정리해두려고 한다. * 해당 포스팅은 mac에 homebrew를 통한 install 방법이다. 📌 MySql 설치 1. 터미널 실행 후 brew update 명령어 실행 # Homebrew를 이용하기 전 최신버전으로 update $ brew update 2. Mysql 검색 brew search mysql 3. brew install mysql 명령어를 통해 최신버전 다운로드 📌 MySql 설정 1. MySql 서버 실행 mysql.server start 2. MySql 설정을 하기 위해 mysql_secure_installation ..
master -> master (non-fast-forward) 에러 해결방법 스타트 스프링부트(구멍가게 코딩단) 공부 기록을 하기위해 git 레파지토리 생성 후 $ git init $ git remote add origin https://~ $ git push origin master 명령어를 통해 push를 하던 도중 아래와 같은 오류 발생 📌 원인 이러한 경우 보통 원인은 .gitignore 파일 또는 README.md 파일로 인해 발생한다. 💡 해결방법 해결 방법은 push하려고하는 브랜치 이름 앞에 + 를 붙여 push 하면 된다.
[네트워크] tcp와 udp의 개념 및 차이점 ⏺ TCP / UDP 란? : 전송계층에서 데이터 전달을 담당하는 전송계층의 프로토콜이며, 목적지 장비까지 전송한 패킷을 상위의 특정 응용 프로토콜에게 전달하는 것에 목적이 있습니다. -> 전송방식으로는 TCP와 UDP가 있습니다. * 전송계층 : 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층. (데이터의 전달을 담당) 📌 TCP (Transmission Control Protocol) 란? - TCP는 연결형 서비스를 지원하는 전송 계층 프로토콜로써, 전송 제어 프로토콜이라고 불리며 서버와 클라이언트간 신뢰성 있는 데이터 전달과 흐름제어를 한다. (인터넷 환경에서 기본으로 사용) - 일반적으로 인터넷 상에서 데이터를 메시지 형태로 보내기위해 IP와..
StringBuilder는 무엇인가? JAVA에서 StringBuilder 와 StringBuffer 는 String 클래스 처럼 문자열을 다루는 클래스이다. String은 소위 불변(immutable) 객체라고 한다. String str1 = "abc"; String str2 = "def"; str1 + str2; // 새로운 String 객체 생성 위처럼 String 클래스가 문자열을 생성자로 넣어 인스턴스를 한 번 생성하고 나면 인스턴스가 가진 문자열 값을 변경하지 못하는 String 클래스의 단점을 보완했다. 즉, 같은 인스턴스 안의 문자열의 값을 변경할 수 있도록 되어있으며 원본 문자열을 바꿀 수 있는만큼 문자열을 다루는 메소드도 더 많이 포함되어 있다. 두 가지 클래스는 모두 쓰임과 메서드가 ..
프로그래머스 - 키패드 누르기 [JAVA] https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 📌 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에..