230302 TIL #22 Deque 덱 / 데크 / Test

김춘복·2023년 3월 1일
0

TIL : Today I Learned

목록 보기
22/571

230302 Today I Learned

Spring 주차 진행중. 오늘은 오전에 스프링 퀴즈를 보고 코테를 풀다가 자바와 스프링 내용을 복습했다. 오늘의 TIL은 자바 복습 중 본 deque를 정리해보겠다.

Deque

  • Deque은 스택으로도 큐로도 쓸 수 있는 자료구조이다. 양방향에서 삽입과 삭제를 할 수 있다.

  • Deque은 자바에서 인터페이스로 정의되어있고 4개의 클래스로 구현 가능하다.

Deque<String> deque1 = new ArrayDeque<>();
Deque<String> deque2 = new LinkedBlockingDeque<>();
Deque<String> deque3 = new ConcurrentLinkedDeque<>();
Deque<String> linkedList = new LinkedList<>();

Deque의 메서드

  • ~First()는 앞쪽에서 실행하고 ~Last()는 뒤쪽에서 실행된다. 그림 참고
  • 삽입과 삭제
.addFirst()			//	덱의 앞쪽에 삽입하고 용량 초과시 예외(Exception) 발생.
.offerFirst()		//	덱의 앞쪽에 삽입하고 삽입 성공시 true, 용량제한시 false.

.removeFirst()		// 덱의 앞쪽에서 원소를 하나 뽑아서 반환하고 삭제. 덱이 비어있으면 예외 발생.
.pollFirst()		// 덱의 앞쪽에서 원소를 하나 뽑아서 반환하고 삭제. 덱이 비어있으면 null을 return.

.getFirst()		// 덱의 앞쪽 원소 하나를 제거하지 않고 반환. 비어있으면 예외 발생
.peekFirst() 	// 덱의 앞쪽 원소 하나를 제거하지 않고 반환. 비어있으면 null반환
  • 그외 메서드
.removeFirstOccurrence(Object o) // 덱의 앞쪽부터 탐색해 o와 동일한 첫 원소를 제거.
.contain(Object o) 	// 덱에 o와 동일한 원소 있나 확인.
.size() 			//	덱의 크기
덱을 스택으로 사용할 때 push() pop() 다 사용 가능.

세션 정리 (Test)

  • shift + f6누르면 메서드명 한번에 바꾸기 가능

  • 만들어져있는 test는 검증할때 꼭 사용!!
    test 폴더 안에 test용 클래스 만들고
    위에 @SpringBootTest 어노테이션 붙여야

  • test 하려는 클래스 private 으로 불러온 뒤
    테스트 하려는 메서드 위에 @Test 씀

  • @Autowired는 요즘은 거의 안씀
    근데 test에는 private으로 불러온 변수 위에 씀


@SpringBootTest
public class MemberServiceTest {

    @Autowired
    private MemberService memberService;
    @Autowired
    private MemberRepository memberRepository;

    @Test
    void postMember() {
        MemberRequestDto memberRequestDto = new MemberRequestDto("asd@asd.com", "asd");
        Member member = new Member(memberRequestDto.getEmail(), memberRequestDto.getPassword());
        memberService.postMember(memberRequestDto);
        assertThat(member.getEmail()).isEqualTo("asd@asd.com");

        System.out.println("================");
        System.out.println(member.getEmail());
        System.out.println("================");
    }

알아볼 것

  • 자바 디자인패턴 / 싱글톤

  • 스프링 Test 제대로 사용하는법

profile
Backend Dev / Data Engineer

0개의 댓글