본문 바로가기

Language

[TestCode] Test, Before, After, Disabled (JUnit5) JUnit 5 : 단위 테스트를 하는 자바개발자의 93%가 사용하는 자바 테스팅 프레임워크 - Java 8 버전 이상을 지원함 - Junifer : TestEngine Api 구현체, JUnit 5를 지원함 - Vintage : TestEngine Api 구현체, JUnit 4, 3를 지원함 @Test : 테스트 할 메소드를 지정하는 어노테이션 @Test void create() { Study study = new Study(); System.out.println("create"); } @BeforeAll : 모든 테스트가 실행되기 전 실행될 메소드를 지정 ( static으로 선언되어야 한다 ) @BeforeAll static void beforeAll() { System.out.println("befo.. 더보기
[Structure] Queue (First In First Out) Queue FIFO(First In First Out)의 성질을 가진 자료구조 먼저 들어간 데이터가 먼저나오게되는 구조 사용예 우선 순위가 같은 작업 예약 (프린터의 인쇄 대기열) 은행 업무 콜센터 고객 대기시간 주로 BFS(너비 우선 탐색)에 사용된다. 자주 사용되는 함수 add : 데이터를 넣는것 poll : 데이터를 꺼냄 (최상단 자료를 지우고 반환한다.) peek : 데이터를 꺼냄 (최상단 자료를 지우지 않고 반환한다.) Queue의 구조 Queue의 선언 Queue의 사용(연습문제) 1. Queue의 구조 위 그림은 Queue의 구조이다. Stack과는 달리 데이터가 들어오는곳과 나가는곳이 다르다. 데이터들을 add하면 먼저 들어간 데이터가 먼저 나가게된다. 데이터를 red, white, bla.. 더보기
[Structure] Stack (Last In First Out) Stack LIFO (Last In First Out)의 성질을 가진 자료구조 나중에 들어간 데이터가 먼저나오는 구조 데이터의 추가/삭제는 O(1)의 시간복잡도를 갖는다 하지만, 탐색은 O(n)의 시간복잡도를 가짐 연결리스트로 구현이 가능하다. stack underflow : 비어있는 스택에서 원소를 추출하려 할때 stack overflow : 스택이 넘치는 경우 사용예 웹 브라우저 방문기록 역순 문자열 만들기 실행취소 주로 DFS(깊이 우선탐색) 에 사용된다. 자주사용되는 함수 push : 자료를 넣는것 pop : 자료를꺼냄 (최상단 자료를 지우고 반환한다.) peek : 자료를꺼냄 (최상단 자료를 지우지않고 반환한다.) Stack의 구조 Stack의 선언 Stack의 사용(연습문제) 1. Stack의.. 더보기
[Structure] Array (배열) Array ( 배열 ) 번호(인덱스)와 번호에 대응하는 데이터들로 이루어진 자료구조 배열을 구성하는 단위 데이터를 element(원소) 라고 한다. 배열의 크기를 줄이거나 늘리고 싶다면, 동적으로는 불가능하고 재선언을 해야한다. 이차원 배열, 다차원 배열도 생성이 가능하다. 1. 배열의 구조 2. 배열의 선언 3. 배열의 사용 4. 배열의 활용 1. 배열의 구조 예를들어 1,3,5,7이라는 데이터를 담고있는 배열은 위와같은 구조로 이루어져있다. INDEX는 1이 아닌 0부터 시작한다. List도 같은 개념으로 INDEX는 1부터 시작하므로, 자주 사용하기때문에 익숙해져야한다. INDEX가 있기때문에 접근하고 싶은 DATA에 바로 접근이 가능하다. ex) arr[0] = 1, arr[1] = 3 위 배열의.. 더보기
C# 정의 C# 이란? MS에서 개발되었으며, C++와 Java에서 강한 영향을 받은 객체지향 프로그래밍 언어다. (.NET 프로젝트와 함께 발표되었음) 유니티의 실행 코드로도 유명하며, 확장자는 .cs다. .Net Core부터 리눅스를 공식지원했으며, .Net Core 3.0부터는 MacOS에서도 잘 동작함. 코드구조 using System; namespace Namu { class Program { static void Main(string[] args) { Console.WriteLine("Hello, world!"); } } }Java와의 차이 Java에 JVM이 필요하듯이 C#은 .Net Framework가 필요하다. ( .Net Framework 대신 비교적 작은 사이즈의 가상머신에 올려서 실행시키는 방.. 더보기
[JAVA] 자바 쓰레드 ( Java Thread ) 쓰레드 ( Thread ) : 프로그램을 실행시켜 동작하고 있는것 (직렬적이다.) 하나의 프로세스를 동시에 처리하는 것 처럼 보이지만, 사실으 매우 짧은 단위의 시간으로 분할하여 차례로 처리되고있는것이다. - 프로그램 : 프로그래밍 언어로 구성된 소스코드로 만든 것. - 프로세스 : 메모리를 할당받아 실행 중인 프로그램. 멀티 쓰레드(분업) : 여러개의 경로를 가질 수 있게 한다.(병렬적이다.) 한 개의 처리경로를 여러개로 나누어 동시 작업이 가능하다. - 교착상태 : 멀티 쓰레드 중 쓰레드간의 대기 상태가 종료되지 않아 무한정 대기만 하는 비정상적인 상태 (오라클 DB는 교착 상태에 빠지면 60초를 기준으로 교착상태를 판단하여 자동으로 재시작 혹은 일부를 끊는다. * 해결방안 : 조건문 등을 이용해 교.. 더보기
[JAVA] 자바 해쉬 맵 ( Java HashMap ) HashMap : Map 인터페이스의 한 종류로써 Key와 Value 값으로 데이터를 저장하는 형태. (검색에 용이하다.) [Key,Value] 한쌍 Key는 중복이 불가능하다. (Set) [ 중복된 key값을 입력하게 될경우 이전의 key값이 사라지고 최근입력된 key값으로 덮어씌어진다.] Value는 중복이 가능하다. (Collection) key | hashtable | value ┗ key와 value는 서로 hashtable 을 거친다. Map 자료구조는 순서를 따지지 않기 때문에 Set으로 묶은 후 Iterator를 통해 순서를 부여받아서 나와야한다. 사용방법 ) : HashMap 객체명 = new HashMap(); HashMap 객체명 = new HashMap(용량);.. 더보기
[JAVA] 자바 리스트 앤 셋 ( Java List And Set ) List And Set : Set은 검색에 목적이 있기 때문에 순서 정보를 관리할 필요가 없어 데이터 크기에 상관없이 검색에 걸리는 시간이 매우 짧다. 반면, List는 index를 관리해야 하기 때문에 시간이 오래 걸린다. 그러므로 기능적 차이가 없다면 HashSet을 써야한다. (검색만을 위한 기능이 필요하다면 List보다는 Set을 쓰는 것이 유리하다.) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 public class ListAndSet { public static void main(String[] args) { final int SIZE = 10_000_000; final List arrayList = n.. 더보기