[백기선 자바] 제어문

[백기선 자바] 제어문

작성일자
Jun 19, 2023
태그
SUB PAGE
프로젝트
백기선 자바
책 종류

[자바 라이브 스터디] 4주차 - 제어문

  • 목표) 자바가 제공하는 제어문을 학습합니다.
    • 4주차 과제: 제어문
    • 선택문, 제어문은 공식 문서 보고 키워드 사용법 제대로 이해하고 새롭게 업데이트 된 부분 공부하는 데에 초점 맞추기

1. 선택문

(1) if문

  • 정의)
    • 특징)
      • 중첩 가능

    (2) switch문

    • 정의)

      2. 반복문

      (1) for문

      • 정의)
        • 특징)
          • 중첩 가능
          • 향상된 for문
            • forEach 메서드

            (2) while문

            • 정의)

              (3) do-while문

              • 정의)

                3. XUnit 테스팅 Framework 만들기

                • 결과물 예시)
                   

                  4. JUnit 5 학습하세요.

                  • 구성)
                    • JUnit 플랫폼 : 테스팅 프레임워크를 구동하기 위한 런처와 테스트 엔진을 위한 API 제공
                    • JUnit 주피터 : Junit5를 위한 테스트 API와 실행 엔진 제공
                    • JUnit qlsxlwl : JUnit 3과 4로 작성된 테스트를 JUnit5 플랫폼에서 실행하기 위한 모듈 제공
                  • 기본 구조)
                    • 주요 단언 메서드)
                      • 메서드
                        설명
                        assertEquals(expected, actual)
                        actual과 expected가 같은지 확인
                        assertNotEquals(unexpected, actual)
                        actual과 unexpected가 같은지 확인
                        assertSame(Object expected, Object actual)
                        두 객체가 동일한 객체인지 검사
                        assertNotSame(Object unexpected, Object actual)
                        두 객체가 동일하지 않은 객체인지 검사
                        assertTrue(boolean condition)
                        값이 true인지 검사
                        assertFalse(boolean condition)
                        값이 false인지 검사
                        assertNull(Object actual)
                        값이 null인지 검사
                        assertNotNull(Object actual)
                        값이 null이 아닌지 검사
                        fail()
                        테스트를 실패 처리
                    참고
                    테스트 주도 개발 시작하기 / 최범균

                    5. live-study 대시 보드를 만들기

                    💡
                    live-study 대시 보드 Requirements https://github.com/whiteship/live-study/issues
                    • 깃헙 이슈 1번부터 18번까지 댓글을 순회하며 댓글을 남긴 사용자를 체크 할 것.
                    • 참여율을 계산. 총 18회에 중에 몇 %를 참여했는지 소숫점 두자리까지 보여줄 것.
                    • GitHub API란
                      • 정의) GitHub가 제공하는 다양한 정보와 기능을 개발자의 응용 프로그램에서 사용할 수 있도록 제공하는 GitHub의 인터페이스
                      • 특징) 해당 라이브러리에는 GHUser(깃허브유저)GHRepository(깃허브리포지토리)GHOrganization(깃허브그룹) 등 깃허브에서 사용되는 각각의 도메인 모델들을 제어하기 위한 클래스가 존재하며, 각 클래스의 메서드를 통해서 깃허브 사이트에서 사용할 수 있는 다양한 기능을 프로그램 내에서 사용할 수 있다.
                    💡
                    리팩토링 1) 병렬 처리, 증분 연산 통해 실행 시간 2m44s에서 24s로 감소
                    • userMap을 ConcurrentHashMap으로 변경하여 동시성 문제를 방지
                    • issues 리스트를 병렬 스트림으로 변환하여 병렬 처리하도록 수정
                    • issue.getComments()를 issue.listComments().toList()로 변경하여 한 번에 여러 코멘트를 가져오게 수정
                    • userMap.put() 대신 userMap.compute()를 사용하여 증분 연산을 수행
                    참고
                     

                    6. Stack을 구현하세요.

                    • int 배열을 사용해서 정수를 저장하는 Stack을 구현하세요.
                    • void push(int data)를 구현하세요.
                    • int pop()을 구현하세요.