전체 글
-
[live-study] 4: 제어문개발/Java 2020. 12. 30. 00:24
백기선님이 진행하시는 live-study 4주차 과제 4주차 과제 목표 자바가 제공하는 제어문을 학습하세요. 학습할 것 선택문 반복문 과제 (옵션) 과제 0. JUnit 5 학습하세요. 과제 1. live-study 대시 보드를 만드는 코드를 작성하세요. 과제 2. LinkedList를 구현하세요. 과제 3. Stack을 구현하세요. 과제 4. 앞서 만든 ListNode를 사용해서 Stack을 구현하세요. 과제 5. Queue를 구현하세요. 선택문 선택문은 제시된 조건에 따라 코드의 흐름을 결정하는 방법을 말한다. 크게 if문과 switch문이 있다. if if문은 조건식의 결과에 따라 블록의 실행 여부를 결정하는 방법이다. if ( 조건 ) { // method A)_ // print something..
-
Queue (큐)알고리즘/자료구조 2020. 12. 30. 00:24
Queue FIFO(First In First Out, 선입선출) 구조를 가지고 있는 자료구조다. 매표소에서 표를 예매하는 것과 같다. 매표소에 줄을 섰을 때, 먼저 온 사람이 앞에 서서 먼저 표를 구매하고 빠져나간다. 나중에 온 사람은 앞에 사람들이 빠질 때 까지 기다렸다가 자기 차례가 오면 구매하고 빠져나간다. 큐에 데이터를 넣는 행위를 enqueue라고 한다. 큐에서 데이터를 꺼내는 행위를 dequeue라고 한다. 두가지 자료구조를 활용해서 큐를 구현했다. 하나는 배열, 하나는 ListNode(LinkedList를 실습하기 위해 만든 클래스)이다. 배열로 구현했을 땐, 크기를 미리 정해야하기 때문에 가변적이지 못하다. ListNode로 구현했을 땐 큐 크기 제한이 없다. 테스트코드 포함 전체 코드 ..
-
Stack (스택)알고리즘/자료구조 2020. 12. 29. 23:32
Stack LIFO(Last In First Out) 구조를 가진 자료구조다. 말그대로 나중에 들어온 데이터가 먼저 나간다. 먼저 들어온 데이터가 가장 아래에 위치한다. 아래있는 데이터를 꺼내려면 그 위에 있는 데이터를 모두 꺼내야 한다. 스택에 데이터를 넣는 행위를 push 이라고 한다. 스택에서 데이터를 꺼내는 행위를 pop 이라고 한다. 두가지 자료구조를 활용해서 스택을 구현했다. 하나는 배열, 하나는 ListNode(LinkedList를 실습하기 위해 만든 클래스)이다. 배열로 구현했을 땐, 크기를 미리 정해야하기 때문에 가변적이지 못하다. ListNode로 구현했을 땐 스택 크기 제한이 없다. 구현1 (int 배열 사용) 테스트코드 포함 전체 코드 링크 package com.example.wee..
-
Linked List (연결 리스트)알고리즘/자료구조 2020. 12. 29. 21:26
Linked List 리스트 자료구조는 중복 저장을 허용하며 데이터를 나란히 저장한다. 자바에는 리스트 자료구조를 정의해놓은 List컬렉션이 있다. (인터페이스) 객체를 인덱스로 관리하여 객체를 삽입하면 인덱스가 자동으로 부여된다. 그래서 인덱스로 객체에 검색, 삭제가 가능하다. 객체를 직접 저장하고 있지 않고 객체의 주소를 가지고 있다. null도 저장이 가능하다. (아무것도 참조하지 않는 상태) 구현체로 ArrayList, LinkedList, Vector 등이 있다. LinkedList(연결 리스트)는 List 인터페이스의 구현체로 메모리의 동적할당을 기반으로 구현된 리스트다. LinkedList의 모든 노드는 인접 노드를 참조해서 체인처럼 관리한다. 노드를 리스트의 중간에 삽입하여도 인접한 노드들..
-
[애플리케이션을 테스트하는 다양한 방법] JUnit5 Assertion개발/Test 2020. 12. 28. 14:12
Assertion 실제테스트에서 검증하고자 하는 내용을 확인하는 기능이다. assert를 다 다루기엔 너무 많고 몇가지만 간추려서 학습한다. 연습 코드 실제 로직 작성전에 테스트 먼저 작성하자. assertEquals(expected, actual) 인자로 (기대값, 실제값[, 실패시 메세지])로 주고 두 값이 같은지 확인한다. 실패시 메세지는 필수는 아니다. 다만 나중에 봤을 때 메세지를 적어놨면 디버깅이 더 쉬울것이다. 메세지는 스트링으로 줄수도 있고 supplier (or supplier를 람다식)으로 작성할 수도 있다. Supplier도 테스트가 실패했을때 출력해줄 메세지를 적어주면 된다. 스트링으로 작성핳는 것 보다 복잡하지만 사용하는 이유는 에러 메세지를 만들 때, (연산이 들어가는 등 복잡한..
-
[애플리케이션을 테스트하는 다양한 방법] JUnit 소개와 시작개발/Test 2020. 12. 28. 03:39
백기선님 인프런 강의 더 자바, 애플리케이션을 테스트하는 다양한 방법 정리 연습 코드 진행중 발생한 문제 자바 버전 관련 에러 - Error:java: invalid source release: 11 해결 JUnit5 소개 Junit4는 자체가 하나의 덩어리 jar로 디펜더쉴로 들어오고, junit4가 다른 라이브러리 참조한다. Junit5는 JUnit5 자체가 여러 모듈화되었다. 플랫폼 위에 5의 세부모듈인 Jupiter, Vintage를 올리는 형태다. 그 중 JUnit Platform은 JUnit으로 작성한 테스트코드를 실행시켜주는 런처를 제공한다. 런처를 통해 콘솔, 메인 메소드, 인텔리제이같은 툴에서도 자바로 써진 테스트코드를 실행할 수 있다. 인텔리제이에서 테스트 코드를 main 메서드 없이 ..
-
[Mac OS] homebrew로 Java11 설치 & 여러가지 버전 변경하기 (+ Error:java: invalid source release: 11 해결)개발/Java 2020. 12. 28. 03:32
개요 백기선님의 더 자바, 애플리케이션을 테스트하는 다양한 방법 강좌를 수강하기 시작했는데, 시작하자마자 문제가 생겼다. 스프링부트 프로젝트를 생성하고 시험삼아 테스트 클래스를 런 시켜보았는데 다음 에러가 발생했다. Error:java: invalid source release: 11 검색해보고 이유를 유추해보니, 나는 지금 자바 8버전을 사용하고 있지만 해당 프로젝트에서는 11버전을 요구하고 있는것 같았다. 그래서 문제를 해결하기 위해 자바11을 설치하고, 만일을 위해 자바8로 돌아갈 수 있도록 하는 방법을 찾았다. homebrew로 자바11 설치하기 homebrew란 MacOS용 패키지 관리자인데, 개발자에게 필요한 도구를 쉽게 설치할 수 있다. 설치에 관한 내용은 여기로 다음을 순서대로 진행한다. ..
-
깃허브 자바 API (Github Java Library) 사용하기 (외부 라이브러리 불러오기)개발/Java 2020. 12. 27. 21:20
깃허브 API 사용하기 백기선님이 이끄시는 live-study를 할 때, 해당 주차의 issue에 공부한 글의 링크를 달아 출석체크를 한다. Issue를 1~18주차까지 순회하면서 참가자 목록을 만들고 출석률을 계산하는 프로그램을 만든다. 이 프로그램을 만드는 과정에서 Github 자바 라이브러리가 필요하여 사용하는 방법(라이브러리를 불러오는 방법)을 정리하기로 하였다. Access Token 생성 우측 상단 자신의 프로필 클릭 -> Settings -> Developer Settings -> Personal access tokens -> Generate new token 으로 간단하게 토큰을 생성할 수 있다. ❗️Access token은 타인에게 노출해서는 안되고, 한번 생성하면 다시 보이지 않으니 자..