
표준 예외란? 자바 API에서 제공하는 예외를 말한다. 대표적으로 IllegalArgumentException, IllegalStateException 등이 있다. 표준 예외를 사용하면 가독성이 높아지고, 사용하기 쉬워진다. 다른 프로그래머들에게 이미 익숙해진 규약을 그대로 따르기 때문이다. 표준 예외를 사용하면, 직접 구현하는 예외 클래스 개수가 적어진다. 따라서 메모리 사용량도 줄어들고, 클래스를 메모리에 적재하는 시간도 적게 걸린다. 대표적인 표준 예외 1. IllegalArgumentException 호출자가 인수로 부적절한 값을 넘길 때 던지는 예외이다. 예를 들어 Crew의 나이를 입력 할당하는 메서드에서 음수가 할당되는 경우이다. public void setAge(int age) { if (..

스트림의 핵심 스트림은 함수형 프로그래밍에 기초한 패러다임이다. 스트림이 제공하는 표현력, 성능, 병렬성을 이해하기 위해서는 스트림 API 뿐만 아니라 함수형 프로그래밍이라는 패러다임까지 함께 받아들여야 한다. 함수형 프로그래밍 객체지향 프로그래밍 패러다임은 객체를 중심으로 사고하고 프로그램을 작성하는 것이다. 반면 함수형 프로그래밍은 데이터를 함수로 연결하는 것을 중심으로 사고하고 프로그램을 작성하는 것이다. 그렇다면 함수형 프로그래밍이 객체지향 프로그래밍 혹은 절차지향 프로그래밍과 반대되는 개념이 아닐까? 라는 생각을 가질 수 있다. 하지만 셋은 상호 배타적이지 않으며 대부분의 시스템은 이 세 가지 모두를 사용하는 경향이 있다. 그러므로 상반되는 패러다임이라고 생각하기 보다는, 애플리케이션을 구성하기..

스트림 (Stream) 스트림은 다량의 데이터 처리 작업을 위해 자바 8에서 등장했다. 컬렉션 처리를 위한 새로운 API라고 할 수도 있다. 스트림 구조 스트림은 초기 데이터→ 중간 연산 → 최종 연산 의 구조로 이루어져 있다. 메서드 체이닝 방식을 사용. 파이프라인 하나를 구성하는 모든 호출을 연결하여, 단 하나의 표현식으로 완성할 수 있다. Cars cars = new Cars(inputView.readCarNames() .stream() .map(Car::new) .collect(Collectors.toList())); parallelStream 메서드를 이용해 병렬 실행도 할 수 있다. 병렬 처리와 같은 부분은 성능적인 이슈가 반드시 따라오기 때문에, 스스로 잘 고려해보고 사용하는 것이 좋다. n..

toString ? toString을 들어보신 적이 있으신가요? 자바나 스프링을 사용하다보면 toString을 자연스럽게 볼 수 있을 것입니다. 그렇다면, 한 번쯤은 toString 을 객체의 값을 출력하기 위해 사용한 적이 있나요? 위 코드는 제가 레벨 1 자동차 경주 미션 첫 리뷰때 제출했던 코드입니다. toString 이름을 들었을 때는 객체의 값을 출력하기 위해 사용할 수 있을 것 같은 느낌이 듭니다. 과연 그럴까요..? 결론부터 말하면 toString 은 객체의 값을 출력하기 위한 용도가 아닌, 디버깅을 위한 용도로 사용됩니다. toString 의 일반 규약은 '간결하면서 사람이 읽기 쉬운 형태의 유익한 정보'를 반환하는 것입니다. 현재 toString 메서드는 뷰에 의존하고 있는 형태입니다. ..

자바가 1996년에 등장한 이후로 두 번의 큰 변화가 있었는데, 한 번은 JDK 1.5부터 추가된 지네릭스(generics)의 등장이고, 또 한 번은 JDK 1.8부터 추가된 람다식(lambda expression)의 등장이다. 특히 람다식의 도입으로 인해, 자바는 객체지향언어인 동시에 함수형 언어가 되었다. 람다식(Lambda Expression) 람다식이란 메서드를 하나의 식으로 표현한 것이다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로 익명 함수(Anonymous Function) 라고도 한다. 람다식은 메서드의 매개변수로 전달될 수 있고, 메서드의 결과로 반환될 수도 있다. 즉, 람다식으로 인해 메서드를 변수처럼 다루는 것이 가능해진 것이다. - 익명: 보통의 메서드와 달리 ..

프로젝트를 진행하거나 개인 공부를 진행하면서 요구하는 자바 버전이 다른 경우가 생깁니다. 버전을 바꿀 때 마다 일일히 자바 버전을 변경하기 귀찮은 경우가 많기 때문에, 쉽게 변경하는 방법을 소개하겠습니다. /usr/libexec/java_home -V MAC OS를 기준으로, 현재 컴퓨터에 설치되어 있는 모든 자바 버젼을 보여주는 명령어입니다. 필요한 버전을 다운받는 방법은 쉽게 찾을 수 있으므로 생략하겠습니다. 해당 명령어를 입력시 아래와 같은 결과를 볼 수 있습니다. 위에서 부터 자바 11, 자바 8 버전이 설치되어 있는 것을 알 수 있습니다. java -version을 입력하면 현재 시스템에 적용되고 있는 버전을 알 수 있습니다. 현재 자바 11버전이 적용되고 있음을 알 수 있습니다. 만약 자바 8..
- Total
- Today
- Yesterday
- 런칭 페스티벌
- 우테코
- 알림개선기
- 파이썬
- 피움 6주차 회고
- 2차 데모데이
- 프로젝트
- dm-zoned
- 스프링 부트
- ZNS
- CI/CD
- ZNS SSD
- 우테코 회고
- dm-zoned 코드분석
- 알림기능개선기
- 백준
- Spring
- 네트워크
- java
- 스프링 Logback
- 3차 데모데이
- 회고
- 스프링MVC
- 환경 별 로깅 전략 분리
- jpa
- 팀프로젝트
- 피움
- 스프링 프레임워크
- 5주차 회고
- 8주차 회고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |