Study/CS 3

java - test code

https://velog.io/@daoh98/CS-Test-Code의-모든-것 [CS] Test Code의 모든 것 문제 발생 해당 시리즈 10번에 글을 썼지만 조금 부족하다는 느낌이 들어서 새롭게 정리를 하려고한다. 크게 3가지를 보려고하는데 통합테스트와 단위테스트의 차이 TDD와 BDD의 차이 Mockito 와 BDDM velog.io 1. 단위테스트는 뭔가 ? 개별적인 기능이 우리가 의도한대로 작동하는지 확인하는 행위 2. 왜하는지? 예를들어 프로그램의 결과를 보기까지 입력값을 많이 많이 넣어야 한다면? 귀찮겟죠 원하는 부분만 테스트함으로 결과를 빠르게 볼 수 있음. 단위테스트가 실패하는 지점에서 문제점을 찾을 수 있음. 정리하면 1. 코드의 일부분 빠르게 검증 가능 2. 코드의 리팩토링이 안정적 ..

Study/CS 2023.08.27

Stream API (JAVA8)

스트림 스트림의 종류 i/o와 관련된 스트림 ex)File I/O, System.in/out java8의 스트림 : ex) 리스트,맵 => Collection F/W를 통해 관리하는 데이터를 처리하기 위해 주로 사용됨 Ex) 리터레이터 반복문 출력 -> 스트림에서는 람다식을 통해서 출력 Stream API 사용 전과 후 코드의 형태에서 얼마나 간결해질까? Ex) Customer객체에서 나이가 30살 이상이고, 오름차순 정렬, 이름 으로 구성된 Collection으로 반환 기존의 방식으로 한다면? 결과 -> Kim, Song, Lee 스트림을 활용한다면? 결과 -> Kim, Song, Lee 먼저 필터링을 거치고 정렬한뒤 추출하고자하는 데이터의 매핑을 진행한 후, 리스트로 받아서 출력 Stream API의..

Study/CS 2023.07.31

Java의 고유 Rock

고유락은 여러 스레드가 동시에 객체에 접근하는 것을 제어하여 객체의 상태를 안전하게 유지하고, 오류를 방지하는 도구 자바 고유락 3줄 요약 자바의 고유락은 동시성 문제를 해결하기 위한 기능으로, 객체 단위로 설정됨 synchronized 키워드를 사용하여 고유락을 설정하면, 해당 메서드나 블록은 고유락을 획득한 스레드만 접근 가능 고유락을 사용하여 여러 스레드 간의 경쟁 상태를 방지하고, 동기화를 통해 잘못된 결과를 예방 예시) 여러 고객이 동시에 같은 계좌에 입금을 하거나 출금을 하는 상황 public class BankAccount { private double balance; public synchronized void deposit(double amount) { balance += amount; ..

Study/CS 2023.07.03