[내배캠/19일차] TIL - 키오스크 과제 제출, 함수로 말해요

euphony·2025년 1월 20일
0

내일배움캠프

목록 보기
34/66

✅오늘의 한 일

  • 키오스크 과제 제출
  • 챌린지반 수업 Day2
  • 스프링 입문 강의

💻오늘의 학습

키오스크 과제 제출

과제 제출 완료! 도전 과제 Lv.2까지 하고 내려고 했지만 시간 조절 실패로 도전 과제 Lv.1까지만 해서 냈다. 다음에는 일정을 더 타이트하게 잡고 시작하자.

챌린지 반 - 함수로 말해요

함수를 잘 전달하려면 어떻게 해야할까?

  • 함수명을 통해 무엇을 할지 명확히 표현
  • 작은 대화는 더 구체적, 큰 대화는 더 포괄적으로
  • 하고자 하는 말을 정확히 표현
  • 확장성을 고려한 표현
  • 상황에 맞는 직관적인 단어 선택
  • 보편적으로 이해되는 단어 선택

함수형 프로그래밍에는 두 가지 방식이 있다.

  • 명령형 방식: "어떻게(How)"를 설명하며 절차적으로 작성한다.
   int sum = 0;
   for (int n : numbers) {
       if (n % 2 == 0) {
           sum += n * n;
       }
   }
  • 선언적 방식: "무엇(What)"을 해야 하는지 표현하며, 코드의 의도를 명확히 드러낸다.
    int sum = numbers.stream()
                     .filter(n -> n % 2 == 0)
                     .map(n -> n * n)
                     .reduce(0, Integer::sum);

✔️ 순수 함수 (Pure Function)

  • 동일한 입력에 대해 항상 동일한 출력을 반환한다.
  • 사이드 이펙트가 발생하지 않는다.
  • 불변성 유지: 함수 내부 상태가 변경되지 않는다.
  • 스레드 안전(Thread-Safe)을 보장한다.

✔️ 고차 함수 (Higher-Order Function)

  • 함수를 매개변수로 받거나, 함수를 반환하는 함수이다.
  • 람다식(Lambda)와 스트림(Stream)을 활용해 간결하고 유연한 코드 작성이 가능하다.

람다와 스트림을 활용해 간결한 대화가 가능하다. 물론 가독성이 무조건 좋은 것은 아니며, 상황에 따라 달라질 수 있다. 또한 코드 중단이 불가하고 디버깅이 불편하다는 단점이 있다. 특히 for문과 비교했을 때 성능 차이가 발생하기 때문에 대용량 데이터를 처리하는 경우라면 for문을 사용하는 것이 나은 선택일 수 있다. 하지만 요즘 하드웨어가 많이 발전하기도 했고, 생산성에 집중하는 추세이다. 따라서 람다와 스트림은 대화 효율을 높일 수 있는 기법이다.

📝오늘의 회고

벌써 내일 스프링 입문이 시작된다. 미리 공부해놓고 싶었는데 그러지 못해서 조금 불안하다. 다음 주 설 연휴에 부족한 부분을 채워봐야겠다.

📌내일의 할 일

  • 스프링 입문 강의
  • 자바 중급 2편 섹션8 듣기

0개의 댓글

관련 채용 정보