🤝 활동/내배캠TIL

[내일배움캠프 11일차 TIL] 개인과제1 : 계산기 만들기(level 1)

MNY 2024. 4. 29. 21:02
728x90
반응형
2024.04.29.(월)
오늘의 진도 : Java 문법 종합반 5주차 완료 후 개인과제 진행 중...

오늘도 내가 강의를 들으면서 새롭게 알게된 것 그 동안 애매했던 것을 오늘의 학습으로 정리하려고 한다.
오늘의 학습, 숙제, 코드카타, 개인과제, 오늘의 회고 이렇게 5개의 큰 틀로 나누어 정리할 것이다.

 

💡 오늘의 학습 키워드

- 5주차 -
순수 함수
스트림
람다
Optional

- 숙제 -
mapToDouble()
getAsDouble()

- 코드카타 -
limit

- 개인과제 -
LinkedList 사용법

 

순수 함수(= 순수한 메서드)

외부의 영향력이 미치지 않는 것

 

스트림

컬렉션이 반복을 처리하는 기능

ex) map, filter, forEach...

  • map() : 모든 요소를 가공해서 반환
  • filter() : 조건에 맞는 것만 반환
  • forEach() : 각각의 원소에 넘겨받은 함수 실행
  1. 스트림 받아오기(.stream())
    carsWantToPark.stream()​
  2. 스트림 가공하기
    .filter((Car car) -> car.getCompany().equals("Benz"))​
  3. 스트림 결과 만들기
    .toList();​
  • 원본 데이터 변경 X
  • 일회용

 

람다

( 파라미터 값, ... ) -> { 함수 몸체 }
// 한 줄은 return과 중괄호 생략 가능

 

 

limit

상위 n개 레코드만 보여주기

 

Optional

: Null Pointer Exception을 방지

  • 값이 null인 Optional 생성하기
Optional<Car> emptyOptional = Optional.empty();
  • 값이 있는 Optional 생성하기
Optional<Car> hasDataOptional = Optional.of(new Car());
  • 값이 있을수도 없을수도 있는 Optional 생성하기
Optional<Car> hasDataOptional = Optional.ofNullable(getCarFromDB());
  • Optional 객체 사용하기(값 받아오기)
Optional<String> carName = getCarNameFromDB();
// orElse()를 통해 값을 받아옵니다. 파라미터로는 null인 경우 반환할 값을 적습니다.
String realCarName = carName.orElse("NoCar");

// 위는 예시 코드, 실제는 아래와 같이 사용
String carName = getCarNameFromDB().orElse("NoCar"):

// orElseGet()이라는 메서드를 사용해서 값을 받아올 수 있다
// 파라미터로는 없는 경우 실행될 함수를 전달
Car car = getCarNameFromDB().orElseGet(Car::new);

// 값이 없으면, 그 아래 로직을 수행하는데 큰 장애가 되는 경우 에러를 발생
Car car = getCarNameFromDB().orElseThrow(() -> new CarNotFoundException("NO CAR!))

 

mapToDouble()

: 숫자형 스트림으로 반환

 

getAsDouble()

: OptionalDouble 객체의 값을 double로 가져오기 위해서는 getAsDouble()를 사용해야 한다.

 

LinkedList 사용법

* 정리 엄청 잘하셨움.. 👍

 

🧱 자바 LinkedList 구조 & 사용법 - 정복하기

LinkedList 컬렉션 자바의 Linked List는 ArrayList와 같이 인덱스로 접근하여 조회 / 삽입이 가능하지만 내부 구조는 완전히 다르게 구성되어 있다는 점이 특징이다. ArrayList는 내부적으로 배열을 이용하

inpa.tistory.com

 


숙제

  • 숙제 내용 간략한 설명

stream을 활용해서 아래와 같은 문제를 풀이하는 거 였다.

  1. 책 분류 준비 코드가 주어진다.
  2. 카테고리가 여행인 책 제목 조회
  3. 가격이 16,200원 이하인 책 제목 조회
  4. 책 제목에 "경제"라는 용어가 들어간 책 제목 조회
  5. 가격이 가장 비싼 책 가격 조회
  6. 카테고리가 IT인 책들의 가격 합 조회
  7. IT 책 할인 이벤트!
  • 숙제 결과물 보기(더보기 ..Click)

 

  • 숙제 완료 후 고촬

이번 숙제는 그렇게 어렵지 않았다. 처음엔 문제를 보고 이게 뭐지? 싶었는데..

생각보다 쉽게 완료 할 수 있었다. 다만 mapToDouble 또는 getDouble? 이런 것들을 몰라서 헤맸다.

그리고 map이랑 forEach에 대한 사용은 아직 익숙하지 않아 불편?했다..

 


코드 카타

* 프로그래머스로 진행

 

  • 알고리즘
    • 두 수의 합
    • 두 수의 나눗셈
    • 각도기
    • 짝수의 합
  • SQL
    • 동명 동물 수 찾기
    • 아픈 동물 찾기
    • 상위 n개 레코드
    • 최솟값 구하기

 


개인과제

 


 

오늘의 회고

  • 12시간 중 얼마나 몰입했는가?

생각보다 많은 집중은 하지 못한 것 같다.

오늘은 주의가 산만했던 것 같다. 

 

  • 오늘의 생각

이때까지 매번 강의에서 숙제를 내가 풀이한 것들이 거의 없었어서 살짝 암담하다 생각하고 있었는데..

그래도 마지막 주라도 숙제를 온전하게 내가 풀이할 수 있어서 다행이었다.

강의를 완강한 후 개인과제를 진행했는데.. level 1이라 그런지 아직까지는 쉬웠다!

 

  • 내일 학습할 것은 무엇인지

개인과제 2와 더 나아가 3까지 진행할 예정이다.

시간이 된다면 네트워크 관리사 2급 자격증 공부와 독서토론 책을 읽을 예정이다.

그리고 내일은 꼭 형변환 정리와 bfs/dfs 공부를 할 것이다!!!

728x90
반응형