Optional 나온 이유? Optional 클래스는 Java 8부터 나온 개념으로 NPE를 방지하기 위해 나왔다. 우리가 자바 개발을 할 때 객체가 null값을 주게되는 경우가 있다. 이때 이 객체를 참조하면 null을 참조하는 것이 되기 때문에 NPE[NullPointerException] 예외가 발생하게 된다. 때문에 개발자들은 NPE 발생을 줄이기 위해 null 확인을 하기 위한 조건문을 추가하였다. User user = userService.getUser(id); if(user != null) { String email = user.getEmail(); } 위와 같이 조건문으로 null 확인을 하여 NPE를 방지한다 하더라도 이러한 방식은 코드를 어지럽히기에 가독성을 저하시킨다. Java는 이를..
읽기 전에 스트림에 대해 몇 가지만 상기도록하자!! 💡 스트림은 데이터 소스를 변경하지 않는다! 스트림은 데이터 소스로 부터 데이터를 읽기만 할 뿐, 데이터 소스를 변경하지 않는다. 필요에 따라, 정렬된 결과를 컬렉션이나 배열에 담아서 반환한다. List sortedList = list.stream() .sorted() .collect(Collectors.toList()); 💡 스트림은 일회용이다. 스트림은 Iterator 처럼 한 번만 탐색할 수 있다. 만약 다시 탐색하고 싶다면 새로운 스트림을 만들어야 한다. Stream strStream = list.stream(); strStream.forEach(System.out::println); strStream.forEach(System.out::prin..
Java 변수명 첫 글자 소문자 + 카멜 표기법을 사용 (lower Camel Case) 특수 문자는 '_'과 '$'만 허용 의도 분명한 구체적인 변수명 짓기 boolean 변수인 경우 접두어는 'is' 접미어는 ok/check/found/success/done/error List, Collection 등의 자료형은 복수형으로 표현한다. ex) memberList X → members Java 메소드명 첫 글자 소문자 + 카멜 표기법을 사용 (lower Camel Case) 의도 분명한 메소드명 짓기 고려사항: 왜 존재하는가 / 어떤 작업을 하는가 / 어떻게 작업하는가 메소드 접두어는 동사로 시작한다. get/set is/has/can init find, check etc.. 다른 타입으로 변환하거나 빌..
📌SOLID: 객체 지향 설계 5원칙 https://yeo-computerclass.tistory.com/246 [Java] 객체 지향(OOP)의 4대 특성 📌객체 지향(OOP)의 4대 특성 캡슐화: 정보 은닉 상속: 재사용 추상화: 모델링 다형성: 사용 편의 💡추상화: 모델링 추상이란? 나에게 추상적이란 뜻은 구체적의 반대. 즉, 구체성이 없어서 무언 yeo-computerclass.tistory.com 바로 전의 객체 지향(OOP)의 4대 특성에 대해 설명을 하였다. 객체 지향의 4대 특성을 올바르게 사용하는 방법, 객체 지향 언어를 이용해 객체 지향 프로그램을 올바르게 설계해 나가는 원칙이 있다. 그것이 바로 객체 지향 설계 5원칙이며 5가지 원칙의 앞머리 알파벳을 따서 SOLID라 한다. SRP(..
📌객체 지향(OOP)의 4대 특성 캡슐화: 정보 은닉 상속: 재사용 추상화: 모델링 다형성: 사용 편의 💡추상화: 모델링 추상이란? 나에게 추상적이란 뜻은 구체적의 반대. 즉, 구체성이 없어서 무언가로 표현하기 어려운 것이라는 뜻으로 받아들였다. 나처럼 추상적이란 정의를 이런 뜻으로 받아들이고 있으면 추상화란 의미를 이해하기 힘들 것이다. 정의를 다시 살펴보도록 하겠다. 추상이란 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용이다. 여기서 공통되는 특성이나 속성 따위를 추출한다는 말에 주목을 하여야 한다. 왜 피카소의 그림을 추상화라 부르고 수학이 추상적인 학문이라 할까? 피카소의 추상화 경우, 눈에 보이는 그대로의 모습이 아닌 작가가 마음속에 느껴지는 그 사람의 특징을..