자바 3

[Data Structure] List.of()

최근 테스트 케이스를 만들다가 자료 구조의 Mutability 때문에 고생을 한적이 있습니다. 결과를 먼저 얘기하자면 Immutable한 자료구조를 사용해서 이런 결과가 있었기 때문이었죠. 이 이슈의 Root cause는 코드 Implementation에는 ArrayList를 사용하고 테스트 케이스를 만들 때 mock list를 "List.of"를 사용했기 때문이죠. 왜 이런 이슈가 생긴걸까요? List.of() List.of()를 선언하고 class type을 본다면 뭐가 나올까요? ArrayList? LinkedList? 답을 말 하자면 둘 다 아닙니다. ArrayList와 LinkedList는 Collection 프레임워크의 Interface로서 객체를 insert, delete and update..

Java 2023.09.10

[Stream API] map과 flatMap

Stream API. 자바로 개발을 하면 자주 쓰게 되는 API 중 하나입니다. 그리고 map과 flatMap은 stream api와 자주 쓰이는 걸 볼 수 있습니다. 이 두 친구들은 똑같은 type을 return 하지만 어느정도 차이가 있는데요.어떻게 다른지 이 포스트에서 설명해드리겠습니다. Map 공식 Documentation의 정의는 "map은 주어진 함수를 통해 만들어진 결과들을 Stream의 형식으로 return한다는 말인데요." 쉽게 말하자면 Argument로 받은 Function을 stream이 가지고 있는 element의 값을 바꿔주는 겁니다. Example List mapPractice = List.of(1,2,3,4,5); List afterMap = mapPractice.stream(..

Java 2023.08.21

객체(Object)란 무엇일까요?

자바는 객체 지향 (Object-Oriented) 언어입니다. 객체 지향언어의 특징을 가지고 있는 언어인 자바는 기본적으로 여러가지 개념을 지원하게 됩니다. Polymorphism (다형성) Inheritance (상속) Encapsulation (캡슐화 or 은닉) Abstraction (추상화) Classes (클래스) Objects (객체) Instance (인스턴스) Method (메소드) Message Passing 앞으로 이 개념들에 대해서 포스트를 할 예정입니다. 오늘은 그 중에서 객체(Object)에 대해서 설명을 해드리겠습니다. 객체 (Object) 객체는 현실에서 행동(behavrios), 상태(States)를 가집니다. 예를들어 고양이는 색깔(color), 발톱(claw), 이름(na..

Java 2020.04.25